<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>137526</bug_id>
          
          <creation_ts>2014-10-08 10:28:45 -0700</creation_ts>
          <short_desc>[Win] Resolve various static analyzer warnings in WebCore</short_desc>
          <delta_ts>2018-12-17 22:59:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=192805</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1040335</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-08 10:28:45 -0700</bug_when>
    <thetext>This patch corrects a set of issues found by the MSVC static analyzer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040337</commentid>
    <comment_count>1</comment_count>
      <attachid>239480</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-08 10:30:20 -0700</bug_when>
    <thetext>Created attachment 239480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040346</commentid>
    <comment_count>2</comment_count>
      <attachid>239480</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-08 10:51:04 -0700</bug_when>
    <thetext>Comment on attachment 239480
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239480&amp;action=review

&gt; Source/WebCore/page/SessionIDHash.h:45
&gt; +    static void constructDeletedValue(WebCore::SessionID&amp; slot) { slot = WebCore::SessionID(static_cast&lt;uint64_t&gt;(-2)); }

This is confusing even though I know it&apos;s correct. Perhaps this is worth pulling out the -2 into a static const variable, and maybe setting it to something like 0xFFFFFFFFFFFFFFFE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040349</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-08 10:59:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 239480 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239480&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/SessionIDHash.h:45
&gt; &gt; +    static void constructDeletedValue(WebCore::SessionID&amp; slot) { slot = WebCore::SessionID(static_cast&lt;uint64_t&gt;(-2)); }
&gt; 
&gt; This is confusing even though I know it&apos;s correct. Perhaps this is worth pulling out the -2 into a static const variable, and maybe setting it to something like 0xFFFFFFFFFFFFFFFE

Yeah, we have a few places where an unsigned value is initialized with a negative number as a sentinel value... I&apos;m not sure what the right thing to do is in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040350</commentid>
    <comment_count>4</comment_count>
      <attachid>239480</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-10-08 11:01:27 -0700</bug_when>
    <thetext>Comment on attachment 239480
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239480&amp;action=review

&gt;&gt; Source/WebCore/page/SessionIDHash.h:45
&gt;&gt; +    static void constructDeletedValue(WebCore::SessionID&amp; slot) { slot = WebCore::SessionID(static_cast&lt;uint64_t&gt;(-2)); }
&gt; 
&gt; This is confusing even though I know it&apos;s correct. Perhaps this is worth pulling out the -2 into a static const variable, and maybe setting it to something like 0xFFFFFFFFFFFFFFFE

I agree with Myles that it is weird looking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040360</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-08 11:33:20 -0700</bug_when>
    <thetext>Committed r174465: &lt;http://trac.webkit.org/changeset/174465&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239480</attachid>
            <date>2014-10-08 10:30:20 -0700</date>
            <delta_ts>2014-10-08 11:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137526-20141008103307.patch</filename>
            <type>text/plain</type>
            <size>17497</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NDQ1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEwLTA4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlc29sdmUgdmFy
