<?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>84862</bug_id>
          
          <creation_ts>2012-04-25 07:41:26 -0700</creation_ts>
          <short_desc>[BlackBerry] Possible JS re-entrancy caused by UI event handler</short_desc>
          <delta_ts>2012-12-13 15:42:37 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609741</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 07:41:26 -0700</bug_when>
    <thetext>To avoid possible JS re-entrancy caused by UI events when page loading is deferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609744</commentid>
    <comment_count>1</comment_count>
      <attachid>138808</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 07:42:44 -0700</bug_when>
    <thetext>Created attachment 138808
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609747</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 07:46:49 -0700</bug_when>
    <thetext>Attachment 138808 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/blackberry/Api/WebPage.cpp&apos;,...&quot; exit_code: 1
Source/WebKit/blackberry/Api/WebPage.cpp:3051:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebKit/blackberry/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609755</commentid>
    <comment_count>3</comment_count>
      <attachid>138808</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 08:02:13 -0700</bug_when>
    <thetext>Comment on attachment 138808
the patch

to fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609758</commentid>
    <comment_count>4</comment_count>
      <attachid>138811</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 08:04:20 -0700</bug_when>
    <thetext>Created attachment 138811
fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609994</commentid>
    <comment_count>5</comment_count>
      <attachid>138811</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-25 13:10:14 -0700</bug_when>
    <thetext>Comment on attachment 138811
fix style

very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610042</commentid>
    <comment_count>6</comment_count>
      <attachid>138811</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 14:22:12 -0700</bug_when>
    <thetext>Comment on attachment 138811
fix style

Clearing flags on attachment: 138811

Committed r115245: &lt;http://trac.webkit.org/changeset/115245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610043</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 14:22:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610074</commentid>
    <comment_count>8</comment_count>
      <attachid>138878</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 15:05:48 -0700</bug_when>
    <thetext>Created attachment 138878
a fix for the previous patch

when double-checking the patch, I found a bug in the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610075</commentid>
    <comment_count>9</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-25 15:06:55 -0700</bug_when>
    <thetext>reopening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610556</commentid>
    <comment_count>10</comment_count>
      <attachid>138878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 06:54:45 -0700</bug_when>
    <thetext>Comment on attachment 138878
a fix for the previous patch

Clearing flags on attachment: 138878

Committed r115308: &lt;http://trac.webkit.org/changeset/115308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610558</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 06:54:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790963</commentid>
    <comment_count>12</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-12-13 14:47:37 -0800</bug_when>
    <thetext>reopen to fix a one-character bug in the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790972</commentid>
    <comment_count>13</comment_count>
      <attachid>179346</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-12-13 14:54:01 -0800</bug_when>
    <thetext>Created attachment 179346
a fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790974</commentid>
    <comment_count>14</comment_count>
      <attachid>179346</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-12-13 14:56:11 -0800</bug_when>
    <thetext>Comment on attachment 179346
a fix

Obvious fix, obvious r+ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791028</commentid>
    <comment_count>15</comment_count>
      <attachid>179346</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 15:42:33 -0800</bug_when>
    <thetext>Comment on attachment 179346
a fix

Clearing flags on attachment: 179346

Committed r137671: &lt;http://trac.webkit.org/changeset/137671&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791029</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 15:42:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138808</attachid>
            <date>2012-04-25 07:42:44 -0700</date>
            <delta_ts>2012-04-25 08:02:13 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>84862.patch</filename>
            <type>text/plain</type>
            <size>29106</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDlkZTE4YzkuLjU3
ODQzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMjg5
LDYgKzI4OSwyMSBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKCkK
ICAgICBkLT5tX3VzZXJWaWV3cG9ydEFyZ3VtZW50cyA9IFZpZXdwb3J0QXJndW1lbnRzKCk7CiB9
CiAKK3RlbXBsYXRlIDxib29sIFdlYlBhZ2VQcml2YXRlOjoqIGlzQWN0aXZlPgorY2xhc3MgRGVm
ZXJyZWRUYXNrOiBwdWJsaWMgV2ViUGFnZVByaXZhdGU6OkRlZmVycmVkVGFza0Jhc2UgeworcHVi
bGljOgorICAgIHN0YXRpYyB2b2lkIGZpbmlzaE9yQ2FuY2VsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQ
YWdlUHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT4qaXNBY3RpdmUgPSBm
YWxzZTsKKyAgICB9Citwcm90ZWN0ZWQ6CisgICAgRGVmZXJyZWRUYXNrKFdlYlBhZ2VQcml2YXRl
KiB3ZWJQYWdlUHJpdmF0ZSkKKyAgICAgICAgOiBEZWZlcnJlZFRhc2tCYXNlKHdlYlBhZ2VQcml2
YXRlLCBpc0FjdGl2ZSkKKyAgICB7CisgICAgfQorICAgIHR5cGVkZWYgRGVmZXJyZWRUYXNrPGlz
QWN0aXZlPiBEZWZlcnJlZFRhc2tUeXBlOworfTsKKwogV2ViUGFnZVByaXZhdGU6OldlYlBhZ2VQ
cml2YXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYlBhZ2VDbGllbnQqIGNsaWVudCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogICAgICwgbV9jbGllbnQoY2xp
ZW50KQpAQCAtMzU2LDYgKzM3MSw3IEBAIFdlYlBhZ2VQcml2YXRlOjpXZWJQYWdlUHJpdmF0ZShX
ZWJQYWdlKiB3ZWJQYWdlLCBXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IEluCiAgICAgLCBt
X2Z1bGxzY3JlZW5WaWRlb05vZGUoMCkKICAgICAsIG1faGFzSW5SZWdpb25TY3JvbGxhYmxlQXJl
YXMoZmFsc2UpCiAgICAgLCBtX3VwZGF0ZURlbGVnYXRlZE92ZXJsYXlzRGlzcGF0Y2hlZChmYWxz
ZSkKKyAgICAsIG1fZGVmZXJyZWRUYXNrc1RpbWVyKHRoaXMsICZXZWJQYWdlUHJpdmF0ZTo6ZGVm
ZXJyZWRUYXNrc1RpbWVyRmlyZWQpCiB7CiAgICAgc3RhdGljIGJvb2wgaXNJbml0aWFsaXplZCA9
IGZhbHNlOwogICAgIGlmICghaXNJbml0aWFsaXplZCkgewpAQCAtNTI3LDkgKzU0MywyNCBAQCB2
b2lkIFdlYlBhZ2VQcml2YXRlOjppbml0KGNvbnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFtZSkK
ICNlbmRpZgogfQogCitjbGFzcyBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0OiBwdWJsaWMg
RGVmZXJyZWRUYXNrPCZXZWJQYWdlUHJpdmF0ZTo6bV93b3VsZFNldEZvY3VzZWQ+IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0KFdlYlBhZ2VQcml2
YXRlKiB3ZWJQYWdlUHJpdmF0ZSwgY29uc3QgS1VSTCYgdXJsKQorICAgICAgICA6IERlZmVycmVk
VGFza1R5cGUod2ViUGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+
bV9jYWNoZWRNYW51YWxTY3JpcHQgPSB1cmw7CisgICAgfQorcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0ZSkKKyAg
ICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX21haW5GcmFtZS0+c2NyaXB0KCktPmV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwod2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkTWFudWFsU2NyaXB0LCBE
b05vdFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgfQorfTsKKwogdm9pZCBX
ZWJQYWdlUHJpdmF0ZTo6bG9hZChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIG5ldHdvcmtU
b2tlbiwgY29uc3QgY2hhciogbWV0aG9kLCBQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkNhY2hl
UG9saWN5IGNhY2hlUG9saWN5LCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwg
Y29uc3QgY2hhciogY29uc3QqIGhlYWRlcnMsIHNpemVfdCBoZWFkZXJzTGVuZ3RoLCBib29sIGlz
SW5pdGlhbCwgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSwgYm9vbCBmb3JjZURvd25sb2FkLCBj
b25zdCBjaGFyKiBvdmVycmlkZUNvbnRlbnRUeXBlKQogewogICAgIHN0b3BDdXJyZW50TG9hZCgp
OworICAgIERlZmVycmVkVGFza0xvYWRNYW51YWxTY3JpcHQ6OmZpbmlzaE9yQ2FuY2VsKHRoaXMp
OwogCiAgICAgU3RyaW5nIHVybFN0cmluZyh1cmwpOwogICAgIGlmICh1cmxTdHJpbmcuc3RhcnRz
V2l0aCgidnM6IiwgZmFsc2UpKSB7CkBAIC01NDEsMTAgKzU3Miw5IEBAIHZvaWQgV2ViUGFnZVBy
aXZhdGU6OmxvYWQoY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiBuZXR3b3JrVG9rZW4sIGNv
bnN0IGNoYXIqCiAgICAgS1VSTCBrdXJsID0gcGFyc2VVcmwodXJsU3RyaW5nKTsKICAgICBpZiAo
cHJvdG9jb2xJcyhrdXJsLCAiamF2YXNjcmlwdCIpKSB7CiAgICAgICAgIC8vIE5ldmVyIHJ1biBq
YXZhc2NyaXB0IHdoaWxlIGxvYWRpbmcgaXMgZGVmZXJyZWQuCi0gICAgICAgIGlmIChtX3BhZ2Ut
PmRlZmVyc0xvYWRpbmcoKSkgewotICAgICAgICAgICAgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5KiBmcmFtZUxvYWRlckNsaWVudCA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeSo+KG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpOwotICAgICAgICAgICAg
ZnJhbWVMb2FkZXJDbGllbnQtPnNldERlZmVycmVkTWFudWFsU2NyaXB0KGt1cmwpOwotICAgICAg
ICB9IGVsc2UKKyAgICAgICAgaWYgKG1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICAg
ICAgbV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNrTG9hZE1h
bnVhbFNjcmlwdCh0aGlzLCBrdXJsKSkpOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX21h
aW5GcmFtZS0+c2NyaXB0KCktPmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoa3VybCwgRG9Ob3RSZXBs
YWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NzUxLDggKzc4MSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OnN0b3BDdXJyZW50TG9hZCgpCiAg
ICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwogCiAgICAgLy8gQ2Fu
Y2VsIGFueSBkZWZlcnJlZCBzY3JpcHQgdGhhdCBoYXNuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0Lgot
ICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSogZnJhbWVMb2FkZXJDbGllbnQgPSBzdGF0
aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihtX21haW5GcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpKTsKLSAgICBmcmFtZUxvYWRlckNsaWVudC0+c2V0RGVmZXJyZWRNYW51YWxT
Y3JpcHQoS1VSTCgpKTsKKyAgICBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0OjpmaW5pc2hP
ckNhbmNlbCh0aGlzKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZygpCkBAIC0xMjIw
LDE0ICsxMjQ5LDMyIEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OnNob3VsZFNlbmRSZXNpemVFdmVu
dCgpCiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OndpbGxEZWZlckxvYWRpbmcoKQogeworICAgIG1f
ZGVmZXJyZWRUYXNrc1RpbWVyLnN0b3AoKTsKICAgICBtX2NsaWVudC0+d2lsbERlZmVyTG9hZGlu
ZygpOwogfQogCiB2b2lkIFdlYlBhZ2VQcml2YXRlOjpkaWRSZXN1bWVMb2FkaW5nKCkKIHsKKyAg
ICBpZiAoIW1fZGVmZXJyZWRUYXNrcy5pc0VtcHR5KCkpCisgICAgICAgIG1fZGVmZXJyZWRUYXNr
c1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICBtX2NsaWVudC0+ZGlkUmVzdW1lTG9hZGluZygp
OwogfQogCit2b2lkIFdlYlBhZ2VQcml2YXRlOjpkZWZlcnJlZFRhc2tzVGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4qKQoreworICAgIEFTU0VSVCghbV9kZWZlcnJlZFRh
c2tzLmlzRW1wdHkoKSk7CisgICAgaWYgKCFtX2RlZmVycmVkVGFza3MuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBPd25QdHI8RGVmZXJyZWRUYXNrQmFzZT4gdGFzayA9IG1fZGVm
ZXJyZWRUYXNrc1swXS5yZWxlYXNlKCk7CisgICAgbV9kZWZlcnJlZFRhc2tzLnJlbW92ZSgwKTsK
KworICAgIGlmICghbV9kZWZlcnJlZFRhc2tzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9kZWZlcnJl
ZFRhc2tzVGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgdGFzay0+cGVyZm9ybSh0aGlzKTsK
K30KKwogYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2Nyb2xsQnkoaW50IGRlbHRhWCwgaW50IGRlbHRh
WSwgYm9vbCBzY3JvbGxNYWluRnJhbWUpCiB7CiAgICAgSW50U2l6ZSBkZWx0YShkZWx0YVgsIGRl
bHRhWSk7CkBAIC0yNDQ5LDYgKzI0OTYsOCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjphc3NpZ25G
b2N1cyhQbGF0Zm9ybTo6Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiB2b2lkIFdlYlBhZ2U6
OmFzc2lnbkZvY3VzKFBsYXRmb3JtOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAg
aWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgIHJldHVybjsKICAgICBkLT5h
c3NpZ25Gb2N1cyhkaXJlY3Rpb24pOwogfQogCkBAIC0yOTgyLDEyICszMDMxLDMxIEBAIGJvb2wg
V2ViUGFnZTo6aXNWaXNpYmxlKCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorY2xhc3MgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2liaWxpdHlTdGF0ZTogcHVibGlj
IERlZmVycmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1fd291bGRTZXRQYWdlVmlzaWJpbGl0eVN0
YXRlPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2liaWxp
dHlTdGF0ZShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgICAgIDogRGVmZXJy
ZWRUYXNrVHlwZSh3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAgfQorcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0
ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5zZXRQYWdlVmlzaWJpbGl0eVN0YXRl
KCk7CisgICAgfQorfTsKKwogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0UGFnZVZpc2liaWxpdHlT
dGF0ZSgpCiB7Ci0gICAgc3RhdGljIGJvb2wgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlID0gdHJ1
ZTsKKyAgICBpZiAobV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAgICAgICAgbV9kZWZlcnJl
ZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2liaWxpdHlT
dGF0ZSh0aGlzKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIERlZmVycmVkVGFza1NldFBhZ2VW
aXNpYmlsaXR5U3RhdGU6OmZpbmlzaE9yQ2FuY2VsKHRoaXMpOworCisgICAgICAgIHN0YXRpYyBi
b29sIHNfaW5pdGlhbFZpc2liaWxpdHlTdGF0ZSA9IHRydWU7CiAKLSAgICBtX3BhZ2UtPnNldFZp
c2liaWxpdHlTdGF0ZShtX3Zpc2libGUgJiYgbV9hY3RpdmF0aW9uU3RhdGUgPT0gQWN0aXZhdGlv
bkFjdGl2ZSA/IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlIDogUGFnZVZpc2liaWxpdHlTdGF0
ZUhpZGRlbiwgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlKTsKLSAgICBzX2luaXRpYWxWaXNpYmls
aXR5U3RhdGUgPSBmYWxzZTsKKyAgICAgICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUobV92
aXNpYmxlICYmIG1fYWN0aXZhdGlvblN0YXRlID09IEFjdGl2YXRpb25BY3RpdmUgPyBQYWdlVmlz
aWJpbGl0eVN0YXRlVmlzaWJsZSA6IFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4sIHNfaW5pdGlh
bFZpc2liaWxpdHlTdGF0ZSk7CisgICAgICAgIHNfaW5pdGlhbFZpc2liaWxpdHlTdGF0ZSA9IGZh
bHNlOworICAgIH0KIH0KICNlbmRpZgogCkBAIC0zMDkzLDYgKzMxNjEsOCBAQCBib29sIFdlYlBh
Z2U6OnNldEJhdGNoRWRpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogYm9vbCBXZWJQYWdlOjpz
ZXRJbnB1dFNlbGVjdGlvbih1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQogeworICAgIGlm
IChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IHJldHVybiBkLT5tX2lucHV0SGFuZGxlci0+c2V0U2VsZWN0aW9uKHN0YXJ0LCBlbmQpOwogfQog
CkBAIC0zMTAxLDIzICszMTcxLDEwMSBAQCBpbnQgV2ViUGFnZTo6aW5wdXRDYXJldFBvc2l0aW9u
KCkgY29uc3QKICAgICByZXR1cm4gZC0+bV9pbnB1dEhhbmRsZXItPmNhcmV0UG9zaXRpb24oKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpwb3B1cExpc3RDbG9zZWQoaW50IHNpemUsIGJvb2wqIHNlbGVj
dGVkcykKK2NsYXNzIERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdE11bHRpcGxlOiBwdWJsaWMg
RGVmZXJyZWRUYXNrPCZXZWJQYWdlUHJpdmF0ZTo6bV93b3VsZFBvcHVwTGlzdFNlbGVjdE11bHRp
cGxlPiB7CitwdWJsaWM6CisgICAgRGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0TXVsdGlwbGUo
V2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlLCBpbnQgc2l6ZSwgY29uc3QgYm9vbCogc2Vs
ZWN0ZWRzKSAKKyAgICAgICAgOiBEZWZlcnJlZFRhc2tUeXBlKHdlYlBhZ2VQcml2YXRlKQorICAg
IHsKKyAgICAgICAgd2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRzLmFw
cGVuZChzZWxlY3RlZHMsIHNpemUpOworICAgIH0KK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1JbnRlcm5hbChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgewor
ICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5wb3B1cExpc3RDbG9zZWQod2ViUGFn
ZVByaXZhdGUtPm1fY2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRzLnNpemUoKSwgd2ViUGFnZVByaXZh
dGUtPm1fY2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRzLmRhdGEoKSk7CisgICAgfQorfTsKKworY2xh
c3MgRGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0U2luZ2xlOiBwdWJsaWMgRGVmZXJyZWRUYXNr
PCZXZWJQYWdlUHJpdmF0ZTo6bV93b3VsZFBvcHVwTGlzdFNlbGVjdFNpbmdsZT4geworcHVibGlj
OgorICAgIGV4cGxpY2l0IERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdFNpbmdsZShXZWJQYWdl
UHJpdmF0ZSogd2ViUGFnZVByaXZhdGUsIGludCBpbmRleCkKKyAgICAgICAgOiBEZWZlcnJlZFRh
c2tUeXBlKHdlYlBhZ2VQcml2YXRlKQorICAgIHsKKyAgICAgICAgd2ViUGFnZVByaXZhdGUtPm1f
Y2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRJbmRleCA9IGluZGV4OworICAgIH0KK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIHBlcmZvcm1JbnRlcm5hbChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVBy
aXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5wb3B1cExp
c3RDbG9zZWQod2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRJbmRleCk7
CisgICAgfQorfTsKKwordm9pZCBXZWJQYWdlOjpwb3B1cExpc3RDbG9zZWQoaW50IHNpemUsIGNv
bnN0IGJvb2wqIHNlbGVjdGVkcykKIHsKKyAgICBEZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RT
aW5nbGU6OmZpbmlzaE9yQ2FuY2VsKGQpOworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRp
bmcoKSkgeworICAgICAgICBkLT5tX2RlZmVycmVkVGFza3MuYXBwZW5kKGFkb3B0UHRyKG5ldyBE
ZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RNdWx0aXBsZShkLCBzaXplLCBzZWxlY3RlZHMpKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgRGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0
TXVsdGlwbGU6OmZpbmlzaE9yQ2FuY2VsKGQpOwogICAgIGQtPm1faW5wdXRIYW5kbGVyLT5zZXRQ
b3B1cExpc3RJbmRleGVzKHNpemUsIHNlbGVjdGVkcyk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cG9w
dXBMaXN0Q2xvc2VkKGludCBpbmRleCkKIHsKKyAgICBEZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxl
Y3RNdWx0aXBsZTo6ZmluaXNoT3JDYW5jZWwoZCk7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJz
TG9hZGluZygpKSB7CisgICAgICAgIGQtPm1fZGVmZXJyZWRUYXNrcy5hcHBlbmQoYWRvcHRQdHIo
bmV3IERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdFNpbmdsZShkLCBpbmRleCkpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBEZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RTaW5nbGU6
OmZpbmlzaE9yQ2FuY2VsKGQpOwogICAgIGQtPm1faW5wdXRIYW5kbGVyLT5zZXRQb3B1cExpc3RJ
bmRleChpbmRleCk7CiB9CiAKK2NsYXNzIERlZmVycmVkVGFza1NldERhdGVUaW1lSW5wdXQ6IHB1
YmxpYyBEZWZlcnJlZFRhc2s8JldlYlBhZ2VQcml2YXRlOjptX3dvdWxkU2V0RGF0ZVRpbWVJbnB1
dD4geworcHVibGljOgorICAgIGV4cGxpY2l0IERlZmVycmVkVGFza1NldERhdGVUaW1lSW5wdXQo
V2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlLCBXZWJTdHJpbmcgdmFsdWUpCisgICAgICAg
IDogRGVmZXJyZWRUYXNrVHlwZSh3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBh
Z2VQcml2YXRlLT5tX2NhY2hlZERhdGVUaW1lSW5wdXQgPSB2YWx1ZTsKKyAgICB9Citwcml2YXRl
OgorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtSW50ZXJuYWwoV2ViUGFnZVByaXZhdGUqIHdlYlBh
Z2VQcml2YXRlKQorICAgIHsKKyAgICAgICAgd2ViUGFnZVByaXZhdGUtPm1fd2ViUGFnZS0+c2V0
RGF0ZVRpbWVJbnB1dCh3ZWJQYWdlUHJpdmF0ZS0+bV9jYWNoZWREYXRlVGltZUlucHV0KTsKKyAg
ICB9Cit9OworCiB2b2lkIFdlYlBhZ2U6OnNldERhdGVUaW1lSW5wdXQoY29uc3QgV2ViU3RyaW5n
JiB2YWx1ZSkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAgICAg
ICAgZC0+bV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNrU2V0
RGF0ZVRpbWVJbnB1dChkLCB2YWx1ZSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBE
ZWZlcnJlZFRhc2tTZXREYXRlVGltZUlucHV0OjpmaW5pc2hPckNhbmNlbChkKTsKICAgICBkLT5t
X2lucHV0SGFuZGxlci0+c2V0SW5wdXRWYWx1ZShTdHJpbmcodmFsdWUuaW1wbCgpKSk7CiB9CiAK
K2NsYXNzIERlZmVycmVkVGFza1NldENvbG9ySW5wdXQ6IHB1YmxpYyBEZWZlcnJlZFRhc2s8Jldl
YlBhZ2VQcml2YXRlOjptX3dvdWxkU2V0Q29sb3JJbnB1dD4geworcHVibGljOgorICAgIGV4cGxp
Y2l0IERlZmVycmVkVGFza1NldENvbG9ySW5wdXQoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2
YXRlLCBXZWJTdHJpbmcgdmFsdWUpCisgICAgICAgIDogRGVmZXJyZWRUYXNrVHlwZSh3ZWJQYWdl
UHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX2NhY2hlZENvbG9ySW5w
dXQgPSB2YWx1ZTsKKyAgICB9Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtSW50
ZXJuYWwoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlKQorICAgIHsKKyAgICAgICAgd2Vi
UGFnZVByaXZhdGUtPm1fd2ViUGFnZS0+c2V0Q29sb3JJbnB1dCh3ZWJQYWdlUHJpdmF0ZS0+bV9j
YWNoZWRDb2xvcklucHV0KTsKKyAgICB9Cit9OworCiB2b2lkIFdlYlBhZ2U6OnNldENvbG9ySW5w
dXQoY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNM
b2FkaW5nKCkpIHsKKyAgICAgICAgZC0+bV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihu
ZXcgRGVmZXJyZWRUYXNrU2V0Q29sb3JJbnB1dChkLCB2YWx1ZSkpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBEZWZlcnJlZFRhc2tTZXRDb2xvcklucHV0OjpmaW5pc2hPckNhbmNlbChk
KTsKICAgICBkLT5tX2lucHV0SGFuZGxlci0+c2V0SW5wdXRWYWx1ZShTdHJpbmcodmFsdWUuaW1w
bCgpKSk7CiB9CiAKQEAgLTM1NTMsNiArMzcwMSw5IEBAIGJvb2wgV2ViUGFnZTo6bW91c2VFdmVu
dChjb25zdCBQbGF0Zm9ybTo6TW91c2VFdmVudCYgbW91c2VFdmVudCwgYm9vbCogd2hlZWxEZWx0
CiAgICAgaWYgKCFkLT5tX21haW5GcmFtZS0+dmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKwogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBkLT5tX2Z1bGxTY3JlZW5QbHVn
aW5WaWV3LmdldCgpOwogICAgIGlmIChwbHVnaW5WaWV3KQogICAgICAgICByZXR1cm4gZC0+ZGlz
cGF0Y2hNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKHBsdWdpblZpZXcsIG1vdXNlRXZlbnQp
OwpAQCAtMzcyOSwxMyArMzg4MCwxNiBAQCBib29sIFdlYlBhZ2U6OnRvdWNoRXZlbnQoY29uc3Qg
UGxhdGZvcm06OlRvdWNoRXZlbnQmIGV2ZW50KQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorICAgIGlmICghZC0+bV9tYWluRnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IGQtPm1fZnVsbFNjcmVlblBsdWdp
blZpZXcuZ2V0KCk7CiAgICAgaWYgKHBsdWdpblZpZXcpCiAgICAgICAgIHJldHVybiBkLT5kaXNw
YXRjaFRvdWNoRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4ocGx1Z2luVmlldywgZXZlbnQpOwogCi0g
ICAgaWYgKCFkLT5tX21haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgUGxh
dGZvcm06OlRvdWNoRXZlbnQgdEV2ZW50ID0gZXZlbnQ7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGV2ZW50Lm1fcG9pbnRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIHRFdmVudC5tX3Bv
aW50c1tpXS5tX3BvcyA9IGQtPm1hcEZyb21UcmFuc2Zvcm1lZCh0RXZlbnQubV9wb2ludHNbaV0u
bV9wb3MpOwpAQCAtMzg1Myw2ICs0MDA3LDkgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0
Y2hUb3VjaEV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcqIHBsdWdpbiwgY28KIAog
Ym9vbCBXZWJQYWdlOjp0b3VjaFBvaW50QXNNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtOjpUb3Vj
aFBvaW50JiBwb2ludCkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBkLT5t
X2Z1bGxTY3JlZW5QbHVnaW5WaWV3LmdldCgpOwogICAgIGlmIChwbHVnaW5WaWV3KQogICAgICAg
ICByZXR1cm4gZC0+ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1
Z2luKHBsdWdpblZpZXcsIHBvaW50KTsKQEAgLTM4OTgsMTEgKzQwNTUsMTUgQEAgYm9vbCBXZWJQ
YWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1
Z2luKFBsdWdpblZpZXcKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudENhbmNlbCgpCiB7CiAgICAg
ZC0+bV9wbHVnaW5NYXlPcGVuTmV3VGFiID0gZmFsc2U7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVm
ZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CiAgICAgZC0+bV90b3VjaEV2ZW50SGFuZGxl
ci0+dG91Y2hFdmVudENhbmNlbCgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnRDYW5j
ZWxBbmRDbGVhckZvY3VzZWROb2RlKCkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2Fk
aW5nKCkpCisgICAgICAgIHJldHVybjsKICAgICBkLT5tX3RvdWNoRXZlbnRIYW5kbGVyLT50b3Vj
aEV2ZW50Q2FuY2VsQW5kQ2xlYXJGb2N1c2VkTm9kZSgpOwogfQogCkBAIC00MTIxLDYgKzQyODIs
OSBAQCBib29sIFdlYlBhZ2U6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtOjpLZXlib2FyZEV2ZW50
JiBrZXlib2FyZEV2ZW50KQogICAgIGlmICghZC0+bV9tYWluRnJhbWUtPnZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBBU1NFUlQoZC0+bV9wYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBkLT5tX2lucHV0SGFuZGxlci0+aGFuZGxl
S2V5Ym9hcmRJbnB1dChrZXlib2FyZEV2ZW50KTsKQEAgLTQxMzYsNiArNDMwMCw5IEBAIGJvb2wg
V2ViUGFnZTo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm06OktleWJvYXJkRXZlbnQmIGtleWJvYXJk
RXZlbnQpCiAKIGJvb2wgV2ViUGFnZTo6ZGVsZXRlVGV4dFJlbGF0aXZlVG9DdXJzb3IodW5zaWdu
ZWQgaW50IGxlZnRPZmZzZXQsIHVuc2lnbmVkIGludCByaWdodE9mZnNldCkKIHsKKyAgICBpZiAo
ZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IHJldHVybiBkLT5tX2lucHV0SGFuZGxlci0+ZGVsZXRlVGV4dFJlbGF0aXZlVG9DdXJzb3IobGVm
dE9mZnNldCwgcmlnaHRPZmZzZXQpOwogfQogCkBAIC00MTcxLDExICs0MzM4LDE1IEBAIGludDMy
X3QgV2ViUGFnZTo6ZmluaXNoQ29tcG9zaXRpb24oKQogCiBpbnQzMl90IFdlYlBhZ2U6OnNldENv
bXBvc2luZ1RleHQoc3Bhbm5hYmxlX3N0cmluZ190KiBzcGFubmFibGVTdHJpbmcsIGludDMyX3Qg
cmVsYXRpdmVDdXJzb3JQb3NpdGlvbikKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2Fk
aW5nKCkpCisgICAgICAgIHJldHVybiAtMTsKICAgICByZXR1cm4gZC0+bV9pbnB1dEhhbmRsZXIt
PnNldENvbXBvc2luZ1RleHQoc3Bhbm5hYmxlU3RyaW5nLCByZWxhdGl2ZUN1cnNvclBvc2l0aW9u
KTsKIH0KIAogaW50MzJfdCBXZWJQYWdlOjpjb21taXRUZXh0KHNwYW5uYWJsZV9zdHJpbmdfdCog
c3Bhbm5hYmxlU3RyaW5nLCBpbnQzMl90IHJlbGF0aXZlQ3Vyc29yUG9zaXRpb24pCiB7CisgICAg
aWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm4gLTE7CiAgICAg
cmV0dXJuIGQtPm1faW5wdXRIYW5kbGVyLT5jb21taXRUZXh0KHNwYW5uYWJsZVN0cmluZywgcmVs
YXRpdmVDdXJzb3JQb3NpdGlvbik7CiB9CiAKQEAgLTQxODQsOCArNDM1NSwyNiBAQCB2b2lkIFdl
YlBhZ2U6OnNldFNwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBzdGF0aWNf
Y2FzdDxFZGl0b3JDbGllbnRCbGFja0JlcnJ5Kj4oZC0+bV9wYWdlLT5lZGl0b3JDbGllbnQoKSkt
PmVuYWJsZVNwZWxsQ2hlY2tpbmcoZW5hYmxlZCk7CiB9CiAKK2NsYXNzIERlZmVycmVkVGFza1Nl
bGVjdGlvbkNhbmNlbGxlZDogcHVibGljIERlZmVycmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1f
d291bGRDYW5jZWxTZWxlY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZWZlcnJlZFRh
c2tTZWxlY3Rpb25DYW5jZWxsZWQoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlKQorICAg
ICAgICA6IERlZmVycmVkVGFza1R5cGUod2ViUGFnZVByaXZhdGUpCisgICAgeworICAgIH0KK3By
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1JbnRlcm5hbChXZWJQYWdlUHJpdmF0ZSog
d2ViUGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdl
LT5zZWxlY3Rpb25DYW5jZWxsZWQoKTsKKyAgICB9Cit9OworCiB2b2lkIFdlYlBhZ2U6OnNlbGVj
dGlvbkNhbmNlbGxlZCgpCiB7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKSB7
CisgICAgICAgIGQtPm1fZGVmZXJyZWRUYXNrcy5hcHBlbmQoYWRvcHRQdHIobmV3IERlZmVycmVk
VGFza1NlbGVjdGlvbkNhbmNlbGxlZChkKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IERlZmVycmVkVGFza1NlbGVjdGlvbkNhbmNlbGxlZDo6ZmluaXNoT3JDYW5jZWwoZCk7CiAgICAg
ZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5jYW5jZWxTZWxlY3Rpb24oKTsKIH0KIApAQCAtNDIwOSwy
MyArNDM5OCwyOSBAQCBXZWJTdHJpbmcgV2ViUGFnZTo6c2VsZWN0ZWRUZXh0KCkgY29uc3QKIFdl
YlN0cmluZyBXZWJQYWdlOjpjdXRTZWxlY3RlZFRleHQoKQogewogICAgIFdlYlN0cmluZyBzZWxl
Y3RlZFRleHQgPSBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNlbGVjdGVkVGV4dCgpOwotICAgIGlm
ICghc2VsZWN0ZWRUZXh0LmlzRW1wdHkoKSkKKyAgICBpZiAoIWQtPm1fcGFnZS0+ZGVmZXJzTG9h
ZGluZygpICYmICFzZWxlY3RlZFRleHQuaXNFbXB0eSgpKQogICAgICAgICBkLT5tX2lucHV0SGFu
ZGxlci0+ZGVsZXRlU2VsZWN0aW9uKCk7CiAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dDsKIH0KIAog
dm9pZCBXZWJQYWdlOjppbnNlcnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKQogeworICAg
IGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGQt
Pm1faW5wdXRIYW5kbGVyLT5pbnNlcnRUZXh0KHN0cmluZyk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
Y2xlYXJDdXJyZW50SW5wdXRGaWVsZCgpCiB7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9h
ZGluZygpKQorICAgICAgICByZXR1cm47CiAgICAgZC0+bV9pbnB1dEhhbmRsZXItPmNsZWFyRmll
bGQoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpjdXQoKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRl
ZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGQtPm1faW5wdXRIYW5kbGVyLT5j
dXQoKTsKIH0KIApAQCAtNDIzNiwxMSArNDQzMSwxNSBAQCB2b2lkIFdlYlBhZ2U6OmNvcHkoKQog
CiB2b2lkIFdlYlBhZ2U6OnBhc3RlKCkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2Fk
aW5nKCkpCisgICAgICAgIHJldHVybjsKICAgICBkLT5tX2lucHV0SGFuZGxlci0+cGFzdGUoKTsK
IH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZWxlY3Rpb24oY29uc3QgUGxhdGZvcm06OkludFBvaW50
JiBzdGFydFBvaW50LCBjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGVuZFBvaW50KQogeworICAg
IGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIC8v
IFRyYW5zZm9ybSB0aGlzIGV2ZW50cyBjb29yZGluYXRlcyB0byB3ZWJraXQgY29udGVudCBjb29y
ZGluYXRlcy4KICAgICAvLyBGSVhNRTogRG9uJ3QgdHJhbnNmb3JtIHRoZSBzZW50aW5lbCwgYmVj
YXVzZSBpdCBtYXkgYmUgdHJhbnNmb3JtZWQgdG8gYSBmbG9hdGluZyBudW1iZXIKICAgICAvLyB3
aGljaCBjb3VsZCBiZSByb3VuZGVkIHRvIDAgb3Igb3RoZXIgbnVtYmVycy4gVGhpcyB3b3JrYXJv
dW5kIHNob3VsZCBiZSByZW1vdmVkIGFmdGVyCkBAIC00MjUwLDE4ICs0NDQ5LDIyIEBAIHZvaWQg
V2ViUGFnZTo6c2V0U2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYgc3RhcnRQb2lu
dCwgY29uc3QgUGxhdGZvcm06CiAgICAgaW52YWxpZFBvaW50ID0gSW50UG9pbnQoZW5kUG9pbnQp
ID09IERPTVN1cHBvcnQ6OkludmFsaWRQb2ludDsKICAgICBJbnRQb2ludCBlbmQgPSBpbnZhbGlk
UG9pbnQgPyBET01TdXBwb3J0OjpJbnZhbGlkUG9pbnQgOiBkLT5tYXBGcm9tVHJhbnNmb3JtZWQo
ZW5kUG9pbnQpOwogCi0gICAgZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRTZWxlY3Rpb24oc3Rh
cnQsIGVuZCk7CisgICAgcmV0dXJuIGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2V0U2VsZWN0aW9u
KHN0YXJ0LCBlbmQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldENhcmV0UG9zaXRpb24oY29uc3Qg
UGxhdGZvcm06OkludFBvaW50JiBwb3NpdGlvbikKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZl
cnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKICAgICAvLyBIYW5kbGVkIGJ5IHNlbGVjdGlv
biBoYW5kbGVyIGFzIGl0J3MgcG9pbnQgYmFzZWQuCiAgICAgLy8gVHJhbnNmb3JtIHRoaXMgZXZl
bnRzIGNvb3JkaW5hdGVzIHRvIHdlYmtpdCBjb250ZW50IGNvb3JkaW5hdGVzLgotICAgIGQtPm1f
c2VsZWN0aW9uSGFuZGxlci0+c2V0Q2FyZXRQb3NpdGlvbihkLT5tYXBGcm9tVHJhbnNmb3JtZWQo
cG9zaXRpb24pKTsKKyAgICByZXR1cm4gZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRDYXJldFBv
c2l0aW9uKGQtPm1hcEZyb21UcmFuc2Zvcm1lZChwb3NpdGlvbikpOwogfQogCiB2b2lkIFdlYlBh
Z2U6OnNlbGVjdEF0UG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBsb2NhdGlvbikKIHsK
KyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKICAg
ICAvLyBUcmFuc2Zvcm0gdGhpcyBldmVudHMgY29vcmRpbmF0ZXMgdG8gd2Via2l0IGNvbnRlbnQg
Y29vcmRpbmF0ZXMgaWYgaXQKICAgICAvLyBpcyBub3QgdGhlIHNlbnRpbmVsIHZhbHVlLgogICAg
IEludFBvaW50IHNlbGVjdGlvbkxvY2F0aW9uID0KQEAgLTQ2OTUsOCArNDg5OCwyNyBAQCBib29s
IFdlYlBhZ2U6Onpvb21Ub09uZU9uZSgpCiAgICAgcmV0dXJuIGQtPnpvb21BYm91dFBvaW50KHNj
YWxlLCBkLT5jZW50ZXJPZlZpc2libGVDb250ZW50c1JlY3QoKSk7CiB9CiAKK2NsYXNzIERlZmVy
cmVkVGFza1NldEZvY3VzZWQ6IHB1YmxpYyBEZWZlcnJlZFRhc2s8JldlYlBhZ2VQcml2YXRlOjpt
X3dvdWxkU2V0Rm9jdXNlZD4geworcHVibGljOgorICAgIGV4cGxpY2l0IERlZmVycmVkVGFza1Nl
dEZvY3VzZWQoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlLCBib29sIGZvY3VzZWQpCisg
ICAgICAgIDogRGVmZXJyZWRUYXNrVHlwZSh3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAgICAg
IHdlYlBhZ2VQcml2YXRlLT5tX2NhY2hlZEZvY3VzZWQgPSBmb2N1c2VkOworICAgIH0KK3ByaXZh
dGU6CisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1JbnRlcm5hbChXZWJQYWdlUHJpdmF0ZSogd2Vi
UGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5z
ZXRGb2N1c2VkKHdlYlBhZ2VQcml2YXRlLT5tX2NhY2hlZEZvY3VzZWQpOworICAgIH0KK307CisK
IHZvaWQgV2ViUGFnZTo6c2V0Rm9jdXNlZChib29sIGZvY3VzZWQpCiB7CisgICAgaWYgKGQtPm1f
cGFnZS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIGQtPm1fZGVmZXJyZWRUYXNrcy5hcHBl
bmQoYWRvcHRQdHIobmV3IERlZmVycmVkVGFza1NldEZvY3VzZWQoZCwgZm9jdXNlZCkpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBEZWZlcnJlZFRhc2tTZXRGb2N1c2VkOjpmaW5pc2hP
ckNhbmNlbChkKTsKICAgICBGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlciA9IGQtPm1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCk7CiAgICAgZm9jdXNDb250cm9sbGVyLT5zZXRBY3RpdmUo
Zm9jdXNlZCk7CiAgICAgaWYgKGZvY3VzZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmgKaW5kZXggMGFjNjQ1YS4uODJkNGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmgKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWxl
Y3Rpb25DYW5jZWxsZWQoKTsKICAgICBib29sIHNlbGVjdGlvbkNvbnRhaW5zKGNvbnN0IFBsYXRm
b3JtOjpJbnRQb2ludCYpOwogCi0gICAgdm9pZCBwb3B1cExpc3RDbG9zZWQoaW50IHNpemUsIGJv
b2wqIHNlbGVjdGVkcyk7CisgICAgdm9pZCBwb3B1cExpc3RDbG9zZWQoaW50IHNpemUsIGNvbnN0
IGJvb2wqIHNlbGVjdGVkcyk7CiAgICAgdm9pZCBwb3B1cExpc3RDbG9zZWQoaW50IGluZGV4KTsK
ICAgICB2b2lkIHNldERhdGVUaW1lSW5wdXQoY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRDb2xvcklucHV0KGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggODJlY2RiYy4uYjJmZWJjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0yNCw2ICsyNCw3IEBACiAj
aW5jbHVkZSAiR0xFUzJDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlci5oIgogI2Vu
ZGlmCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRCbGFja0JlcnJ5Lmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgpAQCAtNDAsNyArNDEsNiBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeTsKIGNsYXNzIEphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnk7Ci1jbGFzcyBLVVJMOwogY2xhc3MgTm9kZTsKIGNsYXNz
IFBhZ2U7CiBjbGFzcyBQbHVnaW5WaWV3OwpAQCAtNDE1LDYgKzQxNSw4IEBAIHB1YmxpYzoKICNl
bmRpZgogICAgIHZvaWQgbm90aWZ5QXBwQWN0aXZhdGlvblN0YXRlQ2hhbmdlKEFjdGl2YXRpb25T
dGF0ZVR5cGUpOwogCisgICAgdm9pZCBkZWZlcnJlZFRhc2tzVGltZXJGaXJlZChXZWJDb3JlOjpU
aW1lcjxXZWJQYWdlUHJpdmF0ZT4qKTsKKwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKICAgICBX
ZWJQYWdlQ2xpZW50KiBtX2NsaWVudDsKICAgICBXZWJDb3JlOjpQYWdlKiBtX3BhZ2U7CkBAIC01
MzYsNiArNTM4LDQ2IEBAIHB1YmxpYzoKICAgICBib29sIG1faGFzSW5SZWdpb25TY3JvbGxhYmxl
QXJlYXM7CiAgICAgYm9vbCBtX3VwZGF0ZURlbGVnYXRlZE92ZXJsYXlzRGlzcGF0Y2hlZDsKIAor
ICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZm9sbG93aW5nIG1lbWJl
cnMgaW4gV2ViUGFnZVByaXZhdGUncyBjb25zdHJ1Y3RvciwKKyAgICAvLyBiZWNhdXNlIHRoZXkg
YXJlIG9ubHkgdXNlZCBieSBXZWJQYWdlVGFza3MgYW5kIHRoZSB0YXNrcyB3aWxsIGluaXRpYWxp
emUgdGhlbSB3aGVuCisgICAgLy8gYmVpbmcgY29uc3RydWN0ZWQuCisgICAgYm9vbCBtX3dvdWxk
UG9wdXBMaXN0U2VsZWN0TXVsdGlwbGU7CisgICAgYm9vbCBtX3dvdWxkUG9wdXBMaXN0U2VsZWN0
U2luZ2xlOworICAgIGJvb2wgbV93b3VsZFNldERhdGVUaW1lSW5wdXQ7CisgICAgYm9vbCBtX3dv
dWxkU2V0Q29sb3JJbnB1dDsKKyAgICBib29sIG1fd291bGRDYW5jZWxTZWxlY3Rpb247CisgICAg
Ym9vbCBtX3dvdWxkU2V0Rm9jdXNlZDsKKyAgICBib29sIG1fd291bGRTZXRQYWdlVmlzaWJpbGl0
eVN0YXRlOworICAgIFZlY3Rvcjxib29sPiBtX2NhY2hlZFBvcHVwTGlzdFNlbGVjdGVkczsKKyAg
ICBpbnQgbV9jYWNoZWRQb3B1cExpc3RTZWxlY3RlZEluZGV4OworICAgIFdlYlN0cmluZyBtX2Nh
Y2hlZERhdGVUaW1lSW5wdXQ7CisgICAgV2ViU3RyaW5nIG1fY2FjaGVkQ29sb3JJbnB1dDsKKyAg
ICBXZWJDb3JlOjpLVVJMIG1fY2FjaGVkTWFudWFsU2NyaXB0OworICAgIGJvb2wgbV9jYWNoZWRG
b2N1c2VkOworCisgICAgY2xhc3MgRGVmZXJyZWRUYXNrQmFzZSB7CisgICAgcHVibGljOgorICAg
ICAgICB2b2lkIHBlcmZvcm0oV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoISh3ZWJQYWdlUHJpdmF0ZS0+Km1faXNBY3RpdmUpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHBlcmZvcm1JbnRlcm5hbCh3ZWJQYWdl
UHJpdmF0ZSk7CisgICAgICAgIH0KKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIERlZmVycmVkVGFz
a0Jhc2UoV2ViUGFnZVByaXZhdGUqIHdlYlBhZ2VQcml2YXRlLCBib29sIFdlYlBhZ2VQcml2YXRl
OjoqaXNBY3RpdmUpCisgICAgICAgICAgICA6IG1faXNBY3RpdmUoaXNBY3RpdmUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHdlYlBhZ2VQcml2YXRlLT4qbV9pc0FjdGl2ZSA9IHRydWU7CisgICAg
ICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2
YXRlKikgPSAwOworCisgICAgICAgIGJvb2wgV2ViUGFnZVByaXZhdGU6OiptX2lzQWN0aXZlOwor
ICAgIH07CisKKyAgICBWZWN0b3I8T3duUHRyPERlZmVycmVkVGFza0Jhc2U+ID4gbV9kZWZlcnJl
ZFRhc2tzOworICAgIFdlYkNvcmU6OlRpbWVyPFdlYlBhZ2VQcml2YXRlPiBtX2RlZmVycmVkVGFz
a3NUaW1lcjsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYlBhZ2VQcml2YXRlKCk7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZGY0OTFlMC4uN2M0NDZkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTItMDQtMTgg
IFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIFBvc3NpYmxl
IEpTIHJlLWVudHJhbmN5IGNhdXNlZCBieSBVSSBldmVudHMuCisgICAgICAgIFBSIDEzMzIxNS4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAxLiBibG9j
ayBVSSBldmVudHMgd2hlbiBydW5uaW5nIGluIG5lc3RlZCBldmVudCBsb29wCisgICAgICAgIDIu
IGRlZmVyIHNvbWUgdGFza3Mgd2Ugc3RpbGwgd2FudCB0byBwZXJmb3JtIHdoZW4gaXQgaXMgc2Fm
ZSB0byBkbywKKyAgICAgICAgICAgd2l0aCBjYWNoZWQgZGF0YS4KKyAgICAgICAgMy4gZGVmZXJy
ZWQgdGFzayBjYW4gYmUgY2FuY2VsbGVkIGJ5IGNsZWFyaW5nIHRoZSBmbGFnLiBkdXBsaWNhdGUg
dGFza3MKKyAgICAgICAgICAgaXMgbm90IGEgcHJvYmxlbSBiZWNhdXNlIHRoZXkgc2hhcmUgc2Ft
ZSBmbGFnIGFuZCBkYXRhLgorICAgICAgICA0LiBtb3ZlIGRlZmVycmVkIG1hbnVhbCBzY3JpcHQg
ZnJvbSBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkgdG8gV2ViUGFnZVByaXZhdGUKKyAgICAg
ICAgICAgYW5kIG1ha2UgaXQgYSBkZWZlcnJlZCB0YXNrCisKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJQYWdlUHJpdmF0ZTo6V2ViUGFnZVByaXZhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6bG9hZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlOjpzdG9wQ3VycmVudExvYWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6d2lsbERlZmVyTG9hZGluZyk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpkaWRSZXN1bWVMb2FkaW5nKToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmRlZmVycmVkVGFza3NUaW1l
ckZpcmVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6YXNzaWduRm9j
dXMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0UGFn
ZVZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6
OnNldElucHV0U2VsZWN0aW9uKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6cG9wdXBMaXN0Q2xvc2VkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6c2V0RGF0ZVRpbWVJbnB1dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2U6OnNldENvbG9ySW5wdXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6dG91
Y2hFdmVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoUG9p
bnRBc01vdXNlRXZlbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjp0
b3VjaEV2ZW50Q2FuY2VsKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6
dG91Y2hFdmVudENhbmNlbEFuZENsZWFyRm9jdXNlZE5vZGUpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlOjprZXlFdmVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2U6OmRlbGV0ZVRleHRSZWxhdGl2ZVRvQ3Vyc29yKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0Q29tcG9zaW5nVGV4dCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmNvbW1pdFRleHQpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3Rpb25DYW5jZWxsZWQpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpjdXRTZWxlY3RlZFRleHQpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZTo6Y2xlYXJDdXJyZW50SW5wdXRGaWVsZCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmN1dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2U6OnBhc3RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6
c2V0Q2FyZXRQb3NpdGlvbik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6
OnNlbGVjdEF0UG9pbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpz
ZXRGb2N1c2VkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgorICAgICAgICAqIEFwaS9XZWJQ
YWdlX3AuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgor
ICAgICAgICAoRGVmZXJyZWRUYXNrQmFzZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlOjpEZWZlcnJlZFRhc2tCYXNlOjpwZXJmb3JtKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OkRlZmVycmVkVGFza0Jhc2U6OkRlZmVy
cmVkVGFza0Jhc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6On5GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojp3aWxsRGVm
ZXJMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eTo6ZGlkUmVzdW1lTG9hZGluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpzZXRQb3B1cExpc3RJbmRleGVzKToK
KyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oOgorICAgICAgICAoSW5wdXRI
YW5kbGVyKToKKwogMjAxMi0wNC0yNCAgTmltYSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkBy
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBQZXJmb3JtIHNwZWxsY2hlY2sgYmVmb3Jl
IGhhbmRsaW5nIFRvdWNoUmVsZWFzZSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcAppbmRleCA3ZjQxNGM3Li40Njg4MTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTAxLDEzICsxMDEsMTAgQEAgRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkoKQog
ICAgICwgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbihmYWxzZSkKICAgICAsIG1fY2FuY2VsTG9h
ZE9uTmV4dERhdGEoZmFsc2UpCiB7Ci0gICAgbV9kZWZlcnJlZEpvYnNUaW1lciA9IG5ldyBUaW1l
cjxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk+KHRoaXMsICZGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmRlZmVycmVkSm9ic1RpbWVyRmlyZWQpOwogfQogCiBGcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnk6On5GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkoKQogewotICAgIGRlbGV0
ZSBtX2RlZmVycmVkSm9ic1RpbWVyOwotICAgIG1fZGVmZXJyZWRKb2JzVGltZXIgPSAwOwogfQog
CiBpbnQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpwbGF5ZXJJZCgpIGNvbnN0CkBAIC0x
MTE0LDggKzExMTEsNiBAQCBQb2xpY3lBY3Rpb24gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
OjpkZWNpZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQoY29uc3QgUmVzbwogCiB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6d2lsbERlZmVyTG9hZGluZygpCiB7Ci0gICAgbV9kZWZlcnJl
ZEpvYnNUaW1lci0+c3RvcCgpOwotCiAgICAgaWYgKCFpc01haW5GcmFtZSgpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTExMjQsMzYgKzExMTksMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OndpbGxEZWZlckxvYWRpbmcoKQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZGlkUmVzdW1lTG9hZGluZygpCiB7Ci0gICAgaWYgKCFtX2RlZmVycmVkTWFudWFs
U2NyaXB0LmlzTnVsbCgpKQotICAgICAgICBtX2RlZmVycmVkSm9ic1RpbWVyLT5zdGFydE9uZVNo
b3QoMCk7Ci0KICAgICBpZiAoIWlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fd2ViUGFnZVByaXZhdGUtPmRpZFJlc3VtZUxvYWRpbmcoKTsKIH0KIAotdm9pZCBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OnNldERlZmVycmVkTWFudWFsU2NyaXB0KGNvbnN0IEtVUkwm
IHNjcmlwdCkKLXsKLSAgICBBU1NFUlQoIW1fZGVmZXJyZWRKb2JzVGltZXItPmlzQWN0aXZlKCkp
OwotICAgIG1fZGVmZXJyZWRNYW51YWxTY3JpcHQgPSBzY3JpcHQ7Ci19Ci0KLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWZlcnJlZEpvYnNUaW1lckZpcmVkKFRpbWVyPEZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeT4qKQotewotICAgIEFTU0VSVCghbV9mcmFtZS0+cGFnZSgp
LT5kZWZlcnNMb2FkaW5nKCkpOwotCi0gICAgaWYgKCFtX2RlZmVycmVkTWFudWFsU2NyaXB0Lmlz
TnVsbCgpKSB7Ci0gICAgICAgIC8vIEV4ZWN1dGluZyB0aGUgc2NyaXB0IHdpbGwgc2V0IGRlZmVy
cmVkIGxvYWRpbmcsIHdoaWNoIGNvdWxkIHRyaWdnZXIgdGhpcyB0aW1lciBhZ2FpbiBpZiBhIHNj
cmlwdCBpcyBzZXQuIFNvIGNsZWFyIHRoZSBzY3JpcHQgZmlyc3QuCi0gICAgICAgIEtVUkwgc2Ny
aXB0ID0gbV9kZWZlcnJlZE1hbnVhbFNjcmlwdDsKLSAgICAgICAgbV9kZWZlcnJlZE1hbnVhbFNj
cmlwdCA9IEtVUkwoKTsKLQotICAgICAgICBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZUlmSmF2
YVNjcmlwdFVSTChzY3JpcHQpOwotICAgIH0KLQotICAgIEFTU0VSVCghbV9mcmFtZS0+cGFnZSgp
LT5kZWZlcnNMb2FkaW5nKCkpOwotfQotCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eTo6cmVhZHlUb1JlbmRlcihib29sIHBhZ2VJc1Zpc3VhbGx5Tm9uRW1wdHkpCiB7CiAgICAgLy8g
T25seSBzZW5kIHRoZSBub3RpZmljYXRpb24gb25jZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuaAppbmRleCAwODlkZGU1Li5mMmQ3YjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xNzAsMTAgKzE3MCw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVO
ZXR3b3JraW5nQ29udGV4dCgpOwogCi0gICAgIC8vIFNjaGVkdWxlIGEgc2NyaXB0IHRoYXQgd2Fz
IGxvYWRlZCBtYW51YWxseSBieSB0aGUgdXNlciAoZWcuIGEKLSAgICAgLy8gYm9va21hcmtsZXQp
IHdoaWxlIHBhZ2UgbG9hZGluZyB3YXMgZGVmZXJyZWQuCi0gICAgdm9pZCBzZXREZWZlcnJlZE1h
bnVhbFNjcmlwdChjb25zdCBLVVJMJik7Ci0KICAgICB2b2lkIHJlYWR5VG9SZW5kZXIoYm9vbCBw
YWdlSXNWaXN1YWxseU5vbkVtcHR5KTsKIAogICAgIHZvaWQgZG9QZW5kaW5nRnJhZ21lbnRTY3Jv
bGwoKTsKQEAgLTE5NSwxNCArMTkxLDEwIEBAIHByaXZhdGU6CiAgICAgUG9saWN5QWN0aW9uIGRl
Y2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QgJiwgYm9vbCBp
c0ZyYWdtZW50U2Nyb2xsKTsKICAgICB2b2lkIGRlbGF5UG9saWN5Q2hlY2tVbnRpbEZyYWdtZW50
RXhpc3RzKGNvbnN0IFN0cmluZyYgZnJhZ21lbnQsIEZyYW1lUG9saWN5RnVuY3Rpb24pOwogCi0g
ICAgdm9pZCBkZWZlcnJlZEpvYnNUaW1lckZpcmVkKFRpbWVyPEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeT4qKTsKLQogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIFJlc291cmNlRXJyb3IgbV9s
b2FkRXJyb3I7CiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogbV93ZWJQ
YWdlUHJpdmF0ZTsKIAotICAgIFRpbWVyPEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeT4qIG1f
ZGVmZXJyZWRKb2JzVGltZXI7Ci0gICAgS1VSTCBtX2RlZmVycmVkTWFudWFsU2NyaXB0OwogICAg
IEdlb2xvY2F0aW9uKiBtX2dlb2xvY2F0aW9uOwogICAgIGJvb2wgbV9zZW50UmVhZHlUb1JlbmRl
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
SW5wdXRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0lucHV0SGFuZGxlci5jcHAKaW5kZXggYWNiYTdmMC4uYzk4YjFlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3Bw
CkBAIC0xMTg5LDcgKzExODksNyBAQCB2b2lkIElucHV0SGFuZGxlcjo6c2V0UG9wdXBMaXN0SW5k
ZXgoaW50IGluZGV4KQogICAgIGNsZWFyQ3VycmVudEZvY3VzRWxlbWVudCgpOwogfQogCi12b2lk
IElucHV0SGFuZGxlcjo6c2V0UG9wdXBMaXN0SW5kZXhlcyhpbnQgc2l6ZSwgYm9vbCogc2VsZWN0
ZWRzKQordm9pZCBJbnB1dEhhbmRsZXI6OnNldFBvcHVwTGlzdEluZGV4ZXMoaW50IHNpemUsIGNv
bnN0IGJvb2wqIHNlbGVjdGVkcykKIHsKICAgICBpZiAoIWlzQWN0aXZlU2VsZWN0UG9wdXAoKSkK
ICAgICAgICAgcmV0dXJuIGNsZWFyQ3VycmVudEZvY3VzRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmggYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAppbmRl
eCA3OWFjNTY3Li5jNjMzNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBvcGVuTGluZUlucHV0UG9wdXAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCop
OwogICAgIGJvb2wgb3BlblNlbGVjdFBvcHVwKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Kik7
CiAgICAgdm9pZCBzZXRQb3B1cExpc3RJbmRleChpbnQpOwotICAgIHZvaWQgc2V0UG9wdXBMaXN0
SW5kZXhlcyhpbnQgc2l6ZSwgYm9vbCogc2VsZWN0ZWRzKTsKKyAgICB2b2lkIHNldFBvcHVwTGlz
dEluZGV4ZXMoaW50IHNpemUsIGNvbnN0IGJvb2wqIHNlbGVjdGVkcyk7CiAKICAgICBib29sIHBy
b2Nlc3NpbmdDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NpbmdDaGFuZ2U7IH0KICAg
ICB2b2lkIHNldFByb2Nlc3NpbmdDaGFuZ2UoYm9vbCBwcm9jZXNzaW5nQ2hhbmdlKSB7IG1fcHJv
Y2Vzc2luZ0NoYW5nZSA9IHByb2Nlc3NpbmdDaGFuZ2U7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138811</attachid>
            <date>2012-04-25 08:04:20 -0700</date>
            <delta_ts>2012-04-25 14:22:12 -0700</delta_ts>
            <desc>fix style</desc>
            <filename>84862.patch</filename>
            <type>text/plain</type>
            <size>29137</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDlkZTE4YzkuLmRk
ZThhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMjg5
LDYgKzI4OSwyMSBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0VXNlclZpZXdwb3J0QXJndW1lbnRzKCkK
ICAgICBkLT5tX3VzZXJWaWV3cG9ydEFyZ3VtZW50cyA9IFZpZXdwb3J0QXJndW1lbnRzKCk7CiB9
CiAKK3RlbXBsYXRlIDxib29sIFdlYlBhZ2VQcml2YXRlOjoqIGlzQWN0aXZlPgorY2xhc3MgRGVm
ZXJyZWRUYXNrOiBwdWJsaWMgV2ViUGFnZVByaXZhdGU6OkRlZmVycmVkVGFza0Jhc2UgeworcHVi
bGljOgorICAgIHN0YXRpYyB2b2lkIGZpbmlzaE9yQ2FuY2VsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQ
YWdlUHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT4qaXNBY3RpdmUgPSBm
YWxzZTsKKyAgICB9Citwcm90ZWN0ZWQ6CisgICAgRGVmZXJyZWRUYXNrKFdlYlBhZ2VQcml2YXRl
KiB3ZWJQYWdlUHJpdmF0ZSkKKyAgICAgICAgOiBEZWZlcnJlZFRhc2tCYXNlKHdlYlBhZ2VQcml2
YXRlLCBpc0FjdGl2ZSkKKyAgICB7CisgICAgfQorICAgIHR5cGVkZWYgRGVmZXJyZWRUYXNrPGlz
QWN0aXZlPiBEZWZlcnJlZFRhc2tUeXBlOworfTsKKwogV2ViUGFnZVByaXZhdGU6OldlYlBhZ2VQ
cml2YXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYlBhZ2VDbGllbnQqIGNsaWVudCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogICAgICwgbV9jbGllbnQoY2xp
ZW50KQpAQCAtMzU2LDYgKzM3MSw3IEBAIFdlYlBhZ2VQcml2YXRlOjpXZWJQYWdlUHJpdmF0ZShX
ZWJQYWdlKiB3ZWJQYWdlLCBXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IEluCiAgICAgLCBt
X2Z1bGxzY3JlZW5WaWRlb05vZGUoMCkKICAgICAsIG1faGFzSW5SZWdpb25TY3JvbGxhYmxlQXJl
YXMoZmFsc2UpCiAgICAgLCBtX3VwZGF0ZURlbGVnYXRlZE92ZXJsYXlzRGlzcGF0Y2hlZChmYWxz
ZSkKKyAgICAsIG1fZGVmZXJyZWRUYXNrc1RpbWVyKHRoaXMsICZXZWJQYWdlUHJpdmF0ZTo6ZGVm
ZXJyZWRUYXNrc1RpbWVyRmlyZWQpCiB7CiAgICAgc3RhdGljIGJvb2wgaXNJbml0aWFsaXplZCA9
IGZhbHNlOwogICAgIGlmICghaXNJbml0aWFsaXplZCkgewpAQCAtNTI3LDkgKzU0MywyNCBAQCB2
b2lkIFdlYlBhZ2VQcml2YXRlOjppbml0KGNvbnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFtZSkK
ICNlbmRpZgogfQogCitjbGFzcyBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0OiBwdWJsaWMg
RGVmZXJyZWRUYXNrPCZXZWJQYWdlUHJpdmF0ZTo6bV93b3VsZFNldEZvY3VzZWQ+IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0KFdlYlBhZ2VQcml2
YXRlKiB3ZWJQYWdlUHJpdmF0ZSwgY29uc3QgS1VSTCYgdXJsKQorICAgICAgICA6IERlZmVycmVk
VGFza1R5cGUod2ViUGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+
bV9jYWNoZWRNYW51YWxTY3JpcHQgPSB1cmw7CisgICAgfQorcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0ZSkKKyAg
ICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX21haW5GcmFtZS0+c2NyaXB0KCktPmV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwod2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkTWFudWFsU2NyaXB0LCBE
b05vdFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgfQorfTsKKwogdm9pZCBX
ZWJQYWdlUHJpdmF0ZTo6bG9hZChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIG5ldHdvcmtU
b2tlbiwgY29uc3QgY2hhciogbWV0aG9kLCBQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkNhY2hl
UG9saWN5IGNhY2hlUG9saWN5LCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwg
Y29uc3QgY2hhciogY29uc3QqIGhlYWRlcnMsIHNpemVfdCBoZWFkZXJzTGVuZ3RoLCBib29sIGlz
SW5pdGlhbCwgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSwgYm9vbCBmb3JjZURvd25sb2FkLCBj
b25zdCBjaGFyKiBvdmVycmlkZUNvbnRlbnRUeXBlKQogewogICAgIHN0b3BDdXJyZW50TG9hZCgp
OworICAgIERlZmVycmVkVGFza0xvYWRNYW51YWxTY3JpcHQ6OmZpbmlzaE9yQ2FuY2VsKHRoaXMp
OwogCiAgICAgU3RyaW5nIHVybFN0cmluZyh1cmwpOwogICAgIGlmICh1cmxTdHJpbmcuc3RhcnRz
V2l0aCgidnM6IiwgZmFsc2UpKSB7CkBAIC01NDEsMTAgKzU3Miw5IEBAIHZvaWQgV2ViUGFnZVBy
aXZhdGU6OmxvYWQoY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiBuZXR3b3JrVG9rZW4sIGNv
bnN0IGNoYXIqCiAgICAgS1VSTCBrdXJsID0gcGFyc2VVcmwodXJsU3RyaW5nKTsKICAgICBpZiAo
cHJvdG9jb2xJcyhrdXJsLCAiamF2YXNjcmlwdCIpKSB7CiAgICAgICAgIC8vIE5ldmVyIHJ1biBq
YXZhc2NyaXB0IHdoaWxlIGxvYWRpbmcgaXMgZGVmZXJyZWQuCi0gICAgICAgIGlmIChtX3BhZ2Ut
PmRlZmVyc0xvYWRpbmcoKSkgewotICAgICAgICAgICAgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5KiBmcmFtZUxvYWRlckNsaWVudCA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeSo+KG1fbWFpbkZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpOwotICAgICAgICAgICAg
ZnJhbWVMb2FkZXJDbGllbnQtPnNldERlZmVycmVkTWFudWFsU2NyaXB0KGt1cmwpOwotICAgICAg
ICB9IGVsc2UKKyAgICAgICAgaWYgKG1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICAg
ICAgbV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNrTG9hZE1h
bnVhbFNjcmlwdCh0aGlzLCBrdXJsKSkpOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX21h
aW5GcmFtZS0+c2NyaXB0KCktPmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoa3VybCwgRG9Ob3RSZXBs
YWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NzUxLDggKzc4MSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OnN0b3BDdXJyZW50TG9hZCgpCiAg
ICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwogCiAgICAgLy8gQ2Fu
Y2VsIGFueSBkZWZlcnJlZCBzY3JpcHQgdGhhdCBoYXNuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0Lgot
ICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSogZnJhbWVMb2FkZXJDbGllbnQgPSBzdGF0
aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihtX21haW5GcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpKTsKLSAgICBmcmFtZUxvYWRlckNsaWVudC0+c2V0RGVmZXJyZWRNYW51YWxT
Y3JpcHQoS1VSTCgpKTsKKyAgICBEZWZlcnJlZFRhc2tMb2FkTWFudWFsU2NyaXB0OjpmaW5pc2hP
ckNhbmNlbCh0aGlzKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZygpCkBAIC0xMjIw
LDE0ICsxMjQ5LDMyIEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OnNob3VsZFNlbmRSZXNpemVFdmVu
dCgpCiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OndpbGxEZWZlckxvYWRpbmcoKQogeworICAgIG1f
ZGVmZXJyZWRUYXNrc1RpbWVyLnN0b3AoKTsKICAgICBtX2NsaWVudC0+d2lsbERlZmVyTG9hZGlu
ZygpOwogfQogCiB2b2lkIFdlYlBhZ2VQcml2YXRlOjpkaWRSZXN1bWVMb2FkaW5nKCkKIHsKKyAg
ICBpZiAoIW1fZGVmZXJyZWRUYXNrcy5pc0VtcHR5KCkpCisgICAgICAgIG1fZGVmZXJyZWRUYXNr
c1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICBtX2NsaWVudC0+ZGlkUmVzdW1lTG9hZGluZygp
OwogfQogCit2b2lkIFdlYlBhZ2VQcml2YXRlOjpkZWZlcnJlZFRhc2tzVGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4qKQoreworICAgIEFTU0VSVCghbV9kZWZlcnJlZFRh
c2tzLmlzRW1wdHkoKSk7CisgICAgaWYgKCFtX2RlZmVycmVkVGFza3MuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBPd25QdHI8RGVmZXJyZWRUYXNrQmFzZT4gdGFzayA9IG1fZGVm
ZXJyZWRUYXNrc1swXS5yZWxlYXNlKCk7CisgICAgbV9kZWZlcnJlZFRhc2tzLnJlbW92ZSgwKTsK
KworICAgIGlmICghbV9kZWZlcnJlZFRhc2tzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9kZWZlcnJl
ZFRhc2tzVGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgdGFzay0+cGVyZm9ybSh0aGlzKTsK
K30KKwogYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2Nyb2xsQnkoaW50IGRlbHRhWCwgaW50IGRlbHRh
WSwgYm9vbCBzY3JvbGxNYWluRnJhbWUpCiB7CiAgICAgSW50U2l6ZSBkZWx0YShkZWx0YVgsIGRl
bHRhWSk7CkBAIC0yNDQ5LDYgKzI0OTYsOCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjphc3NpZ25G
b2N1cyhQbGF0Zm9ybTo6Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiB2b2lkIFdlYlBhZ2U6
OmFzc2lnbkZvY3VzKFBsYXRmb3JtOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAg
aWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgIHJldHVybjsKICAgICBkLT5h
c3NpZ25Gb2N1cyhkaXJlY3Rpb24pOwogfQogCkBAIC0yOTgyLDEyICszMDMxLDMxIEBAIGJvb2wg
V2ViUGFnZTo6aXNWaXNpYmxlKCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorY2xhc3MgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2liaWxpdHlTdGF0ZTogcHVibGlj
IERlZmVycmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1fd291bGRTZXRQYWdlVmlzaWJpbGl0eVN0
YXRlPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2liaWxp
dHlTdGF0ZShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgICAgIDogRGVmZXJy
ZWRUYXNrVHlwZSh3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAgfQorcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0
ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5zZXRQYWdlVmlzaWJpbGl0eVN0YXRl
KCk7CisgICAgfQorfTsKKwogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0UGFnZVZpc2liaWxpdHlT
dGF0ZSgpCiB7Ci0gICAgc3RhdGljIGJvb2wgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlID0gdHJ1
ZTsKKyAgICBpZiAobV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIG1fZGVmZXJyZWRU
YXNrcy5hcHBlbmQoYWRvcHRQdHIobmV3IERlZmVycmVkVGFza1NldFBhZ2VWaXNpYmlsaXR5U3Rh
dGUodGhpcykpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgRGVmZXJyZWRUYXNrU2V0UGFnZVZpc2li
aWxpdHlTdGF0ZTo6ZmluaXNoT3JDYW5jZWwodGhpcyk7CisKKyAgICAgICAgc3RhdGljIGJvb2wg
c19pbml0aWFsVmlzaWJpbGl0eVN0YXRlID0gdHJ1ZTsKIAotICAgIG1fcGFnZS0+c2V0VmlzaWJp
bGl0eVN0YXRlKG1fdmlzaWJsZSAmJiBtX2FjdGl2YXRpb25TdGF0ZSA9PSBBY3RpdmF0aW9uQWN0
aXZlID8gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUgOiBQYWdlVmlzaWJpbGl0eVN0YXRlSGlk
ZGVuLCBzX2luaXRpYWxWaXNpYmlsaXR5U3RhdGUpOwotICAgIHNfaW5pdGlhbFZpc2liaWxpdHlT
dGF0ZSA9IGZhbHNlOworICAgICAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZShtX3Zpc2li
bGUgJiYgbV9hY3RpdmF0aW9uU3RhdGUgPT0gQWN0aXZhdGlvbkFjdGl2ZSA/IFBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlIDogUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgc19pbml0aWFsVmlz
aWJpbGl0eVN0YXRlKTsKKyAgICAgICAgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlID0gZmFsc2U7
CisgICAgfQogfQogI2VuZGlmCiAKQEAgLTMwOTMsNiArMzE2MSw4IEBAIGJvb2wgV2ViUGFnZTo6
c2V0QmF0Y2hFZGl0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogCiBib29sIFdlYlBhZ2U6OnNldElu
cHV0U2VsZWN0aW9uKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCiB7CisgICAgaWYgKGQt
Pm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIGQtPm1faW5wdXRIYW5kbGVyLT5zZXRTZWxlY3Rpb24oc3RhcnQsIGVuZCk7CiB9CiAKQEAg
LTMxMDEsMjMgKzMxNzEsMTAxIEBAIGludCBXZWJQYWdlOjppbnB1dENhcmV0UG9zaXRpb24oKSBj
b25zdAogICAgIHJldHVybiBkLT5tX2lucHV0SGFuZGxlci0+Y2FyZXRQb3NpdGlvbigpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OnBvcHVwTGlzdENsb3NlZChpbnQgc2l6ZSwgYm9vbCogc2VsZWN0ZWRz
KQorY2xhc3MgRGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0TXVsdGlwbGU6IHB1YmxpYyBEZWZl
cnJlZFRhc2s8JldlYlBhZ2VQcml2YXRlOjptX3dvdWxkUG9wdXBMaXN0U2VsZWN0TXVsdGlwbGU+
IHsKK3B1YmxpYzoKKyAgICBEZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RNdWx0aXBsZShXZWJQ
YWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUsIGludCBzaXplLCBjb25zdCBib29sKiBzZWxlY3Rl
ZHMpIAorICAgICAgICA6IERlZmVycmVkVGFza1R5cGUod2ViUGFnZVByaXZhdGUpCisgICAgewor
ICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV9jYWNoZWRQb3B1cExpc3RTZWxlY3RlZHMuYXBwZW5k
KHNlbGVjdGVkcywgc2l6ZSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAg
ICAgIHdlYlBhZ2VQcml2YXRlLT5tX3dlYlBhZ2UtPnBvcHVwTGlzdENsb3NlZCh3ZWJQYWdlUHJp
dmF0ZS0+bV9jYWNoZWRQb3B1cExpc3RTZWxlY3RlZHMuc2l6ZSgpLCB3ZWJQYWdlUHJpdmF0ZS0+
bV9jYWNoZWRQb3B1cExpc3RTZWxlY3RlZHMuZGF0YSgpKTsKKyAgICB9Cit9OworCitjbGFzcyBE
ZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RTaW5nbGU6IHB1YmxpYyBEZWZlcnJlZFRhc2s8Jldl
YlBhZ2VQcml2YXRlOjptX3dvdWxkUG9wdXBMaXN0U2VsZWN0U2luZ2xlPiB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0U2luZ2xlKFdlYlBhZ2VQcml2
YXRlKiB3ZWJQYWdlUHJpdmF0ZSwgaW50IGluZGV4KQorICAgICAgICA6IERlZmVycmVkVGFza1R5
cGUod2ViUGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV9jYWNo
ZWRQb3B1cExpc3RTZWxlY3RlZEluZGV4ID0gaW5kZXg7CisgICAgfQorcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJpdmF0
ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX3dlYlBhZ2UtPnBvcHVwTGlzdENs
b3NlZCh3ZWJQYWdlUHJpdmF0ZS0+bV9jYWNoZWRQb3B1cExpc3RTZWxlY3RlZEluZGV4KTsKKyAg
ICB9Cit9OworCit2b2lkIFdlYlBhZ2U6OnBvcHVwTGlzdENsb3NlZChpbnQgc2l6ZSwgY29uc3Qg
Ym9vbCogc2VsZWN0ZWRzKQogeworICAgIERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdFNpbmds
ZTo6ZmluaXNoT3JDYW5jZWwoZCk7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygp
KSB7CisgICAgICAgIGQtPm1fZGVmZXJyZWRUYXNrcy5hcHBlbmQoYWRvcHRQdHIobmV3IERlZmVy
cmVkVGFza1BvcHVwTGlzdFNlbGVjdE11bHRpcGxlKGQsIHNpemUsIHNlbGVjdGVkcykpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBEZWZlcnJlZFRhc2tQb3B1cExpc3RTZWxlY3RNdWx0
aXBsZTo6ZmluaXNoT3JDYW5jZWwoZCk7CiAgICAgZC0+bV9pbnB1dEhhbmRsZXItPnNldFBvcHVw
TGlzdEluZGV4ZXMoc2l6ZSwgc2VsZWN0ZWRzKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpwb3B1cExp
c3RDbG9zZWQoaW50IGluZGV4KQogeworICAgIERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdE11
bHRpcGxlOjpmaW5pc2hPckNhbmNlbChkKTsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2Fk
aW5nKCkpIHsKKyAgICAgICAgZC0+bV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcg
RGVmZXJyZWRUYXNrUG9wdXBMaXN0U2VsZWN0U2luZ2xlKGQsIGluZGV4KSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIERlZmVycmVkVGFza1BvcHVwTGlzdFNlbGVjdFNpbmdsZTo6Zmlu
aXNoT3JDYW5jZWwoZCk7CiAgICAgZC0+bV9pbnB1dEhhbmRsZXItPnNldFBvcHVwTGlzdEluZGV4
KGluZGV4KTsKIH0KIAorY2xhc3MgRGVmZXJyZWRUYXNrU2V0RGF0ZVRpbWVJbnB1dDogcHVibGlj
IERlZmVycmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1fd291bGRTZXREYXRlVGltZUlucHV0PiB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrU2V0RGF0ZVRpbWVJbnB1dChXZWJQ
YWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUsIFdlYlN0cmluZyB2YWx1ZSkKKyAgICAgICAgOiBE
ZWZlcnJlZFRhc2tUeXBlKHdlYlBhZ2VQcml2YXRlKQorICAgIHsKKyAgICAgICAgd2ViUGFnZVBy
aXZhdGUtPm1fY2FjaGVkRGF0ZVRpbWVJbnB1dCA9IHZhbHVlOworICAgIH0KK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIHBlcmZvcm1JbnRlcm5hbChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVBy
aXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5zZXREYXRl
VGltZUlucHV0KHdlYlBhZ2VQcml2YXRlLT5tX2NhY2hlZERhdGVUaW1lSW5wdXQpOworICAgIH0K
K307CisKIHZvaWQgV2ViUGFnZTo6c2V0RGF0ZVRpbWVJbnB1dChjb25zdCBXZWJTdHJpbmcmIHZh
bHVlKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkgeworICAgICAgICBk
LT5tX2RlZmVycmVkVGFza3MuYXBwZW5kKGFkb3B0UHRyKG5ldyBEZWZlcnJlZFRhc2tTZXREYXRl
VGltZUlucHV0KGQsIHZhbHVlKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIERlZmVy
cmVkVGFza1NldERhdGVUaW1lSW5wdXQ6OmZpbmlzaE9yQ2FuY2VsKGQpOwogICAgIGQtPm1faW5w
dXRIYW5kbGVyLT5zZXRJbnB1dFZhbHVlKFN0cmluZyh2YWx1ZS5pbXBsKCkpKTsKIH0KIAorY2xh
c3MgRGVmZXJyZWRUYXNrU2V0Q29sb3JJbnB1dDogcHVibGljIERlZmVycmVkVGFzazwmV2ViUGFn
ZVByaXZhdGU6Om1fd291bGRTZXRDb2xvcklucHV0PiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
RGVmZXJyZWRUYXNrU2V0Q29sb3JJbnB1dChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUs
IFdlYlN0cmluZyB2YWx1ZSkKKyAgICAgICAgOiBEZWZlcnJlZFRhc2tUeXBlKHdlYlBhZ2VQcml2
YXRlKQorICAgIHsKKyAgICAgICAgd2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkQ29sb3JJbnB1dCA9
IHZhbHVlOworICAgIH0KK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1JbnRlcm5h
bChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgeworICAgICAgICB3ZWJQYWdl
UHJpdmF0ZS0+bV93ZWJQYWdlLT5zZXRDb2xvcklucHV0KHdlYlBhZ2VQcml2YXRlLT5tX2NhY2hl
ZENvbG9ySW5wdXQpOworICAgIH0KK307CisKIHZvaWQgV2ViUGFnZTo6c2V0Q29sb3JJbnB1dChj
b25zdCBXZWJTdHJpbmcmIHZhbHVlKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRp
bmcoKSkgeworICAgICAgICBkLT5tX2RlZmVycmVkVGFza3MuYXBwZW5kKGFkb3B0UHRyKG5ldyBE
ZWZlcnJlZFRhc2tTZXRDb2xvcklucHV0KGQsIHZhbHVlKSkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIERlZmVycmVkVGFza1NldENvbG9ySW5wdXQ6OmZpbmlzaE9yQ2FuY2VsKGQpOwog
ICAgIGQtPm1faW5wdXRIYW5kbGVyLT5zZXRJbnB1dFZhbHVlKFN0cmluZyh2YWx1ZS5pbXBsKCkp
KTsKIH0KIApAQCAtMzU1Myw2ICszNzAxLDkgQEAgYm9vbCBXZWJQYWdlOjptb3VzZUV2ZW50KGNv
bnN0IFBsYXRmb3JtOjpNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sKiB3aGVlbERlbHQKICAg
ICBpZiAoIWQtPm1fbWFpbkZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IGQtPm1fZnVsbFNjcmVlblBsdWdpblZp
ZXcuZ2V0KCk7CiAgICAgaWYgKHBsdWdpblZpZXcpCiAgICAgICAgIHJldHVybiBkLT5kaXNwYXRj
aE1vdXNlRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4ocGx1Z2luVmlldywgbW91c2VFdmVudCk7CkBA
IC0zNzI5LDEzICszODgwLDE2IEBAIGJvb2wgV2ViUGFnZTo6dG91Y2hFdmVudChjb25zdCBQbGF0
Zm9ybTo6VG91Y2hFdmVudCYgZXZlbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisgICAgaWYgKCFkLT5tX21haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gZC0+bV9mdWxsU2NyZWVuUGx1Z2luVmll
dy5nZXQoKTsKICAgICBpZiAocGx1Z2luVmlldykKICAgICAgICAgcmV0dXJuIGQtPmRpc3BhdGNo
VG91Y2hFdmVudFRvRnVsbFNjcmVlblBsdWdpbihwbHVnaW5WaWV3LCBldmVudCk7CiAKLSAgICBp
ZiAoIWQtPm1fbWFpbkZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBQbGF0Zm9y
bTo6VG91Y2hFdmVudCB0RXZlbnQgPSBldmVudDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZXZlbnQubV9wb2ludHMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgdEV2ZW50Lm1fcG9pbnRz
W2ldLm1fcG9zID0gZC0+bWFwRnJvbVRyYW5zZm9ybWVkKHRFdmVudC5tX3BvaW50c1tpXS5tX3Bv
cyk7CkBAIC0zODUzLDYgKzQwMDcsOSBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpkaXNwYXRjaFRv
dWNoRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4oUGx1Z2luVmlldyogcGx1Z2luLCBjbwogCiBib29s
IFdlYlBhZ2U6OnRvdWNoUG9pbnRBc01vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9p
bnQmIHBvaW50KQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IGQtPm1fZnVs
bFNjcmVlblBsdWdpblZpZXcuZ2V0KCk7CiAgICAgaWYgKHBsdWdpblZpZXcpCiAgICAgICAgIHJl
dHVybiBkLT5kaXNwYXRjaFRvdWNoUG9pbnRBc01vdXNlRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4o
cGx1Z2luVmlldywgcG9pbnQpOwpAQCAtMzg5OCwxMSArNDA1NSwxNSBAQCBib29sIFdlYlBhZ2VQ
cml2YXRlOjpkaXNwYXRjaFRvdWNoUG9pbnRBc01vdXNlRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4o
UGx1Z2luVmlldwogdm9pZCBXZWJQYWdlOjp0b3VjaEV2ZW50Q2FuY2VsKCkKIHsKICAgICBkLT5t
X3BsdWdpbk1heU9wZW5OZXdUYWIgPSBmYWxzZTsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNM
b2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKICAgICBkLT5tX3RvdWNoRXZlbnRIYW5kbGVyLT50
b3VjaEV2ZW50Q2FuY2VsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudENhbmNlbEFu
ZENsZWFyRm9jdXNlZE5vZGUoKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmco
KSkKKyAgICAgICAgcmV0dXJuOwogICAgIGQtPm1fdG91Y2hFdmVudEhhbmRsZXItPnRvdWNoRXZl
bnRDYW5jZWxBbmRDbGVhckZvY3VzZWROb2RlKCk7CiB9CiAKQEAgLTQxMjEsNiArNDI4Miw5IEBA
IGJvb2wgV2ViUGFnZTo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm06OktleWJvYXJkRXZlbnQmIGtl
eWJvYXJkRXZlbnQpCiAgICAgaWYgKCFkLT5tX21haW5GcmFtZS0+dmlldygpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIEFTU0VSVChkLT5tX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpKTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGQtPm1faW5wdXRIYW5kbGVyLT5oYW5kbGVLZXli
b2FyZElucHV0KGtleWJvYXJkRXZlbnQpOwpAQCAtNDEzNiw2ICs0MzAwLDkgQEAgYm9vbCBXZWJQ
YWdlOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybTo6S2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVu
dCkKIAogYm9vbCBXZWJQYWdlOjpkZWxldGVUZXh0UmVsYXRpdmVUb0N1cnNvcih1bnNpZ25lZCBp
bnQgbGVmdE9mZnNldCwgdW5zaWduZWQgaW50IHJpZ2h0T2Zmc2V0KQogeworICAgIGlmIChkLT5t
X3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0
dXJuIGQtPm1faW5wdXRIYW5kbGVyLT5kZWxldGVUZXh0UmVsYXRpdmVUb0N1cnNvcihsZWZ0T2Zm
c2V0LCByaWdodE9mZnNldCk7CiB9CiAKQEAgLTQxNzEsMTEgKzQzMzgsMTUgQEAgaW50MzJfdCBX
ZWJQYWdlOjpmaW5pc2hDb21wb3NpdGlvbigpCiAKIGludDMyX3QgV2ViUGFnZTo6c2V0Q29tcG9z
aW5nVGV4dChzcGFubmFibGVfc3RyaW5nX3QqIHNwYW5uYWJsZVN0cmluZywgaW50MzJfdCByZWxh
dGl2ZUN1cnNvclBvc2l0aW9uKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmco
KSkKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIHJldHVybiBkLT5tX2lucHV0SGFuZGxlci0+c2V0
Q29tcG9zaW5nVGV4dChzcGFubmFibGVTdHJpbmcsIHJlbGF0aXZlQ3Vyc29yUG9zaXRpb24pOwog
fQogCiBpbnQzMl90IFdlYlBhZ2U6OmNvbW1pdFRleHQoc3Bhbm5hYmxlX3N0cmluZ190KiBzcGFu
bmFibGVTdHJpbmcsIGludDMyX3QgcmVsYXRpdmVDdXJzb3JQb3NpdGlvbikKIHsKKyAgICBpZiAo
ZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybiAtMTsKICAgICByZXR1
cm4gZC0+bV9pbnB1dEhhbmRsZXItPmNvbW1pdFRleHQoc3Bhbm5hYmxlU3RyaW5nLCByZWxhdGl2
ZUN1cnNvclBvc2l0aW9uKTsKIH0KIApAQCAtNDE4NCw4ICs0MzU1LDI2IEBAIHZvaWQgV2ViUGFn
ZTo6c2V0U3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHN0YXRpY19jYXN0
PEVkaXRvckNsaWVudEJsYWNrQmVycnkqPihkLT5tX3BhZ2UtPmVkaXRvckNsaWVudCgpKS0+ZW5h
YmxlU3BlbGxDaGVja2luZyhlbmFibGVkKTsKIH0KIAorY2xhc3MgRGVmZXJyZWRUYXNrU2VsZWN0
aW9uQ2FuY2VsbGVkOiBwdWJsaWMgRGVmZXJyZWRUYXNrPCZXZWJQYWdlUHJpdmF0ZTo6bV93b3Vs
ZENhbmNlbFNlbGVjdGlvbj4geworcHVibGljOgorICAgIGV4cGxpY2l0IERlZmVycmVkVGFza1Nl
bGVjdGlvbkNhbmNlbGxlZChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgICAg
IDogRGVmZXJyZWRUYXNrVHlwZSh3ZWJQYWdlUHJpdmF0ZSkKKyAgICB7CisgICAgfQorcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQ
YWdlUHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX3dlYlBhZ2UtPnNl
bGVjdGlvbkNhbmNlbGxlZCgpOworICAgIH0KK307CisKIHZvaWQgV2ViUGFnZTo6c2VsZWN0aW9u
Q2FuY2VsbGVkKCkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAg
ICAgICAgZC0+bV9kZWZlcnJlZFRhc2tzLmFwcGVuZChhZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNr
U2VsZWN0aW9uQ2FuY2VsbGVkKGQpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgRGVm
ZXJyZWRUYXNrU2VsZWN0aW9uQ2FuY2VsbGVkOjpmaW5pc2hPckNhbmNlbChkKTsKICAgICBkLT5t
X3NlbGVjdGlvbkhhbmRsZXItPmNhbmNlbFNlbGVjdGlvbigpOwogfQogCkBAIC00MjA5LDIzICs0
Mzk4LDI5IEBAIFdlYlN0cmluZyBXZWJQYWdlOjpzZWxlY3RlZFRleHQoKSBjb25zdAogV2ViU3Ry
aW5nIFdlYlBhZ2U6OmN1dFNlbGVjdGVkVGV4dCgpCiB7CiAgICAgV2ViU3RyaW5nIHNlbGVjdGVk
VGV4dCA9IGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2VsZWN0ZWRUZXh0KCk7Ci0gICAgaWYgKCFz
ZWxlY3RlZFRleHQuaXNFbXB0eSgpKQorICAgIGlmICghZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5n
KCkgJiYgIXNlbGVjdGVkVGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIGQtPm1faW5wdXRIYW5kbGVy
LT5kZWxldGVTZWxlY3Rpb24oKTsKICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0OwogfQogCiB2b2lk
IFdlYlBhZ2U6Omluc2VydFRleHQoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCiB7CisgICAgaWYg
KGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CiAgICAgZC0+bV9p
bnB1dEhhbmRsZXItPmluc2VydFRleHQoc3RyaW5nKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpjbGVh
ckN1cnJlbnRJbnB1dEZpZWxkKCkKIHsKKyAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5n
KCkpCisgICAgICAgIHJldHVybjsKICAgICBkLT5tX2lucHV0SGFuZGxlci0+Y2xlYXJGaWVsZCgp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmN1dCgpCiB7CisgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJz
TG9hZGluZygpKQorICAgICAgICByZXR1cm47CiAgICAgZC0+bV9pbnB1dEhhbmRsZXItPmN1dCgp
OwogfQogCkBAIC00MjM2LDExICs0NDMxLDE1IEBAIHZvaWQgV2ViUGFnZTo6Y29weSgpCiAKIHZv
aWQgV2ViUGFnZTo6cGFzdGUoKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmco
KSkKKyAgICAgICAgcmV0dXJuOwogICAgIGQtPm1faW5wdXRIYW5kbGVyLT5wYXN0ZSgpOwogfQog
CiB2b2lkIFdlYlBhZ2U6OnNldFNlbGVjdGlvbihjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIHN0
YXJ0UG9pbnQsIGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYgZW5kUG9pbnQpCiB7CisgICAgaWYg
KGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CiAgICAgLy8gVHJh
bnNmb3JtIHRoaXMgZXZlbnRzIGNvb3JkaW5hdGVzIHRvIHdlYmtpdCBjb250ZW50IGNvb3JkaW5h
dGVzLgogICAgIC8vIEZJWE1FOiBEb24ndCB0cmFuc2Zvcm0gdGhlIHNlbnRpbmVsLCBiZWNhdXNl
IGl0IG1heSBiZSB0cmFuc2Zvcm1lZCB0byBhIGZsb2F0aW5nIG51bWJlcgogICAgIC8vIHdoaWNo
IGNvdWxkIGJlIHJvdW5kZWQgdG8gMCBvciBvdGhlciBudW1iZXJzLiBUaGlzIHdvcmthcm91bmQg
c2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIKQEAgLTQyNTAsMTggKzQ0NDksMjIgQEAgdm9pZCBXZWJQ
YWdlOjpzZXRTZWxlY3Rpb24oY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBzdGFydFBvaW50LCBj
b25zdCBQbGF0Zm9ybToKICAgICBpbnZhbGlkUG9pbnQgPSBJbnRQb2ludChlbmRQb2ludCkgPT0g
RE9NU3VwcG9ydDo6SW52YWxpZFBvaW50OwogICAgIEludFBvaW50IGVuZCA9IGludmFsaWRQb2lu
dCA/IERPTVN1cHBvcnQ6OkludmFsaWRQb2ludCA6IGQtPm1hcEZyb21UcmFuc2Zvcm1lZChlbmRQ
b2ludCk7CiAKLSAgICBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNldFNlbGVjdGlvbihzdGFydCwg
ZW5kKTsKKyAgICByZXR1cm4gZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRTZWxlY3Rpb24oc3Rh
cnQsIGVuZCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBQbGF0
Zm9ybTo6SW50UG9pbnQmIHBvc2l0aW9uKQogeworICAgIGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xv
YWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIC8vIEhhbmRsZWQgYnkgc2VsZWN0aW9uIGhh
bmRsZXIgYXMgaXQncyBwb2ludCBiYXNlZC4KICAgICAvLyBUcmFuc2Zvcm0gdGhpcyBldmVudHMg
Y29vcmRpbmF0ZXMgdG8gd2Via2l0IGNvbnRlbnQgY29vcmRpbmF0ZXMuCi0gICAgZC0+bV9zZWxl
Y3Rpb25IYW5kbGVyLT5zZXRDYXJldFBvc2l0aW9uKGQtPm1hcEZyb21UcmFuc2Zvcm1lZChwb3Np
dGlvbikpOworICAgIHJldHVybiBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNldENhcmV0UG9zaXRp
b24oZC0+bWFwRnJvbVRyYW5zZm9ybWVkKHBvc2l0aW9uKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
c2VsZWN0QXRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGxvY2F0aW9uKQogeworICAg
IGlmIChkLT5tX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIC8v
IFRyYW5zZm9ybSB0aGlzIGV2ZW50cyBjb29yZGluYXRlcyB0byB3ZWJraXQgY29udGVudCBjb29y
ZGluYXRlcyBpZiBpdAogICAgIC8vIGlzIG5vdCB0aGUgc2VudGluZWwgdmFsdWUuCiAgICAgSW50
UG9pbnQgc2VsZWN0aW9uTG9jYXRpb24gPQpAQCAtNDY5NSw4ICs0ODk4LDI3IEBAIGJvb2wgV2Vi
UGFnZTo6em9vbVRvT25lT25lKCkKICAgICByZXR1cm4gZC0+em9vbUFib3V0UG9pbnQoc2NhbGUs
IGQtPmNlbnRlck9mVmlzaWJsZUNvbnRlbnRzUmVjdCgpKTsKIH0KIAorY2xhc3MgRGVmZXJyZWRU
YXNrU2V0Rm9jdXNlZDogcHVibGljIERlZmVycmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1fd291
bGRTZXRGb2N1c2VkPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrU2V0Rm9j
dXNlZChXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUsIGJvb2wgZm9jdXNlZCkKKyAgICAg
ICAgOiBEZWZlcnJlZFRhc2tUeXBlKHdlYlBhZ2VQcml2YXRlKQorICAgIHsKKyAgICAgICAgd2Vi
UGFnZVByaXZhdGUtPm1fY2FjaGVkRm9jdXNlZCA9IGZvY3VzZWQ7CisgICAgfQorcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybUludGVybmFsKFdlYlBhZ2VQcml2YXRlKiB3ZWJQYWdl
UHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHdlYlBhZ2VQcml2YXRlLT5tX3dlYlBhZ2UtPnNldEZv
Y3VzZWQod2ViUGFnZVByaXZhdGUtPm1fY2FjaGVkRm9jdXNlZCk7CisgICAgfQorfTsKKwogdm9p
ZCBXZWJQYWdlOjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKIHsKKyAgICBpZiAoZC0+bV9wYWdl
LT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAgICAgICAgZC0+bV9kZWZlcnJlZFRhc2tzLmFwcGVuZChh
ZG9wdFB0cihuZXcgRGVmZXJyZWRUYXNrU2V0Rm9jdXNlZChkLCBmb2N1c2VkKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIERlZmVycmVkVGFza1NldEZvY3VzZWQ6OmZpbmlzaE9yQ2Fu
Y2VsKGQpOwogICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDb250cm9sbGVyID0gZC0+bV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKTsKICAgICBmb2N1c0NvbnRyb2xsZXItPnNldEFjdGl2ZShmb2N1
c2VkKTsKICAgICBpZiAoZm9jdXNlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuaAppbmRleCAwYWM2NDVhLi44MmQ0ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuaApAQCAtMjUxLDcgKzI1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGVjdGlv
bkNhbmNlbGxlZCgpOwogICAgIGJvb2wgc2VsZWN0aW9uQ29udGFpbnMoY29uc3QgUGxhdGZvcm06
OkludFBvaW50Jik7CiAKLSAgICB2b2lkIHBvcHVwTGlzdENsb3NlZChpbnQgc2l6ZSwgYm9vbCog
c2VsZWN0ZWRzKTsKKyAgICB2b2lkIHBvcHVwTGlzdENsb3NlZChpbnQgc2l6ZSwgY29uc3QgYm9v
bCogc2VsZWN0ZWRzKTsKICAgICB2b2lkIHBvcHVwTGlzdENsb3NlZChpbnQgaW5kZXgpOwogICAg
IHZvaWQgc2V0RGF0ZVRpbWVJbnB1dChjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lk
IHNldENvbG9ySW5wdXQoY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCA4MmVjZGJjLi5iMmZlYmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNs
dWRlICJHTEVTMkNvbnRleHQuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVyLmgiCiAjZW5kaWYK
KyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEJsYWNrQmVycnkuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2Rl
LmgiCkBAIC00MCw3ICs0MSw2IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFz
cyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OwogY2xhc3MgSmF2YVNjcmlw
dERlYnVnZ2VyQmxhY2tCZXJyeTsKLWNsYXNzIEtVUkw7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFn
ZTsKIGNsYXNzIFBsdWdpblZpZXc7CkBAIC00MTUsNiArNDE1LDggQEAgcHVibGljOgogI2VuZGlm
CiAgICAgdm9pZCBub3RpZnlBcHBBY3RpdmF0aW9uU3RhdGVDaGFuZ2UoQWN0aXZhdGlvblN0YXRl
VHlwZSk7CiAKKyAgICB2b2lkIGRlZmVycmVkVGFza3NUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVy
PFdlYlBhZ2VQcml2YXRlPiopOworCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogICAgIFdlYlBh
Z2VDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKQEAgLTUzNiw2
ICs1MzgsNDYgQEAgcHVibGljOgogICAgIGJvb2wgbV9oYXNJblJlZ2lvblNjcm9sbGFibGVBcmVh
czsKICAgICBib29sIG1fdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXNEaXNwYXRjaGVkOwogCisgICAg
Ly8gVGhlcmUgaXMgbm8gbmVlZCB0byBpbml0aWFsaXplIHRoZSBmb2xsb3dpbmcgbWVtYmVycyBp
biBXZWJQYWdlUHJpdmF0ZSdzIGNvbnN0cnVjdG9yLAorICAgIC8vIGJlY2F1c2UgdGhleSBhcmUg
b25seSB1c2VkIGJ5IFdlYlBhZ2VUYXNrcyBhbmQgdGhlIHRhc2tzIHdpbGwgaW5pdGlhbGl6ZSB0
aGVtIHdoZW4KKyAgICAvLyBiZWluZyBjb25zdHJ1Y3RlZC4KKyAgICBib29sIG1fd291bGRQb3B1
cExpc3RTZWxlY3RNdWx0aXBsZTsKKyAgICBib29sIG1fd291bGRQb3B1cExpc3RTZWxlY3RTaW5n
bGU7CisgICAgYm9vbCBtX3dvdWxkU2V0RGF0ZVRpbWVJbnB1dDsKKyAgICBib29sIG1fd291bGRT
ZXRDb2xvcklucHV0OworICAgIGJvb2wgbV93b3VsZENhbmNlbFNlbGVjdGlvbjsKKyAgICBib29s
IG1fd291bGRTZXRGb2N1c2VkOworICAgIGJvb2wgbV93b3VsZFNldFBhZ2VWaXNpYmlsaXR5U3Rh
dGU7CisgICAgVmVjdG9yPGJvb2w+IG1fY2FjaGVkUG9wdXBMaXN0U2VsZWN0ZWRzOworICAgIGlu
dCBtX2NhY2hlZFBvcHVwTGlzdFNlbGVjdGVkSW5kZXg7CisgICAgV2ViU3RyaW5nIG1fY2FjaGVk
RGF0ZVRpbWVJbnB1dDsKKyAgICBXZWJTdHJpbmcgbV9jYWNoZWRDb2xvcklucHV0OworICAgIFdl
YkNvcmU6OktVUkwgbV9jYWNoZWRNYW51YWxTY3JpcHQ7CisgICAgYm9vbCBtX2NhY2hlZEZvY3Vz
ZWQ7CisKKyAgICBjbGFzcyBEZWZlcnJlZFRhc2tCYXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZvaWQgcGVyZm9ybShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghKHdlYlBhZ2VQcml2YXRlLT4qbV9pc0FjdGl2ZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcGVyZm9ybUludGVybmFsKHdlYlBhZ2VQcml2
YXRlKTsKKyAgICAgICAgfQorICAgIHByb3RlY3RlZDoKKyAgICAgICAgRGVmZXJyZWRUYXNrQmFz
ZShXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUsIGJvb2wgV2ViUGFnZVByaXZhdGU6Oipp
c0FjdGl2ZSkKKyAgICAgICAgICAgIDogbV9pc0FjdGl2ZShpc0FjdGl2ZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgd2ViUGFnZVByaXZhdGUtPiptX2lzQWN0aXZlID0gdHJ1ZTsKKyAgICAgICAg
fQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtSW50ZXJuYWwoV2ViUGFnZVByaXZhdGUq
KSA9IDA7CisKKyAgICAgICAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6Km1faXNBY3RpdmU7CisgICAg
fTsKKworICAgIFZlY3RvcjxPd25QdHI8RGVmZXJyZWRUYXNrQmFzZT4gPiBtX2RlZmVycmVkVGFz
a3M7CisgICAgV2ViQ29yZTo6VGltZXI8V2ViUGFnZVByaXZhdGU+IG1fZGVmZXJyZWRUYXNrc1Rp
bWVyOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViUGFnZVByaXZhdGUoKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkZjQ5MWUwLi5hN2NiY2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMi0wNC0xOCAgWW9u
ZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gUG9zc2libGUgSlMg
cmUtZW50cmFuY3kgY2F1c2VkIGJ5IFVJIGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gYmxvY2sgVUkgZXZlbnRzIHdoZW4gcnVubmluZyBp
biBuZXN0ZWQgZXZlbnQgbG9vcAorICAgICAgICAyLiBkZWZlciBzb21lIHRhc2tzIHdlIHN0aWxs
IHdhbnQgdG8gcGVyZm9ybSB3aGVuIGl0IGlzIHNhZmUgdG8gZG8sCisgICAgICAgICAgIHdpdGgg
Y2FjaGVkIGRhdGEuCisgICAgICAgIDMuIGRlZmVycmVkIHRhc2sgY2FuIGJlIGNhbmNlbGxlZCBi
eSBjbGVhcmluZyB0aGUgZmxhZy4gZHVwbGljYXRlIHRhc2tzCisgICAgICAgICAgIGlzIG5vdCBh
IHByb2JsZW0gYmVjYXVzZSB0aGV5IHNoYXJlIHNhbWUgZmxhZyBhbmQgZGF0YS4KKyAgICAgICAg
NC4gbW92ZSBkZWZlcnJlZCBtYW51YWwgc2NyaXB0IGZyb20gRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5IHRvIFdlYlBhZ2VQcml2YXRlCisgICAgICAgICAgIGFuZCBtYWtlIGl0IGEgZGVmZXJy
ZWQgdGFzaworCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OldlYlBhZ2VQcml2
YXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmxvYWQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c3RvcEN1cnJl
bnRMb2FkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6Ondp
bGxEZWZlckxvYWRpbmcpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6ZGlkUmVzdW1lTG9hZGluZyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlBhZ2VQcml2YXRlOjpkZWZlcnJlZFRhc2tzVGltZXJGaXJlZCk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmFzc2lnbkZvY3VzKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OnNldFBhZ2VWaXNpYmlsaXR5U3RhdGUpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRJbnB1dFNlbGVjdGlvbik6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnBvcHVwTGlzdENsb3NlZCk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNldERhdGVUaW1lSW5wdXQpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRDb2xvcklucHV0KToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6bW91c2VFdmVudCk6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoRXZlbnQpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjp0b3VjaFBvaW50QXNNb3VzZUV2ZW50KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6dG91Y2hFdmVudENhbmNlbCk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoRXZlbnRDYW5jZWxBbmRDbGVhckZv
Y3VzZWROb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6a2V5RXZl
bnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpkZWxldGVUZXh0UmVs
YXRpdmVUb0N1cnNvcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNl
dENvbXBvc2luZ1RleHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpj
b21taXRUZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2VsZWN0
aW9uQ2FuY2VsbGVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6Y3V0
U2VsZWN0ZWRUZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6aW5z
ZXJ0VGV4dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmNsZWFyQ3Vy
cmVudElucHV0RmllbGQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpj
dXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpwYXN0ZSk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNldFNlbGVjdGlvbik6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNldENhcmV0UG9zaXRpb24pOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RBdFBvaW50KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0Rm9jdXNlZCk6CisgICAgICAgICogQXBp
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKERlZmVycmVkVGFza0Jhc2Up
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6RGVmZXJyZWRU
YXNrQmFzZTo6cGVyZm9ybSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpEZWZlcnJlZFRhc2tCYXNlOjpEZWZlcnJlZFRhc2tCYXNlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
Ojp+RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6d2lsbERlZmVyTG9hZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpZFJlc3VtZUxvYWRpbmcpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAg
ICAgICAoRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0
SGFuZGxlcjo6c2V0UG9wdXBMaXN0SW5kZXhlcyk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9J
bnB1dEhhbmRsZXIuaDoKKyAgICAgICAgKElucHV0SGFuZGxlcik6CisKIDIwMTItMDQtMjQgIE5p
bWEgR2hhbmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gUGVyZm9ybSBzcGVsbGNoZWNrIGJlZm9yZSBoYW5kbGluZyBUb3VjaFJlbGVhc2UgZXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggN2Y0
MTRjNy4uNDY4ODEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5jcHAKQEAgLTEwMSwxMyArMTAxLDEwIEBAIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KCkKICAgICAsIG1faGFzU2VudFJlc3BvbnNlVG9Q
bHVnaW4oZmFsc2UpCiAgICAgLCBtX2NhbmNlbExvYWRPbk5leHREYXRhKGZhbHNlKQogewotICAg
IG1fZGVmZXJyZWRKb2JzVGltZXIgPSBuZXcgVGltZXI8RnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5Pih0aGlzLCAmRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWZlcnJlZEpvYnNUaW1l
ckZpcmVkKTsKIH0KIAogRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojp+RnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5KCkKIHsKLSAgICBkZWxldGUgbV9kZWZlcnJlZEpvYnNUaW1lcjsKLSAg
ICBtX2RlZmVycmVkSm9ic1RpbWVyID0gMDsKIH0KIAogaW50IEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6cGxheWVySWQoKSBjb25zdApAQCAtMTExNCw4ICsxMTExLDYgQEAgUG9saWN5QWN0
aW9uIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxM
b2FkKGNvbnN0IFJlc28KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OndpbGxE
ZWZlckxvYWRpbmcoKQogewotICAgIG1fZGVmZXJyZWRKb2JzVGltZXItPnN0b3AoKTsKLQogICAg
IGlmICghaXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTI0LDM2ICsxMTE5
LDEyIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojp3aWxsRGVmZXJMb2FkaW5n
KCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpZFJlc3VtZUxvYWRpbmco
KQogewotICAgIGlmICghbV9kZWZlcnJlZE1hbnVhbFNjcmlwdC5pc051bGwoKSkKLSAgICAgICAg
bV9kZWZlcnJlZEpvYnNUaW1lci0+c3RhcnRPbmVTaG90KDApOwotCiAgICAgaWYgKCFpc01haW5G
cmFtZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5kaWRSZXN1
bWVMb2FkaW5nKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpzZXRE
ZWZlcnJlZE1hbnVhbFNjcmlwdChjb25zdCBLVVJMJiBzY3JpcHQpCi17Ci0gICAgQVNTRVJUKCFt
X2RlZmVycmVkSm9ic1RpbWVyLT5pc0FjdGl2ZSgpKTsKLSAgICBtX2RlZmVycmVkTWFudWFsU2Ny
aXB0ID0gc2NyaXB0OwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGVm
ZXJyZWRKb2JzVGltZXJGaXJlZChUaW1lcjxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk+KikK
LXsKLSAgICBBU1NFUlQoIW1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKTsKLQotICAg
IGlmICghbV9kZWZlcnJlZE1hbnVhbFNjcmlwdC5pc051bGwoKSkgewotICAgICAgICAvLyBFeGVj
dXRpbmcgdGhlIHNjcmlwdCB3aWxsIHNldCBkZWZlcnJlZCBsb2FkaW5nLCB3aGljaCBjb3VsZCB0
cmlnZ2VyIHRoaXMgdGltZXIgYWdhaW4gaWYgYSBzY3JpcHQgaXMgc2V0LiBTbyBjbGVhciB0aGUg
c2NyaXB0IGZpcnN0LgotICAgICAgICBLVVJMIHNjcmlwdCA9IG1fZGVmZXJyZWRNYW51YWxTY3Jp
cHQ7Ci0gICAgICAgIG1fZGVmZXJyZWRNYW51YWxTY3JpcHQgPSBLVVJMKCk7Ci0KLSAgICAgICAg
bV9mcmFtZS0+c2NyaXB0KCktPmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoc2NyaXB0KTsKLSAgICB9
Ci0KLSAgICBBU1NFUlQoIW1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKTsKLX0KLQog
dm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnJlYWR5VG9SZW5kZXIoYm9vbCBwYWdl
SXNWaXN1YWxseU5vbkVtcHR5KQogewogICAgIC8vIE9ubHkgc2VuZCB0aGUgbm90aWZpY2F0aW9u
IG9uY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggMDg5
ZGRlNS4uZjJkN2IwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
aApAQCAtMTcwLDEwICsxNzAsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIAotICAg
ICAvLyBTY2hlZHVsZSBhIHNjcmlwdCB0aGF0IHdhcyBsb2FkZWQgbWFudWFsbHkgYnkgdGhlIHVz
ZXIgKGVnLiBhCi0gICAgIC8vIGJvb2ttYXJrbGV0KSB3aGlsZSBwYWdlIGxvYWRpbmcgd2FzIGRl
ZmVycmVkLgotICAgIHZvaWQgc2V0RGVmZXJyZWRNYW51YWxTY3JpcHQoY29uc3QgS1VSTCYpOwot
CiAgICAgdm9pZCByZWFkeVRvUmVuZGVyKGJvb2wgcGFnZUlzVmlzdWFsbHlOb25FbXB0eSk7CiAK
ICAgICB2b2lkIGRvUGVuZGluZ0ZyYWdtZW50U2Nyb2xsKCk7CkBAIC0xOTUsMTQgKzE5MSwxMCBA
QCBwcml2YXRlOgogICAgIFBvbGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0ICYsIGJvb2wgaXNGcmFnbWVudFNjcm9sbCk7CiAgICAgdm9p
ZCBkZWxheVBvbGljeUNoZWNrVW50aWxGcmFnbWVudEV4aXN0cyhjb25zdCBTdHJpbmcmIGZyYWdt
ZW50LCBGcmFtZVBvbGljeUZ1bmN0aW9uKTsKIAotICAgIHZvaWQgZGVmZXJyZWRKb2JzVGltZXJG
aXJlZChUaW1lcjxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk+Kik7Ci0KICAgICBGcmFtZSog
bV9mcmFtZTsKICAgICBSZXNvdXJjZUVycm9yIG1fbG9hZEVycm9yOwogICAgIEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZVByaXZhdGU7CiAKLSAgICBUaW1lcjxG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk+KiBtX2RlZmVycmVkSm9ic1RpbWVyOwotICAgIEtV
UkwgbV9kZWZlcnJlZE1hbnVhbFNjcmlwdDsKICAgICBHZW9sb2NhdGlvbiogbV9nZW9sb2NhdGlv
bjsKICAgICBib29sIG1fc2VudFJlYWR5VG9SZW5kZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmluZGV4IGFj
YmE3ZjAuLmM5OGIxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtMTE4OSw3ICsxMTg5LDcgQEAgdm9p
ZCBJbnB1dEhhbmRsZXI6OnNldFBvcHVwTGlzdEluZGV4KGludCBpbmRleCkKICAgICBjbGVhckN1
cnJlbnRGb2N1c0VsZW1lbnQoKTsKIH0KIAotdm9pZCBJbnB1dEhhbmRsZXI6OnNldFBvcHVwTGlz
dEluZGV4ZXMoaW50IHNpemUsIGJvb2wqIHNlbGVjdGVkcykKK3ZvaWQgSW5wdXRIYW5kbGVyOjpz
ZXRQb3B1cExpc3RJbmRleGVzKGludCBzaXplLCBjb25zdCBib29sKiBzZWxlY3RlZHMpCiB7CiAg
ICAgaWYgKCFpc0FjdGl2ZVNlbGVjdFBvcHVwKCkpCiAgICAgICAgIHJldHVybiBjbGVhckN1cnJl
bnRGb2N1c0VsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmgKaW5kZXggNzlhYzU2Ny4uYzYzMzQ0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5k
bGVyLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlbkxpbmVJbnB1dFBv
cHVwKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICBib29sIG9wZW5TZWxlY3RQb3B1
cChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudCopOwogICAgIHZvaWQgc2V0UG9wdXBMaXN0SW5k
ZXgoaW50KTsKLSAgICB2b2lkIHNldFBvcHVwTGlzdEluZGV4ZXMoaW50IHNpemUsIGJvb2wqIHNl
bGVjdGVkcyk7CisgICAgdm9pZCBzZXRQb3B1cExpc3RJbmRleGVzKGludCBzaXplLCBjb25zdCBi
b29sKiBzZWxlY3RlZHMpOwogCiAgICAgYm9vbCBwcm9jZXNzaW5nQ2hhbmdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9jZXNzaW5nQ2hhbmdlOyB9CiAgICAgdm9pZCBzZXRQcm9jZXNzaW5nQ2hhbmdl
KGJvb2wgcHJvY2Vzc2luZ0NoYW5nZSkgeyBtX3Byb2Nlc3NpbmdDaGFuZ2UgPSBwcm9jZXNzaW5n
Q2hhbmdlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138878</attachid>
            <date>2012-04-25 15:05:48 -0700</date>
            <delta_ts>2012-04-26 06:54:45 -0700</delta_ts>
            <desc>a fix for the previous patch</desc>
            <filename>84862-fix.patch</filename>
            <type>text/plain</type>
            <size>1927</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGRkZThhYTkuLjgz
NDRhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTQz
LDcgKzU0Myw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBw
YWdlR3JvdXBOYW1lKQogI2VuZGlmCiB9CiAKLWNsYXNzIERlZmVycmVkVGFza0xvYWRNYW51YWxT
Y3JpcHQ6IHB1YmxpYyBEZWZlcnJlZFRhc2s8JldlYlBhZ2VQcml2YXRlOjptX3dvdWxkU2V0Rm9j
dXNlZD4geworY2xhc3MgRGVmZXJyZWRUYXNrTG9hZE1hbnVhbFNjcmlwdDogcHVibGljIERlZmVy
cmVkVGFzazwmV2ViUGFnZVByaXZhdGU6Om1fd291bGRMb2FkTWFudWFsU2NyaXB0PiB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgRGVmZXJyZWRUYXNrTG9hZE1hbnVhbFNjcmlwdChXZWJQYWdlUHJp
dmF0ZSogd2ViUGFnZVByaXZhdGUsIGNvbnN0IEtVUkwmIHVybCkKICAgICAgICAgOiBEZWZlcnJl
ZFRhc2tUeXBlKHdlYlBhZ2VQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZV9wLmgKaW5kZXggYjJmZWJjMC4uODMyNWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC01NDYsNiArNTQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wg
bV93b3VsZFNldERhdGVUaW1lSW5wdXQ7CiAgICAgYm9vbCBtX3dvdWxkU2V0Q29sb3JJbnB1dDsK
ICAgICBib29sIG1fd291bGRDYW5jZWxTZWxlY3Rpb247CisgICAgYm9vbCBtX3dvdWxkTG9hZE1h
bnVhbFNjcmlwdDsKICAgICBib29sIG1fd291bGRTZXRGb2N1c2VkOwogICAgIGJvb2wgbV93b3Vs
ZFNldFBhZ2VWaXNpYmlsaXR5U3RhdGU7CiAgICAgVmVjdG9yPGJvb2w+IG1fY2FjaGVkUG9wdXBM
aXN0U2VsZWN0ZWRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMzhjNzlhZi4u
Njk3MGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAK
IDIwMTItMDQtMjUgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKKyAgICAgICAgW0JsYWNrQmVy
cnldIEEgcXVpY2sgZml4IHRvIHRoZSBwcmV2aW91cyBwYXRjaCByMTE1MjQ1LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4NjIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYW4gb2J2aW91cyBidWcg
aW4gcHJldmlvdXMgcGF0Y2g6IERlZmVycmVkVGFza0xvYWRNYW51YWxTY3JpcHQKKyAgICAgICAg
d2FzIHVzaW5nIGEgd3JvbmcgZmxhZy4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisKKzIw
MTItMDQtMjUgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKICAgICAgICAgW0JsYWNrQmVycnld
IFBvc3NpYmxlIEpTIHJlLWVudHJhbmN5IGNhdXNlZCBieSBVSSBldmVudHMuCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDg2MgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179346</attachid>
            <date>2012-12-13 14:54:01 -0800</date>
            <delta_ts>2012-12-13 15:42:33 -0800</delta_ts>
            <desc>a fix</desc>
            <filename>84862-fix2.patch</filename>
            <type>text/plain</type>
            <size>1276</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGExNzg0MzguLjY4
MzI0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMTQx
OSw3ICsxNDE5LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZGlkUmVzdW1lTG9hZGluZygpCiB2
b2lkIFdlYlBhZ2VQcml2YXRlOjpkZWZlcnJlZFRhc2tzVGltZXJGaXJlZChXZWJDb3JlOjpUaW1l
cjxXZWJQYWdlUHJpdmF0ZT4qKQogewogICAgIEFTU0VSVCghbV9kZWZlcnJlZFRhc2tzLmlzRW1w
dHkoKSk7Ci0gICAgaWYgKCFtX2RlZmVycmVkVGFza3MuaXNFbXB0eSgpKQorICAgIGlmIChtX2Rl
ZmVycmVkVGFza3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBPd25QdHI8RGVm
ZXJyZWRUYXNrQmFzZT4gdGFzayA9IG1fZGVmZXJyZWRUYXNrc1swXS5yZWxlYXNlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAzOWFjNzNiLi40MzY1N2FjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMi0xMyAgWW9uZyBM
aSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gUG9zc2libGUgSlMgcmUt
ZW50cmFuY3kgY2F1c2VkIGJ5IFVJIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGFuIG9idmlvdXMgYnVnIGluIHByZXZpb3Vz
IHBhdGNoLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZGVmZXJyZWRUYXNrc1RpbWVyRmlyZWQpOgorCiAy
MDEyLTEyLTEzICBQYXJ0aCBQYXRlbCAgPHBhcnBhdGVsQHJpbS5jb20+LCBNYXggRmVpbCA8bWZl
aWxAcmltLmNvbT4KIAogICAgICAgICBBbGxvdyBwbHVnaW5zIHRvIGJlIGRpc2FibGVkIGJ5IHNo
YXJlZCBsaWJyYXJ5IGZpbGVuYW1lCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>