aW91cyBzdGF0aWMgYW5hbHl6ZXIgd2FybmluZ3MgaW4gV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzUyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgc2VyaWVzIG9mIHNtYWxsIGNoYW5n
ZXMgdG8gcmVzb2x2ZSB2YXJpb3VzIGlzc3VlcyBmb3VuZCBieSB0aGUgTVNWQyBzdGF0aWMgYW5h
bHl6ZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291cmNlc0RhdGE6OmNsZWFyKTogQWRkIGFzc2Vy
dGlvbiB0aGF0IGl0LT52YWx1ZSBzaG91bGQgbmV2ZXIgYmUgbnVsbC4KKyAgICAgICAgKiBwYWdl
L1Nlc3Npb25JREhhc2guaDoKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXNz
aW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBBZGQgZXhwbGljaXQgY2FzdCB0byBhdm9p
ZAorICAgICAgICBjb21waWxlciB3YXJuaW5nLgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YkNvcmU6OlNlc3Npb25JRD46OmlzRGVsZXRlZFZhbHVlKTogRGl0dG8uCisgICAgICAgICogcGFn
ZS93aW4vRnJhbWVDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbWFnZUZyb21SZWN0KTog
UmVzb2x2ZSBzdGF0aWMgYW5hbHl6ZXIgd2FybmluZ3MgYnkgaW5pdGlhbGl6aW5nIGJpdHMsIGFu
ZAorICAgICAgICBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIDo6Q3JlYXRlRElCU2VjdGlv
biwgd2hpY2ggcmV0dXJuIG51bGxwdHIgb24gZXJyb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChwcmludExheWVy
KTogVXNlIGNvcnJlY3QgTVNWQyBmb3JtYXQgc3BlY2lmaWVyIGZvciBzaXplX3QuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRMaW5rZWRGb250cyk6IEhhbmRsZSBwb3NzaWJpbGl0eSB0aGF0IGEgZm9udCBsaW5r
IGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVt
RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTogSGFuZGxlIGVycm9yIGNhc2Ugd2hlbiBhIHZhbGlkIGNv
ZGUgcGFnZQorICAgICAgICBkb2VzIG5vdCBleGlzdCBmb3IgYSBnaXZlbiBjaGFyYWN0ZXIuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMpOiBIYW5k
bGUgZXJyb3IgY2FzZXMgZm9yIG1hcHBpbmcgdG8gdGhlIENQX0FDUCBjb2RlIHBhZ2UsCisgICAg
ICAgIGFuZCByZWxhdGVkIGZhaWx1cmVzIHdoZW4gYXR0ZW1wdGluZyB0byBhY2Nlc3MgdGhlIGNv
bnRlbnRzIG9mIGEgZ2l2ZW4gY29kZSBwYWdlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmli
ZUNvbnRyb2xsZXI6Oml0ZW1pemVTaGFwZUFuZFBsYWNlKTogSGFuZGxlIHBvc3NpYmxlIGZhaWx1
cmUgaW4gdGhlCisgICAgICAgIFNjcmlwdEl0ZW1pemUgQVBJIGNhbGwuCisgICAgICAgIChXZWJD
b3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFwZUFuZFBsYWNlSXRlbSk6IERpdHRvIGZvciBT
Y3JpcHRYdG9DUCBBUEkgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQlN0cmluZy5oOiBV
c2UgY29uc2lzdGVudCBTQUwgYW5ub3RhdGlvbnMgZm9yIG91ciB0eXBlZGVvZiBvZiBCU1RSIGFz
IGluCisgICAgICAgIHRoZSBzeXN0ZW0gaGVhZGVyLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9D
T01QdHIuaDogRGl0dG8gZm9yIEhSRVNVTFQuCisgICAgICAgICogcGxhdGZvcm0vd2luL0RyYWdJ
bWFnZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFsbG9jSW1hZ2UpOiBIYW5kbGUgY2Fz
ZSBvZiBmYWlsaW5nIENyZWF0ZURJQlNlY3Rpb24gQVBJIGNhbGwuCisgICAgICAgICogcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46
OnNob3cpOiBIYW5kbGUgY2FzZSBvZiBmYWlsaW5nIFN5c3RlbVBhcmFtdGVyc0luZm8gQVBJIGNh
bGwuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOiBEaXR0by4KKwog
MjAxNC0xMC0wOCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gV2UgYXJlIHNwZW5kaW5nIGEgbG90IG9mIHRpbWUgbG9hZGluZyBmb250cyB3aGVu
IGxvYWRpbmcgd2VhdGhlci5jb20KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3
b3JrUmVzb3VyY2VzRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcAkocmV2aXNpb24gMTc0NDU2KQorKysgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlc0RhdGE6OmNsZWFyKGNv
bnN0IFMKICAgICBSZXNvdXJjZURhdGFNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fcmVxdWVzdElkVG9S
ZXNvdXJjZURhdGFNYXAuZW5kKCk7CiAgICAgZm9yIChpdCA9IG1fcmVxdWVzdElkVG9SZXNvdXJj
ZURhdGFNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFJlc291cmNlRGF0
YSogcmVzb3VyY2VEYXRhID0gaXQtPnZhbHVlOworICAgICAgICBBU1NFUlQocmVzb3VyY2VEYXRh
KTsKICAgICAgICAgaWYgKCFwcmVzZXJ2ZWRMb2FkZXJJZC5pc051bGwoKSAmJiByZXNvdXJjZURh
dGEtPmxvYWRlcklkKCkgPT0gcHJlc2VydmVkTG9hZGVySWQpCiAgICAgICAgICAgICBwcmVzZXJ2
ZWRNYXAuc2V0KGl0LT5rZXksIGl0LT52YWx1ZSk7CiAgICAgICAgIGVsc2UKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklESGFzaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Vzc2lvbklESGFzaC5oCShyZXZpc2lvbiAxNzQ0NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1Nlc3Npb25JREhhc2guaAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsOCBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OlNlCiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogICAgIHN0YXRpYyBXZWJDb3JlOjpT
ZXNzaW9uSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OlNlc3Npb25JRDo6ZW1wdHlT
ZXNzaW9uSUQoKTsgfQogCi0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdl
YkNvcmU6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gV2ViQ29yZTo6U2Vzc2lvbklEKC0yKTsg
fQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25J
RCYgc2xvdCkgeyByZXR1cm4gc2xvdCA9PSBXZWJDb3JlOjpTZXNzaW9uSUQoLTIpOyB9CisgICAg
c3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCYgc2xv
dCkgeyBzbG90ID0gV2ViQ29yZTo6U2Vzc2lvbklEKHN0YXRpY19jYXN0PHVpbnQ2NF90PigtMikp
OyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6U2Vzc2lv
bklEJiBzbG90KSB7IHJldHVybiBzbG90ID09IFdlYkNvcmU6OlNlc3Npb25JRChzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oLTIpKTsgfQogfTsKIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YkNvcmU6OlNlc3Npb25JRD4gewogICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRnJhbWVDR1dpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRnJhbWVDR1dpbi5jcHAJKHJldmlzaW9uIDE3NDQ1NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lQ0dXaW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NSwxMyArNTUsMTYgQEAgR0RJT2JqZWN0PEhCSVRNQVA+IGltYWdlRnJvbVJlY3QoY29u
c3QgRgogICAgIFBhaW50QmVoYXZpb3Igb2xkUGFpbnRCZWhhdmlvciA9IGZyYW1lLT52aWV3KCkt
PnBhaW50QmVoYXZpb3IoKTsKICAgICBmcmFtZS0+dmlldygpLT5zZXRQYWludEJlaGF2aW9yKG9s
ZFBhaW50QmVoYXZpb3IgfCBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKTsK
IAotICAgIHZvaWQqIGJpdHM7CisgICAgdm9pZCogYml0cyA9IG51bGxwdHI7CiAgICAgYXV0byBo
ZGMgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUNvbXBhdGlibGVEQygwKSk7CiAgICAgaW50IHcg
PSBpci53aWR0aCgpOwogICAgIGludCBoID0gaXIuaGVpZ2h0KCk7CiAgICAgQml0bWFwSW5mbyBi
bXAgPSBCaXRtYXBJbmZvOjpjcmVhdGUoSW50U2l6ZSh3LCBoKSk7CiAKICAgICBHRElPYmplY3Q8
SEJJVE1BUD4gaGJtcCA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlRElCU2VjdGlvbigwLCAmYm1w
LCBESUJfUkdCX0NPTE9SUywgc3RhdGljX2Nhc3Q8dm9pZCoqPigmYml0cyksIDAsIDApKTsKKyAg
ICBpZiAoIWhibXApCisgICAgICAgIHJldHVybiBoYm1wOworCiAgICAgSEdESU9CSiBoYm1wT2xk
ID0gU2VsZWN0T2JqZWN0KGhkYy5nZXQoKSwgaGJtcC5nZXQoKSk7CiAgICAgQ0dDb250ZXh0UmVm
IGNvbnRleHQgPSBDR0JpdG1hcENvbnRleHRDcmVhdGUoc3RhdGljX2Nhc3Q8dm9pZCo+KGJpdHMp
LCB3LCBoLAogICAgICAgICA4LCB3ICogc2l6ZW9mKFJHQlFVQUQpLCBkZXZpY2VSR0JDb2xvclNw
YWNlUmVmKCksIGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRGaXJzdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAkocmV2aXNp
b24gMTc0NDU2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2OSw3ICs2NjksNyBAQCBz
dGF0aWMgdm9pZCBwcmludExheWVyKGNvbnN0IFBsYXRmb3JtQ0FMCiAgICAgICAgIGlmIChDRkdl
dFR5cGVJRChsYXllckNvbnRlbnRzKSA9PSBDR0ltYWdlR2V0VHlwZUlEKCkpIHsKICAgICAgICAg
ICAgIENHSW1hZ2VSZWYgaW1hZ2VDb250ZW50cyA9IHN0YXRpY19jYXN0PENHSW1hZ2VSZWY+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGxheWVyQ29udGVudHMpKTsKICAgICAgICAgICAgIHByaW50SW5kZW50
KGluZGVudCArIDEpOwotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIoY29udGVudHMgKGlt
YWdlIFslZCAlZF0pKVxuIiwKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiKGNvbnRlbnRz
IChpbWFnZSBbJUl1ICVJdV0pKVxuIiwKICAgICAgICAgICAgICAgICBDR0ltYWdlR2V0V2lkdGgo
aW1hZ2VDb250ZW50cyksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2VDb250ZW50cykpOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDYWNoZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAJKHJldmlzaW9uIDE3NDQ1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEzLTIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgPG1sYW5nLmg+CiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4K
ICNpbmNsdWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgpAQCAtOTcsMTIgKzk4LDE2IEBAIHN0YXRp
YyBjb25zdCBWZWN0b3I8U3RyaW5nPiogZ2V0TGlua2VkRm8KIAogICAgIHJlc3VsdCA9IG5ldyBW
ZWN0b3I8U3RyaW5nPjsKICAgICBzeXN0ZW1MaW5rTWFwLnNldChmYW1pbHksIHJlc3VsdCk7Ci0g
ICAgSEtFWSBmb250TGlua0tleTsKKyAgICBIS0VZIGZvbnRMaW5rS2V5ID0gbnVsbHB0cjsKICAg
ICBpZiAoRkFJTEVEKFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIEwiU29mdHdhcmVc
XE1pY3Jvc29mdFxcV2luZG93cyBOVFxcQ3VycmVudFZlcnNpb25cXEZvbnRMaW5rXFxTeXN0ZW1M
aW5rIiwgMCwgS0VZX1JFQUQsICZmb250TGlua0tleSkpKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwogCiAgICAgRFdPUkQgbGlua2VkRm9udHNCdWZmZXJTaXplID0gMDsKLSAgICBSZWdRdWVyeVZh
bHVlRXgoZm9udExpbmtLZXksIGZhbWlseS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LmRhdGEoKSwgMCwgTlVMTCwgTlVMTCwgJmxpbmtlZEZvbnRzQnVmZmVyU2l6ZSk7CisgICAgaWYg
KDo6UmVnUXVlcnlWYWx1ZUV4KGZvbnRMaW5rS2V5LCBmYW1pbHkuY2hhcmFjdGVyc1dpdGhOdWxs
VGVybWluYXRpb24oKS5kYXRhKCksIDAsIG51bGxwdHIsIG51bGxwdHIsICZsaW5rZWRGb250c0J1
ZmZlclNpemUpID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5
cygiVGhlIGZvbnQgbGluayBrZXkgJXMgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlZ2lzdHJ5LiIs
IGZhbWlseS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisK
ICAgICBXQ0hBUiogbGlua2VkRm9udHMgPSByZWludGVycHJldF9jYXN0PFdDSEFSKj4obWFsbG9j
KGxpbmtlZEZvbnRzQnVmZmVyU2l6ZSkpOwogICAgIGlmIChTVUNDRUVERUQoUmVnUXVlcnlWYWx1
ZUV4KGZvbnRMaW5rS2V5LCBmYW1pbHkuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5k
YXRhKCksIDAsIE5VTEwsIHJlaW50ZXJwcmV0X2Nhc3Q8QllURSo+KGxpbmtlZEZvbnRzKSwgJmxp
bmtlZEZvbnRzQnVmZmVyU2l6ZSkpKSB7CiAgICAgICAgIHVuc2lnbmVkIGkgPSAwOwpAQCAtMjAw
LDI5ICsyMDUsMjkgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpzeQog
ICAgIGlmIChJTUxhbmdGb250TGlua1R5cGUqIGxhbmdGb250TGluayA9IGdldEZvbnRMaW5rSW50
ZXJmYWNlKCkpIHsKICAgICAgICAgLy8gVHJ5IE1MYW5nIGZvbnQgbGlua2luZyBmaXJzdC4KICAg
ICAgICAgRFdPUkQgY29kZVBhZ2VzID0gMDsKLSAgICAgICAgbGFuZ0ZvbnRMaW5rLT5HZXRDaGFy
Q29kZVBhZ2VzKGNoYXJhY3RlciwgJmNvZGVQYWdlcyk7Ci0KLSAgICAgICAgaWYgKGNvZGVQYWdl
cyAmJiB1X2dldEludFByb3BlcnR5VmFsdWUoY2hhcmFjdGVyLCBVQ0hBUl9VTklGSUVEX0lERU9H
UkFQSCkpIHsKLSAgICAgICAgICAgIC8vIFRoZSBDSksgY2hhcmFjdGVyIG1heSBiZWxvbmcgdG8g
bXVsdGlwbGUgY29kZSBwYWdlcy4gV2Ugd2FudCB0bwotICAgICAgICAgICAgLy8gZG8gZm9udCBs
aW5raW5nIGFnYWluc3QgYSBzaW5nbGUgb25lIG9mIHRoZW0sIHByZWZlcnJpbmcgdGhlIGRlZmF1
bHQKLSAgICAgICAgICAgIC8vIGNvZGUgcGFnZSBmb3IgdGhlIHVzZXIncyBsb2NhbGUuCi0gICAg
ICAgICAgICBjb25zdCBWZWN0b3I8RFdPUkQsIDQ+JiBDSktDb2RlUGFnZU1hc2tzID0gZ2V0Q0pL
Q29kZVBhZ2VNYXNrcygpOwotICAgICAgICAgICAgdW5zaWduZWQgbnVtQ29kZVBhZ2VzID0gQ0pL
Q29kZVBhZ2VNYXNrcy5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtQ29kZVBhZ2VzICYmICFoZm9udDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaGZvbnQg
PSBjcmVhdGVNTGFuZ0ZvbnQobGFuZ0ZvbnRMaW5rLCBoZGMsIENKS0NvZGVQYWdlTWFza3NbaV0p
OwotICAgICAgICAgICAgICAgIGlmIChoZm9udCAmJiAhKGNvZGVQYWdlcyAmIENKS0NvZGVQYWdl
TWFza3NbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFdlIGFza2VkIGFib3V0IGEgY29k
ZSBwYWdlIHRoYXQgaXMgbm90IG9uZSBvZiB0aGUgY29kZSBwYWdlcwotICAgICAgICAgICAgICAg
ICAgICAvLyByZXR1cm5lZCBieSBNTGFuZywgc28gdGhlIGZvbnQgbWlnaHQgbm90IGNvbnRhaW4g
dGhlIGNoYXJhY3Rlci4KLSAgICAgICAgICAgICAgICAgICAgU2VsZWN0T2JqZWN0KGhkYywgaGZv
bnQpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRGb250Q29udGFpbnNDaGFyYWN0
ZXIoaGRjLCBjaGFyYWN0ZXIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBEZWxldGVPYmpl
Y3QoaGZvbnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaGZvbnQgPSAwOworICAgICAgICBp
ZiAoU1VDQ0VFREVEKGxhbmdGb250TGluay0+R2V0Q2hhckNvZGVQYWdlcyhjaGFyYWN0ZXIsICZj
b2RlUGFnZXMpKSkgeworICAgICAgICAgICAgaWYgKGNvZGVQYWdlcyAmJiB1X2dldEludFByb3Bl
cnR5VmFsdWUoY2hhcmFjdGVyLCBVQ0hBUl9VTklGSUVEX0lERU9HUkFQSCkpIHsKKyAgICAgICAg
ICAgICAgICAvLyBUaGUgQ0pLIGNoYXJhY3RlciBtYXkgYmVsb25nIHRvIG11bHRpcGxlIGNvZGUg
cGFnZXMuIFdlIHdhbnQgdG8KKyAgICAgICAgICAgICAgICAvLyBkbyBmb250IGxpbmtpbmcgYWdh
aW5zdCBhIHNpbmdsZSBvbmUgb2YgdGhlbSwgcHJlZmVycmluZyB0aGUgZGVmYXVsdAorICAgICAg
ICAgICAgICAgIC8vIGNvZGUgcGFnZSBmb3IgdGhlIHVzZXIncyBsb2NhbGUuCisgICAgICAgICAg
ICAgICAgY29uc3QgVmVjdG9yPERXT1JELCA0PiYgQ0pLQ29kZVBhZ2VNYXNrcyA9IGdldENKS0Nv
ZGVQYWdlTWFza3MoKTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1Db2RlUGFnZXMgPSBD
SktDb2RlUGFnZU1hc2tzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtQ29kZVBhZ2VzICYmICFoZm9udDsgKytpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGhmb250ID0gY3JlYXRlTUxhbmdGb250KGxhbmdGb250TGluaywgaGRjLCBDSktDb2RlUGFn
ZU1hc2tzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhmb250ICYmICEoY29kZVBhZ2Vz
ICYgQ0pLQ29kZVBhZ2VNYXNrc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdl
IGFza2VkIGFib3V0IGEgY29kZSBwYWdlIHRoYXQgaXMgbm90IG9uZSBvZiB0aGUgY29kZSBwYWdl
cworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuZWQgYnkgTUxhbmcsIHNvIHRoZSBm
b250IG1pZ2h0IG5vdCBjb250YWluIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAg
ICAgICBTZWxlY3RPYmplY3QoaGRjLCBoZm9udCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIWN1cnJlbnRGb250Q29udGFpbnNDaGFyYWN0ZXIoaGRjLCBjaGFyYWN0ZXIpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlT2JqZWN0KGhmb250KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZm9udCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3RPYmplY3QoaGRjLCBwcmltYXJ5Rm9udCk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgU2VsZWN0T2JqZWN0KGhk
YywgcHJpbWFyeUZvbnQpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBoZm9udCA9IGNyZWF0ZU1MYW5nRm9udChsYW5nRm9udExp
bmssIGhkYywgY29kZVBhZ2VzLCBjaGFyYWN0ZXIpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgaGZvbnQgPSBjcmVhdGVNTGFuZ0ZvbnQobGFuZ0ZvbnRMaW5rLCBoZGMsIGNv
ZGVQYWdlcywgY2hhcmFjdGVyKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIEEgZm9udCBy
ZXR1cm5lZCBmcm9tIE1MYW5nIGlzIHRydXN0ZWQgdG8gY29udGFpbiB0aGUgY2hhcmFjdGVyLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRh
V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCShyZXZpc2lvbiAxNzQ0NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTUsMTYgKzE1NSwyMyBAQCBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWlu
c0NoYXJhY3RlcnMoCiAgICAgSFduZERDIGRjKDApOwogCiAgICAgRFdPUkQgYWNwQ29kZVBhZ2Vz
OwotICAgIGxhbmdGb250TGluay0+Q29kZVBhZ2VUb0NvZGVQYWdlcyhDUF9BQ1AsICZhY3BDb2Rl
UGFnZXMpOworICAgIGlmIChGQUlMRUQobGFuZ0ZvbnRMaW5rLT5Db2RlUGFnZVRvQ29kZVBhZ2Vz
KENQX0FDUCwgJmFjcENvZGVQYWdlcykpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiU2ltcGxl
Rm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVyczogVW5hYmxlIHRvIGNvbnZlcnQgdG8gQ1BfQUNQ
IGNvZGUgcGFnZS4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIERXT1JE
IGZvbnRDb2RlUGFnZXM7Ci0gICAgbGFuZ0ZvbnRMaW5rLT5HZXRGb250Q29kZVBhZ2VzKGRjLCBt
X3BsYXRmb3JtRGF0YS5oZm9udCgpLCAmZm9udENvZGVQYWdlcyk7CisgICAgaWYgKEZBSUxFRChs
YW5nRm9udExpbmstPkdldEZvbnRDb2RlUGFnZXMoZGMsIG1fcGxhdGZvcm1EYXRhLmhmb250KCks
ICZmb250Q29kZVBhZ2VzKSkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJTaW1wbGVGb250RGF0
YTo6Y29udGFpbnNDaGFyYWN0ZXJzOiBVbmFibGUgdG8gZmluZCBtYXRjaGluZyBjb2RlIHBhZ2Ug
Zm9yIHNwZWNpZmllZCBmb250LiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCi0g
ICAgRFdPUkQgYWN0dWFsQ29kZVBhZ2VzOwotICAgIGxvbmcgbnVtQ2hhcmFjdGVyc1Byb2Nlc3Nl
ZDsKKyAgICBEV09SRCBhY3R1YWxDb2RlUGFnZXMgPSAwOworICAgIGxvbmcgbnVtQ2hhcmFjdGVy
c1Byb2Nlc3NlZCA9IDA7CiAgICAgbG9uZyBvZmZzZXQgPSAwOwogICAgIHdoaWxlIChvZmZzZXQg
PCBsZW5ndGgpIHsKLSAgICAgICAgbGFuZ0ZvbnRMaW5rLT5HZXRTdHJDb2RlUGFnZXMoY2hhcmFj
dGVycywgbGVuZ3RoLCBhY3BDb2RlUGFnZXMsICZhY3R1YWxDb2RlUGFnZXMsICZudW1DaGFyYWN0
ZXJzUHJvY2Vzc2VkKTsKKyAgICAgICAgaWYgKEZBSUxFRChsYW5nRm9udExpbmstPkdldFN0ckNv
ZGVQYWdlcyhjaGFyYWN0ZXJzLCBsZW5ndGgsIGFjcENvZGVQYWdlcywgJmFjdHVhbENvZGVQYWdl
cywgJm51bUNoYXJhY3RlcnNQcm9jZXNzZWQpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKChhY3R1YWxDb2RlUGFnZXMgJiBmb250Q29kZVBhZ2VzKSA9PSAwKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBvZmZzZXQgKz0gbnVtQ2hhcmFjdGVyc1By
b2Nlc3NlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Vbmlz
Y3JpYmVDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE3NDQ1NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDEwICsxOTYsMTUgQEAgdm9pZCBVbmlzY3Jp
YmVDb250cm9sbGVyOjppdGVtaXplU2hhcGVBbgogICAgIC8vIGhhbmdpbmcgb3V0IGF0IHRoZSBl
bmQgb2YgdGhlIGFycmF5CiAgICAgbV9pdGVtcy5yZXNpemUoNik7CiAgICAgaW50IG51bUl0ZW1z
ID0gMDsKLSAgICB3aGlsZSAoU2NyaXB0SXRlbWl6ZShjcCwgbGVuZ3RoLCBtX2l0ZW1zLnNpemUo
KSAtIDEsICZtX2NvbnRyb2wsICZtX3N0YXRlLCBtX2l0ZW1zLmRhdGEoKSwgJm51bUl0ZW1zKSA9
PSBFX09VVE9GTUVNT1JZKSB7CisgICAgSFJFU1VMVCByYyA9IFNfT0s7CisgICAgd2hpbGUgKHJj
ID0gOjpTY3JpcHRJdGVtaXplKGNwLCBsZW5ndGgsIG1faXRlbXMuc2l6ZSgpIC0gMSwgJm1fY29u
dHJvbCwgJm1fc3RhdGUsIG1faXRlbXMuZGF0YSgpLCAmbnVtSXRlbXMpID09IEVfT1VUT0ZNRU1P
UlkpIHsKICAgICAgICAgbV9pdGVtcy5yZXNpemUobV9pdGVtcy5zaXplKCkgKiAyKTsKICAgICAg
ICAgcmVzZXRDb250cm9sQW5kU3RhdGUoKTsKICAgICB9CisgICAgaWYgKEZBSUxFRChyYykpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbmlzY3JpYmVDb250cm9sbGVyOjppdGVtaXplU2hhcGVB
bmRQbGFjZTogU2NyaXB0SXRlbWl6ZSBmYWlsZWQsIHJjPSVseCIsIHJjKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KICAgICBtX2l0ZW1zLnJlc2l6ZShudW1JdGVtcyArIDEpOwogCiAgICAgaWYg
KG1fcnVuLnJ0bCgpKSB7CkBAIC0zNzgsOCArMzgzLDEyIEBAIGJvb2wgVW5pc2NyaWJlQ29udHJv
bGxlcjo6c2hhcGVBbmRQbGFjZUkKICAgICB3aGlsZSAobV9jb21wdXRpbmdPZmZzZXRQb3NpdGlv
biAmJiBtX29mZnNldFggPj0gbGVmdEVkZ2UgJiYgbV9vZmZzZXRYIDwgbV9ydW5XaWR0aFNvRmFy
KSB7CiAgICAgICAgIC8vIFRoZSBwb3NpdGlvbiBpcyBzb21ld2hlcmUgaW5zaWRlIHRoaXMgcnVu
LgogICAgICAgICBpbnQgdHJhaWxpbmcgPSAwOwotICAgICAgICBTY3JpcHRYdG9DUChtX29mZnNl
dFggLSBsZWZ0RWRnZSwgY2x1c3RlcnMuc2l6ZSgpLCBnbHlwaHMuc2l6ZSgpLCBjbHVzdGVycy5k
YXRhKCksIHZpc3VhbEF0dHJpYnV0ZXMuZGF0YSgpLAorICAgICAgICBIUkVTVUxUIHJjID0gOjpT
Y3JpcHRYdG9DUChtX29mZnNldFggLSBsZWZ0RWRnZSwgY2x1c3RlcnMuc2l6ZSgpLCBnbHlwaHMu
c2l6ZSgpLCBjbHVzdGVycy5kYXRhKCksIHZpc3VhbEF0dHJpYnV0ZXMuZGF0YSgpLAogICAgICAg
ICAgICAgICAgICAgICBhZHZhbmNlcy5kYXRhKCksICZpdGVtLmEsICZtX29mZnNldFBvc2l0aW9u
LCAmdHJhaWxpbmcpOworICAgICAgICBpZiAoRkFJTEVEKHJjKSkgeworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFwZUFuZFBsYWNlSXRlbTogU2NyaXB0
WHRvQ1AgZmFpbGVkIHJjPSVseCIsIHJjKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CiAgICAgICAgIGlmICh0cmFpbGluZyAmJiBtX2luY2x1ZGVQYXJ0aWFsR2x5cGhzICYm
IG1fb2Zmc2V0UG9zaXRpb24gPCBsZW4gLSAxKSB7CiAgICAgICAgICAgICBtX29mZnNldFBvc2l0
aW9uICs9IG1fY3VycmVudENoYXJhY3RlciArIG1faXRlbXNbaV0uaUNoYXJQb3M7CiAgICAgICAg
ICAgICBtX29mZnNldFggKz0gbV9ydW4ucnRsKCkgPyAtdHJhaWxpbmcgOiB0cmFpbGluZzsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9CU3RyaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0JTdHJpbmcuaAkocmV2aXNpb24gMTc0NDU2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0JTdHJpbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsMTEgQEAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZTdHJpbmcgKiBDRlN0
cmluZ1JlZjsKICNlbmRpZgogCisjaWZuZGVmIF9QUkVGQVNUXwogdHlwZWRlZiB3Y2hhcl90KiBC
U1RSOworI2Vsc2UgLy8gX1BSRUZBU1RfCit0eXBlZGVmIF9OdWxsX3Rlcm1pbmF0ZWRfIHdjaGFy
X3QqIEJTVFI7CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ09NUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oCShyZXZpc2lvbiAxNzQ0NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ09NUHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEx
IEBACiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0
cy5oPgogCi10eXBlZGVmIGxvbmcgSFJFU1VMVDsKKyNpZmRlZiBfX21pZGwKK3R5cGVkZWYgTE9O
RyBIUkVTVUxUOworI2Vsc2UKK3R5cGVkZWYgX1JldHVybl90eXBlX3N1Y2Nlc3NfKHJldHVybiA+
PSAwKSBsb25nIEhSRVNVTFQ7CisjZW5kaWYgLy8gX19taWRsCiAKIC8vIEZJWE1FOiBTaG91bGQg
d2UgcHV0IHRoaXMgaW50byB0aGUgV2ViQ29yZSBuYW1lc3BhY2UgYW5kIHVzZSAidXNpbmciIG9u
IGl0CiAvLyBhcyB3ZSBkbyB3aXRoIHRoaW5ncyBpbiBXVEY/IApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCShyZXZpc2lvbiAxNzQ0NTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSwxMCArNDksMTAgQEAgR0RJT2JqZWN0PEhCSVRNQVA+IGFsbG9jSW1h
Z2UoSERDIGRjLCBJbgogewogICAgIEJpdG1hcEluZm8gYm1wSW5mbyA9IEJpdG1hcEluZm86OmNy
ZWF0ZShzaXplKTsKIAotICAgIExQVk9JRCBiaXRzOworICAgIExQVk9JRCBiaXRzID0gbnVsbHB0
cjsKICAgICBhdXRvIGhibXAgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZURJQlNlY3Rpb24oZGMs
ICZibXBJbmZvLCBESUJfUkdCX0NPTE9SUywgJmJpdHMsIDAsIDApKTsKIAotICAgIGlmICghdGFy
Z2V0UmVmKQorICAgIGlmICghdGFyZ2V0UmVmIHx8ICFoYm1wKQogICAgICAgICByZXR1cm4gaGJt
cDsKIAogICAgIENHQ29udGV4dFJlZiBiaXRtYXBDb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3Jl
YXRlKGJpdHMsIGJtcEluZm8uYm1pSGVhZGVyLmJpV2lkdGgsIGJtcEluZm8uYm1pSGVhZGVyLmJp
SGVpZ2h0LCA4LApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5jcHAJKHJldmlzaW9uIDE3NDQ1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDggQEAgdm9p
ZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3QgSW50UmVjdCYgcgogICAgICAgICAgICAgc2V0Rm9j
dXNlZEluZGV4KGluZGV4KTsKICAgICB9CiAKLSAgICA6OlN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQ
SV9HRVRDT01CT0JPWEFOSU1BVElPTiwgMCwgJnNob3VsZEFuaW1hdGUsIDApOworICAgIGlmICgh
OjpTeXN0ZW1QYXJhbWV0ZXJzSW5mbyhTUElfR0VUQ09NQk9CT1hBTklNQVRJT04sIDAsICZzaG91
bGRBbmltYXRlLCAwKSkKKyAgICAgICAgc2hvdWxkQW5pbWF0ZSA9IEZBTFNFOwogCiAgICAgaWYg
KHNob3VsZEFuaW1hdGUpIHsKICAgICAgICAgUkVDVCB2aWV3UmVjdCA9IHswfTsKQEAgLTk0Myw3
ICs5NDQsOCBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsCiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIEJPT0wgc2hvdWxkSG90VHJhY2sgPSBGQUxTRTsKLSAg
ICAgICAgICAgIDo6U3lzdGVtUGFyYW1ldGVyc0luZm8oU1BJX0dFVEhPVFRSQUNLSU5HLCAwLCAm
c2hvdWxkSG90VHJhY2ssIDApOworICAgICAgICAgICAgaWYgKCE6OlN5c3RlbVBhcmFtZXRlcnNJ
bmZvKFNQSV9HRVRIT1RUUkFDS0lORywgMCwgJnNob3VsZEhvdFRyYWNrLCAwKSkKKyAgICAgICAg
ICAgICAgICBzaG91bGRIb3RUcmFjayA9IEZBTFNFOwogCiAgICAgICAgICAgICBSRUNUIGJvdW5k
czsKICAgICAgICAgICAgIEdldENsaWVudFJlY3QocG9wdXBIYW5kbGUoKSwgJmJvdW5kcyk7Cg==
</data>
<flag name="review"
          id="264207"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>