<?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>148981</bug_id>
          
          <creation_ts>2015-09-08 14:42:46 -0700</creation_ts>
          <short_desc>GC should be able to discover new strong CodeBlock references during marking</short_desc>
          <delta_ts>2015-09-09 15:01:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>148989</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124400</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-08 14:42:46 -0700</bug_when>
    <thetext>GC should be able to discover new strong CodeBlock references during marking</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124410</commentid>
    <comment_count>1</comment_count>
      <attachid>260798</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-08 14:54:17 -0700</bug_when>
    <thetext>Created attachment 260798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124457</commentid>
    <comment_count>2</comment_count>
      <attachid>260798</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-09-08 16:37:41 -0700</bug_when>
    <thetext>Comment on attachment 260798
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124469</commentid>
    <comment_count>3</comment_count>
      <attachid>260798</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-08 17:07:57 -0700</bug_when>
    <thetext>Comment on attachment 260798
Patch

Clearing flags on attachment: 260798

Committed r189516: &lt;http://trac.webkit.org/changeset/189516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124470</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-08 17:08:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124496</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 18:23:30 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 148989</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124705</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-09 15:01:24 -0700</bug_when>
    <thetext>Committed revision 189553.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260798</attachid>
            <date>2015-09-08 14:54:17 -0700</date>
            <delta_ts>2015-09-08 17:07:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148981-20150908145412.patch</filename>
            <type>text/plain</type>
            <size>20115</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5NTA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBA
CisyMDE1LTA5LTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgR0Mgc2hvdWxkIGJlIGFibGUgdG8gZGlzY292ZXIgbmV3IHN0cm9uZyBDb2RlQmxvY2sgcmVm
ZXJlbmNlcyBkdXJpbmcgbWFya2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4OTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2UgcmVxdWlyZWQgYSBzdHJvbmcgcmVmZXJlbmNl
IHRvIHJlZ2lzdGVyIGl0c2VsZiBiZWZvcmUgdGhlCisgICAgICAgIGZpcnN0IHZpc2l0IHRvIGEg
Q29kZUJsb2NrLiBOb3csIHdlIGNhbiBkaXNjb3ZlciBhIHN0cm9uZyByZWZlcmVuY2UgYXQKKyAg
ICAgICAgYW55IHRpbWUgZHVyaW5nIHRoZSBtYXJraW5nIHBoYXNlLgorCisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2sp
OiBSZW1vdmUgdGhlIHR3byBzdHJvbmcgcmVmZXJlbmNlIHN0YXRlCisgICAgICAgIHZhcmlhYmxl
cyBmcm9tIENvZGVCbG9jay4gTm93LCBhIHN0cm9uZyByZWZlcmVuY2UgaW1tZWRpYXRlbHkgbWFy
a3MKKyAgICAgICAgdGhlIENvZGVCbG9jayBhbmQgaXRzIHJlZmVyZW5jZXMgYXQgdGhlIG1vbWVu
dCBvZiBpdHMgZGlzY292ZXJ5LCBhbmQgbm8KKyAgICAgICAgc2VwYXJhdGUgc3RhdGUgaXMgcmVx
dWlyZWQuCisKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2aXNpdFN0cm9uZ2x5KTogTmV3IGhl
bHBlciBmdW5jdGlvbiBmb3IgZXN0YWJsaXNoaW5nCisgICAgICAgIGEgc3Ryb25nIHJlZmVyZW5j
ZSB0byBhIENvZGVCbG9jay4KKworICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnZpc2l0QWdncmVn
YXRlKTogQWRvcHQgaGVscGVyIGZ1bmN0aW9uIGFib3ZlLgorCisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6c2hvdWxkSW1tZWRpYXRlbHlBc3N1bWVMaXZlbmVzc0R1cmluZ1NjYW4pOiBVcGRhdGVk
CisgICAgICAgIGZvciBzdGF0ZSByZW1vdmFsLgorCisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
aXNLbm93blRvQmVMaXZlRHVyaW5nR0MpOiBEaXR0by4KKworICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnN0cm9uZ2x5VmlzaXRXZWFrUmVmZXJlbmNlcyk6IEJlIHN1cmUgdG8gcmVjb3JkIHRoYXQK
KyAgICAgICAgd2UgaGF2ZSBwcm92ZW4gbGl2ZW5lc3MgKGJ5IHZpcnR1ZSBvZiBtYXJraW5nIGFs
bCB0aGUgcmVmZXJlbmNlcyB0aGUKKyAgICAgICAgcHJvb2Ygd291bGQgY2hlY2spLiBUaGlzIGlz
IHJlcXVpcmVkIHNvIHRoYXQgdGhlIENvZGVCbG9jayBrbm93cyBpdHNlbGYKKyAgICAgICAgdG8g
YmUgbGl2ZSwgYW5kIGl0IGlzIGFsc28gYW4gb3B0aW1pemF0aW9uIHRvIGF2b2lkIHRlc3Rpbmcg
d2VhayByZWZlcmVuY2VzCisgICAgICAgIGFmdGVyIHdlIGhhdmUgYWxyZWFkeSB2aXNpdGVkIHRo
ZW0uCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpjbGVhck1hcmtzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjptYXJrKToK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpjbGVhck1hcmtzKTogRGVsZXRlZC4gVXBkYXRl
ZCBmb3Igc3RhdGUgcmVtb3ZhbC4KKworICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpQbGFuOjpjbGVhckNvZGVCbG9ja01hcmtzKToKKyAgICAgICAgKEpTQzo6
REZHOjpQbGFuOjpjaGVja0xpdmVuZXNzQW5kVmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZn
L0RGR1BsYW4uaDogTm8gbmVlZCB0byB1c2UgYSBDb2RlQmxvY2tTZXQgaW4gb3JkZXIgdG8gbWFy
ayBhbnltb3JlLgorCisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxQbGFuc0ZvclZNKToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6Y2xlYXJDb2RlQmxvY2tNYXJrcyk6CisgICAgICAgIChKU0M6OkRGRzo6
V29ya2xpc3Q6OnJlc3VtZUFsbFRocmVhZHMpOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0
Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKToKKyAgICAgICAgKEpTQzo6REZHOjpjb21wbGV0ZUFsbFBs
YW5zRm9yVk0pOgorICAgICAgICAoSlNDOjpERkc6OmNsZWFyQ29kZUJsb2NrTWFya3MpOgorICAg
ICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAoSlNDOjpERkc6OndvcmtsaXN0Rm9y
SW5kZXhPck51bGwpOiBObyBuZWVkIHRvIHVzZSBhIENvZGVCbG9ja1NldCBpbiBvcmRlcgorICAg
ICAgICB0byBtYXJrIGFueW1vcmUuCisKKyAgICAgICAgKiBoZWFwL0NvZGVCbG9ja1NldC5jcHA6
CisgICAgICAgIChKU0M6OkNvZGVCbG9ja1NldDo6Y2xlYXJNYXJrc0ZvckZ1bGxDb2xsZWN0aW9u
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpjbGVhck1hcmtzRm9yRWRlbkNvbGxlY3Rp
b24pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2tTZXQ6OmRlbGV0ZVVubWFya2VkQW5kVW5yZWZl
cmVuY2VkKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0Ojp0cmFjZU1hcmtlZCk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9ja1NldDo6cmVtZW1iZXJDdXJyZW50bHlFeGVjdXRpbmdDb2RlQmxv
Y2tzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpkdW1wKToKKyAgICAgICAgKiBoZWFw
L0NvZGVCbG9ja1NldC5oOiBLZWVwIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIENvZGVCbG9ja3Mg
aW4gUmVmUHRycworICAgICAgICBzaW5jZSB3ZSBjYW4gbm8gbG9uZ2VyIHJlbHkgb24gdGhlIG1f
Y3VycmVudGx5RXhlY3V0aW5nIGJpdCB0byBrZWVwIHRoZW0KKyAgICAgICAgYWxpdmUuIChBIGN1
cnJlbnRseSBleGVjdXRpbmcgQ29kZUJsb2NrIG1heSBub3QgYmUgcmVmZXJlbmNlZCBieSBpdHMK
KyAgICAgICAgRXhlY3V0YWJsZSBiZWNhdXNlIGl0IG1heSBzaW5jZSBoYXZlIGJlZW4gcmVwbGFj
ZWQgYnkgYW5vdGhlciBDb2RlQmxvY2suCisgICAgICAgIFRoaXMgaXMgY29tbW9uIGluIHRoZSBj
YXNlcyBvZiBPU1IgZW50cnkgYW5kIGV4aXQuKQorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlz
aXRDb21waWxlcldvcmtsaXN0V2Vha1JlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpIZWFwOjp2
aXNpdFdlYWtIYW5kbGVzKTogTm8gbmVlZCB0byB0cmFjZSB0aGUgbGlzdCBvZiBDb2RlQmxvY2tz
CisgICAgICAgIG9uIHRoZSBzdGFjayBpbiB0aGUgd2VhayByZWZlcmVuY2UgZml4cG9pbnQgYmVj
YXVzZSB3ZSBubyBsb25nZXIgb3ZlcmxvYWQKKyAgICAgICAgIm9uIHRoZSBzdGFjayIgdG8gaW5j
bHVkZSBDb2RlQmxvY2tzIHJlZmVyZW5jZWQgYnkgdGhlIGNvbXBpbGVyLgorCiAyMDE1LTA5LTA4
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZd
IEltcGxlbWVudCBjb21wdXRlZCBhY2Nlc3NvcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxODk0OTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTY3NCw4ICsxNjc0LDYgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFn
LAogICAgICwgbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcihvdGhlci5tX2xleGljYWxFbnZp
cm9ubWVudFJlZ2lzdGVyKQogICAgICwgbV9pc1N0cmljdE1vZGUob3RoZXIubV9pc1N0cmljdE1v
ZGUpCiAgICAgLCBtX25lZWRzQWN0aXZhdGlvbihvdGhlci5tX25lZWRzQWN0aXZhdGlvbikKLSAg
ICAsIG1fbWF5QmVFeGVjdXRpbmcoZmFsc2UpCi0gICAgLCBtX2lzU3Ryb25nbHlSZWZlcmVuY2Vk
KGZhbHNlKQogICAgICwgbV9zb3VyY2Uob3RoZXIubV9zb3VyY2UpCiAgICAgLCBtX3NvdXJjZU9m
ZnNldChvdGhlci5tX3NvdXJjZU9mZnNldCkKICAgICAsIG1fZmlyc3RMaW5lQ29sdW1uT2Zmc2V0
KG90aGVyLm1fZmlyc3RMaW5lQ29sdW1uT2Zmc2V0KQpAQCAtMTczNCw4ICsxNzMyLDYgQEAgQ29k
ZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogICAgICwgbV9sZXhpY2FsRW52
aXJvbm1lbnRSZWdpc3Rlcih1bmxpbmtlZENvZGVCbG9jay0+YWN0aXZhdGlvblJlZ2lzdGVyKCkp
CiAgICAgLCBtX2lzU3RyaWN0TW9kZSh1bmxpbmtlZENvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkp
CiAgICAgLCBtX25lZWRzQWN0aXZhdGlvbih1bmxpbmtlZENvZGVCbG9jay0+aGFzQWN0aXZhdGlv
blJlZ2lzdGVyKCkgJiYgdW5saW5rZWRDb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25D
b2RlKQotICAgICwgbV9tYXlCZUV4ZWN1dGluZyhmYWxzZSkKLSAgICAsIG1faXNTdHJvbmdseVJl
ZmVyZW5jZWQoZmFsc2UpCiAgICAgLCBtX3NvdXJjZShzb3VyY2VQcm92aWRlcikKICAgICAsIG1f
c291cmNlT2Zmc2V0KHNvdXJjZU9mZnNldCkKICAgICAsIG1fZmlyc3RMaW5lQ29sdW1uT2Zmc2V0
KGZpcnN0TGluZUNvbHVtbk9mZnNldCkKQEAgLTIyMTEsOCArMjIwNyw2IEBAIENvZGVCbG9jazo6
Q29kZUJsb2NrKFdlYkFzc2VtYmx5RXhlY3V0YWIKICAgICAsIG1fdm0oJnZtKQogICAgICwgbV9p
c1N0cmljdE1vZGUoZmFsc2UpCiAgICAgLCBtX25lZWRzQWN0aXZhdGlvbihmYWxzZSkKLSAgICAs
IG1fbWF5QmVFeGVjdXRpbmcoZmFsc2UpCi0gICAgLCBtX2lzU3Ryb25nbHlSZWZlcmVuY2VkKGZh
bHNlKQogICAgICwgbV9jb2RlVHlwZShGdW5jdGlvbkNvZGUpCiAgICAgLCBtX29zckV4aXRDb3Vu
dGVyKDApCiAgICAgLCBtX29wdGltaXphdGlvbkRlbGF5Q291bnRlcigwKQpAQCAtMjI4NSw2ICsy
Mjc5LDE1IEBAIENvZGVCbG9jayogQ29kZUJsb2NrOjpzcGVjaWFsT1NSRW50cnlCbG8KICNlbmRp
ZiAvLyBFTkFCTEUoRlRMX0pJVCkKIH0KIAordm9pZCBDb2RlQmxvY2s6OnZpc2l0U3Ryb25nbHko
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgdmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CisK
KyAgICBzdHJvbmdseVZpc2l0U3Ryb25nUmVmZXJlbmNlcyh2aXNpdG9yKTsKKyAgICBzdHJvbmds
eVZpc2l0V2Vha1JlZmVyZW5jZXModmlzaXRvcik7CisgICAgcHJvcGFnYXRlVHJhbnNpdGlvbnMo
dmlzaXRvcik7Cit9CisKIHZvaWQgQ29kZUJsb2NrOjp2aXNpdEFnZ3JlZ2F0ZShTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCkBAIC0yMzI0LDEwICsyMzI3
LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdAogICAgIG1fYWxs
VHJhbnNpdGlvbnNIYXZlQmVlbk1hcmtlZCA9IGZhbHNlOwogICAgIAogICAgIGlmIChzaG91bGRJ
bW1lZGlhdGVseUFzc3VtZUxpdmVuZXNzRHVyaW5nU2NhbigpKSB7Ci0gICAgICAgIC8vIFRoaXMg
Y29kZSBibG9jayBpcyBsaXZlLCBzbyBzY2FuIGFsbCByZWZlcmVuY2VzIHN0cm9uZ2x5IGFuZCBy
ZXR1cm4uCi0gICAgICAgIHN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKHZpc2l0b3IpOwot
ICAgICAgICBzdHJvbmdseVZpc2l0V2Vha1JlZmVyZW5jZXModmlzaXRvcik7Ci0gICAgICAgIHBy
b3BhZ2F0ZVRyYW5zaXRpb25zKHZpc2l0b3IpOworICAgICAgICB2aXNpdFN0cm9uZ2x5KHZpc2l0
b3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtMjM2NCw5ICsyMzY0LDYgQEAg
Ym9vbCBDb2RlQmxvY2s6OnNob3VsZEltbWVkaWF0ZWx5QXNzdW1lTAogICAgIGlmICghSklUQ29k
ZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKG1faXNTdHJvbmdseVJlZmVyZW5jZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAg
ICAgaWYgKE9wdGlvbnM6OmZvcmNlREZHQ29kZUJsb2NrTGl2ZW5lc3MoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKQEAgLTIzODQsOCArMjM4MSw3IEBAIGJvb2wgQ29kZUJsb2NrOjppc0tub3du
VG9CZUxpdmVEdXJpbmdHQygKICAgICAvLyAgIGFyZSBsaXZlLgogICAgIC8vIC0gQ29kZSBibG9j
a3MgdGhhdCB3ZXJlIHJ1bm5pbmcgb24gdGhlIHN0YWNrLgogICAgIC8vIC0gQ29kZSBibG9ja3Mg
dGhhdCBzdXJ2aXZlZCB0aGUgbGFzdCBHQyBpZiB0aGUgY3VycmVudCBHQyBpcyBhbiBFZGVuIEdD
LiBUaGlzIGlzCi0gICAgLy8gICBiZWNhdXNlIGVpdGhlciBsaXZlbmVzc0hhc0JlZW5Qcm92ZWQg
d291bGQgaGF2ZSBzdXJ2aXZlZCBhcyB0cnVlIG9yCi0gICAgLy8gICBtX2lzU3Ryb25nbHlSZWZl
cmVuY2VkIHdvdWxkIHN1cnZpdmUgYXMgdHJ1ZS4KKyAgICAvLyAgIGJlY2F1c2UgbGl2ZW5lc3NI
YXNCZWVuUHJvdmVkIHdvdWxkIGhhdmUgc3Vydml2ZWQgYXMgdHJ1ZS4KICAgICAvLyAtIENvZGUg
YmxvY2tzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgZGVhZCB3ZWFrIHJlZmVyZW5jZXMuCiAgICAgCiAg
ICAgcmV0dXJuIHNob3VsZEltbWVkaWF0ZWx5QXNzdW1lTGl2ZW5lc3NEdXJpbmdTY2FuKCkKQEAg
LTI4NTksNiArMjg1NSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpzdHJvbmdseVZpc2l0V2Vha1JlZmVy
ZW4KIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZmdDb21tb24tPndlYWtTdHJ1Y3R1
cmVSZWZlcmVuY2VzLnNpemUoKTsgKytpKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmZGZnQ29t
bW9uLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlc1tpXSk7CisKKyAgICBkZmdDb21tb24tPmxpdmVu
ZXNzSGFzQmVlblByb3ZlZCA9IHRydWU7CiAjZW5kaWYgICAgCiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE4OTQ5OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDcgKzE1Niw5IEBAIHB1YmxpYzoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjc3CiAgICAgQ29kZUJsb2NrKiBiYXNlbGluZVZlcnNp
b24oKTsKIAorICAgIHZvaWQgY2xlYXJNYXJrcygpOwogICAgIHZvaWQgdmlzaXRBZ2dyZWdhdGUo
U2xvdFZpc2l0b3ImKTsKKyAgICB2b2lkIHZpc2l0U3Ryb25nbHkoU2xvdFZpc2l0b3ImKTsKIAog
ICAgIHZvaWQgZHVtcFNvdXJjZSgpOwogICAgIHZvaWQgZHVtcFNvdXJjZShQcmludFN0cmVhbSYp
OwpAQCAtMTAwMCw4ICsxMDAyLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTdHJpY3RNb2Rl
OwogICAgIGJvb2wgbV9uZWVkc0FjdGl2YXRpb247CiAKLSAgICBib29sIG1fbWF5QmVFeGVjdXRp
bmc7Ci0gICAgYm9vbCBtX2lzU3Ryb25nbHlSZWZlcmVuY2VkOwogICAgIEF0b21pYzxib29sPiBt
X3Zpc2l0QWdncmVnYXRlSGFzQmVlbkNhbGxlZDsKIAogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRl
cj4gbV9zb3VyY2U7CkBAIC0xMjA2LDE0ICsxMjA2LDkgQEAgaW5saW5lIFJlZ2lzdGVyJiBFeGVj
U3RhdGU6OnVuY2hlY2tlZFIoVgogICAgIHJldHVybiB1bmNoZWNrZWRSKHJlZy5vZmZzZXQoKSk7
CiB9CiAKLWlubGluZSB2b2lkIENvZGVCbG9ja1NldDo6Y2xlYXJNYXJrcyhDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKK2lubGluZSB2b2lkIENvZGVCbG9jazo6Y2xlYXJNYXJrcygpCiB7Ci0gICAgaWYg
KCFjb2RlQmxvY2spCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvZGVCbG9jay0+bV9tYXlCZUV4
ZWN1dGluZyA9IGZhbHNlOwotICAgIGNvZGVCbG9jay0+bV9pc1N0cm9uZ2x5UmVmZXJlbmNlZCA9
IGZhbHNlOwotICAgIGNvZGVCbG9jay0+bV92aXNpdEFnZ3JlZ2F0ZUhhc0JlZW5DYWxsZWQuc3Rv
cmUoZmFsc2UsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgIG1fdmlzaXRBZ2dyZWdh
dGVIYXNCZWVuQ2FsbGVkLnN0b3JlKGZhbHNlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsK
IH0KIAogaW5saW5lIHZvaWQgQ29kZUJsb2NrU2V0OjptYXJrKHZvaWQqIGNhbmRpZGF0ZUNvZGVC
bG9jaykKQEAgLTEyMzksMjEgKzEyMzQsMTQgQEAgaW5saW5lIHZvaWQgQ29kZUJsb2NrU2V0Ojpt
YXJrKENvZGVCbG9jawogICAgIGlmICghY29kZUJsb2NrKQogICAgICAgICByZXR1cm47CiAgICAg
Ci0gICAgaWYgKGNvZGVCbG9jay0+bV9tYXlCZUV4ZWN1dGluZykKLSAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIGNvZGVCbG9jay0+bV9tYXlCZUV4ZWN1dGluZyA9IHRydWU7Ci0KLSAgICAvLyBX
ZSBtaWdodCBub3QgaGF2ZSBjbGVhcmVkIHRoZSBtYXJrcyBmb3IgdGhpcyBDb2RlQmxvY2ssIGJ1
dCB3ZSBuZWVkIHRvIHZpc2l0IGl0LgorICAgIC8vIEZvcmNlIEdDIHRvIHZpc2l0IGFsbCBDb2Rl
QmxvY2tzIG9uIHRoZSBzdGFjaywgaW5jbHVkaW5nIG9sZCBDb2RlQmxvY2tzCisgICAgLy8gdGhh
dCBoYXZlIG5vdCBleGVjdXRlZCBhIGJhcnJpZXIuIFRoaXMgaXMgb3ZlcmtpbGwsIGJ1dCB3ZSBo
YXZlIGFsd2F5cworICAgIC8vIGRvbmUgdGhpcywgYW5kIGl0IG1pZ2h0IGhlbHAgdXMgcmVjb3Zl
ciBncmFjZWZ1bGx5IGlmIHdlIGZvcmdldCB0byBleGVjdXRlCisgICAgLy8gYSBiYXJyaWVyIHdo
ZW4gYSBDb2RlQmxvY2sgbmVlZHMgaXQuCiAgICAgY29kZUJsb2NrLT5tX3Zpc2l0QWdncmVnYXRl
SGFzQmVlbkNhbGxlZC5zdG9yZShmYWxzZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CiAK
LSAgICAvLyBGb3Igc2ltcGxpY2l0eSwgd2UgZG9uJ3QgYXR0ZW1wdCB0byBqZXR0aXNvbiBjb2Rl
IGJsb2NrcyBkdXJpbmcgR0MgaWYKLSAgICAvLyB0aGV5IGFyZSBleGVjdXRpbmcuIEluc3RlYWQg
d2Ugc3Ryb25nbHkgbWFyayB0aGVpciB3ZWFrIHJlZmVyZW5jZXMgdG8KLSAgICAvLyBhbGxvdyB0
aGVtIHRvIGNvbnRpbnVlIHRvIGV4ZWN1dGUgc291bmRseS4KLSAgICBjb2RlQmxvY2stPm1faXNT
dHJvbmdseVJlZmVyZW5jZWQgPSB0cnVlOwotCiAjaWYgRU5BQkxFKEdHQykKLSAgICBtX2N1cnJl
bnRseUV4ZWN1dGluZy5hcHBlbmQoY29kZUJsb2NrKTsKKyAgICBtX2N1cnJlbnRseUV4ZWN1dGlu
Zy5hZGQoY29kZUJsb2NrKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE4OTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5NSwyNSArNTk1LDMxIEBAIENv
bXBpbGF0aW9uS2V5IFBsYW46OmtleSgpCiAgICAgcmV0dXJuIENvbXBpbGF0aW9uS2V5KGNvZGVC
bG9jay0+YWx0ZXJuYXRpdmUoKSwgbW9kZSk7CiB9CiAKLXZvaWQgUGxhbjo6Y2xlYXJDb2RlQmxv
Y2tNYXJrcyhDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCit2b2lkIFBsYW46OmNsZWFyQ29kZUJs
b2NrTWFya3MoKQogewotICAgIGNvZGVCbG9ja3MuY2xlYXJNYXJrcyhjb2RlQmxvY2suZ2V0KCkp
OwotICAgIGNvZGVCbG9ja3MuY2xlYXJNYXJrcyhjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwot
ICAgIGNvZGVCbG9ja3MuY2xlYXJNYXJrcyhwcm9maWxlZERGR0NvZGVCbG9jay5nZXQoKSk7Cisg
ICAgLy8gQ29tcGlsYXRpb24gd3JpdGVzIGxvdHMgb2YgdmFsdWVzIHRvIGEgQ29kZUJsb2NrIHdp
dGhvdXQgcGVyZm9ybWluZworICAgIC8vIGFuIGV4cGxpY2l0IGJhcnJpZXIuIFNvLCB3ZSBuZWVk
IHRvIGJlIHBlc3NpbWlzdGljIGFuZCBhc3N1bWUgdGhhdAorICAgIC8vIGFsbCBvdXIgQ29kZUJs
b2NrcyBtdXN0IGJlIHZpc2l0ZWQgZHVyaW5nIEdDLgorCisgICAgY29kZUJsb2NrLT5jbGVhck1h
cmtzKCk7CisgICAgY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5jbGVhck1hcmtzKCk7CisgICAg
aWYgKHByb2ZpbGVkREZHQ29kZUJsb2NrKQorICAgICAgICBwcm9maWxlZERGR0NvZGVCbG9jay0+
Y2xlYXJNYXJrcygpOwogfQogCi12b2lkIFBsYW46OmNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCit2b2lk
IFBsYW46OmNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogewogICAgIGlmICghaXNLbm93blRvQmVMaXZlRHVyaW5nR0MoKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IG11c3RIYW5kbGVWYWx1ZXMuc2l6ZSgpOyBp
LS07KQogICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkVmFsdWUoJm11c3RIYW5kbGVW
YWx1ZXNbaV0pOwotICAgIAotICAgIGNvZGVCbG9ja3MubWFyayhjb2RlQmxvY2suZ2V0KCkpOwot
ICAgIGNvZGVCbG9ja3MubWFyayhjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwotICAgIGNvZGVC
bG9ja3MubWFyayhwcm9maWxlZERGR0NvZGVCbG9jay5nZXQoKSk7Ci0gICAgCisKKyAgICBjb2Rl
QmxvY2stPnZpc2l0U3Ryb25nbHkodmlzaXRvcik7CisgICAgY29kZUJsb2NrLT5hbHRlcm5hdGl2
ZSgpLT52aXNpdFN0cm9uZ2x5KHZpc2l0b3IpOworICAgIGlmIChwcm9maWxlZERGR0NvZGVCbG9j
aykKKyAgICAgICAgcHJvZmlsZWRERkdDb2RlQmxvY2stPnZpc2l0U3Ryb25nbHkodmlzaXRvcik7
CisKICAgICB3ZWFrUmVmZXJlbmNlcy52aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIHRyYW5z
aXRpb25zLnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1BsYW4uaAkocmV2aXNpb24gMTg5NDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDYgQEAKIG5hbWVzcGFj
ZSBKU0MgewogCiBjbGFzcyBDb2RlQmxvY2s7Ci1jbGFzcyBDb2RlQmxvY2tTZXQ7CiBjbGFzcyBT
bG90VmlzaXRvcjsKIAogbmFtZXNwYWNlIERGRyB7CkBAIC03Miw4ICs3MSw4IEBAIHN0cnVjdCBQ
bGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICAKICAgICBDb21waWxhdGlvbktl
eSBrZXkoKTsKICAgICAKLSAgICB2b2lkIGNsZWFyQ29kZUJsb2NrTWFya3MoQ29kZUJsb2NrU2V0
Jik7Ci0gICAgdm9pZCBjaGVja0xpdmVuZXNzQW5kVmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYs
IENvZGVCbG9ja1NldCYpOworICAgIHZvaWQgY2xlYXJDb2RlQmxvY2tNYXJrcygpOworICAgIHZv
aWQgY2hlY2tMaXZlbmVzc0FuZFZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKICAgICBib29s
IGlzS25vd25Ub0JlTGl2ZUR1cmluZ0dDKCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAx
ODk0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA3LDE0ICsyMDcsMTQgQEAgdm9pZCBXb3JrbGlzdDo6Y29tcGxldGVB
bGxQbGFuc0ZvclZNKFZNJgogICAgIGNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKIH0K
IAotdm9pZCBXb3JrbGlzdDo6Y2xlYXJDb2RlQmxvY2tNYXJrcyhWTSYgdm0sIENvZGVCbG9ja1Nl
dCYgY29kZUJsb2NrcykKK3ZvaWQgV29ya2xpc3Q6OmNsZWFyQ29kZUJsb2NrTWFya3MoVk0mIHZt
KQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgZm9yIChQbGFuTWFwOjpp
dGVyYXRvciBpdGVyID0gbV9wbGFucy5iZWdpbigpOyBpdGVyICE9IG1fcGxhbnMuZW5kKCk7ICsr
aXRlcikgewogICAgICAgICBQbGFuKiBwbGFuID0gaXRlci0+dmFsdWUuZ2V0KCk7CiAgICAgICAg
IGlmICgmcGxhbi0+dm0gIT0gJnZtKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHBs
YW4tPmNsZWFyQ29kZUJsb2NrTWFya3MoY29kZUJsb2Nrcyk7CisgICAgICAgIHBsYW4tPmNsZWFy
Q29kZUJsb2NrTWFya3MoKTsKICAgICB9CiB9CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFdv
cmtsaXN0OjpyZXN1bWVBbGxUaHJlYWRzKCkKICAgICBtX3N1c3BlbnNpb25Mb2NrLnVubG9jaygp
OwogfQogCi12b2lkIFdvcmtsaXN0Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCit2b2lkIFdvcmtsaXN0Ojp2aXNpdFdl
YWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFZNKiB2bSA9IHZpc2l0
b3IuaGVhcCgpLT52bSgpOwogICAgIHsKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIFdvcmtsaXN0
Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWCiAgICAgICAgICAgICBQbGFuKiBwbGFuID0gaXRl
ci0+dmFsdWUuZ2V0KCk7CiAgICAgICAgICAgICBpZiAoJnBsYW4tPnZtICE9IHZtKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcGxhbi0+Y2hlY2tMaXZlbmVzc0FuZFZp
c2l0Q2hpbGRyZW4odmlzaXRvciwgY29kZUJsb2Nrcyk7CisgICAgICAgICAgICBwbGFuLT5jaGVj
a0xpdmVuZXNzQW5kVmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICAgICAgfQogICAgIH0KICAg
ICAvLyBUaGlzIGxvb3AgZG9lc24ndCBuZWVkIGxvY2tpbmcgYmVjYXVzZToKQEAgLTQ2NywxMSAr
NDY3LDExIEBAIHZvaWQgY29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJiB2bSkKICAgICB9CiB9CiAK
LXZvaWQgY2xlYXJDb2RlQmxvY2tNYXJrcyhWTSYgdm0sIENvZGVCbG9ja1NldCYgY29kZUJsb2Nr
U2V0KQordm9pZCBjbGVhckNvZGVCbG9ja01hcmtzKFZNJiB2bSkKIHsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBERkc6Om51bWJlck9mV29ya2xpc3RzKCk7IGktLTspIHsKICAgICAgICAgaWYgKERG
Rzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gREZHOjp3b3JrbGlzdEZvckluZGV4T3JOdWxsKGkpKQot
ICAgICAgICAgICAgd29ya2xpc3QtPmNsZWFyQ29kZUJsb2NrTWFya3Modm0sIGNvZGVCbG9ja1Nl
dCk7CisgICAgICAgICAgICB3b3JrbGlzdC0+Y2xlYXJDb2RlQmxvY2tNYXJrcyh2bSk7CiAgICAg
fQogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCShyZXZp
c2lvbiAxODk0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNs
YXNzIENvZGVCbG9ja1NldDsKIGNsYXNzIFNsb3RWaXNpdG9yOwogCiBuYW1lc3BhY2UgREZHIHsK
QEAgLTU4LDcgKzU3LDcgQEAgcHVibGljOgogICAgIC8vIHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJl
YWR5UGxhbnNGb3JWTSh2bSk7CiAgICAgdm9pZCBjb21wbGV0ZUFsbFBsYW5zRm9yVk0oVk0mKTsK
IAotICAgIHZvaWQgY2xlYXJDb2RlQmxvY2tNYXJrcyhWTSYsIENvZGVCbG9ja1NldCYpOworICAg
IHZvaWQgY2xlYXJDb2RlQmxvY2tNYXJrcyhWTSYpOwogCiAgICAgdm9pZCB3YWl0VW50aWxBbGxQ
bGFuc0ZvclZNQXJlUmVhZHkoVk0mKTsKICAgICBTdGF0ZSBjb21wbGV0ZUFsbFJlYWR5UGxhbnNG
b3JWTShWTSYsIENvbXBpbGF0aW9uS2V5ID0gQ29tcGlsYXRpb25LZXkoKSk7CkBAIC03NCw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWN0aXZlRm9yVk0oVk0mKSBjb25zdDsKICAgICAK
ICAgICAvLyBPbmx5IGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQgYWZ0ZXIgc3VzcGVuZGluZyBh
bGwgdGhyZWFkcy4KLSAgICB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3ImLCBD
b2RlQmxvY2tTZXQmKTsKKyAgICB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3Im
KTsKICAgICB2b2lkIHJlbW92ZURlYWRQbGFucyhWTSYpOwogICAgIAogICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OwpAQCAtMTQyLDcgKzE0MSw3IEBAIGlubGluZSBXb3JrbGlzdCog
d29ya2xpc3RGb3JJbmRleE9yTnVsbCgKIH0KIAogdm9pZCBjb21wbGV0ZUFsbFBsYW5zRm9yVk0o
Vk0mKTsKLXZvaWQgY2xlYXJDb2RlQmxvY2tNYXJrcyhWTSYsIENvZGVCbG9ja1NldCYpOwordm9p
ZCBjbGVhckNvZGVCbG9ja01hcmtzKFZNJik7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29kZUJsb2NrU2V0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuY3BwCShy
ZXZpc2lvbiAxODk0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tT
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgQ29kZUJsb2NrU2V0
Ojpwcm9tb3RlWW91bmdDb2RlQmxvY2sKIHZvaWQgQ29kZUJsb2NrU2V0OjpjbGVhck1hcmtzRm9y
RnVsbENvbGxlY3Rpb24oKQogewogICAgIGZvciAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgOiBtX29s
ZENvZGVCbG9ja3MpCi0gICAgICAgIGNsZWFyTWFya3MoY29kZUJsb2NrKTsKKyAgICAgICAgY29k
ZUJsb2NrLT5jbGVhck1hcmtzKCk7CiAKICAgICAvLyBXZSBwcm9tb3RlIGFmdGVyIHdlIGNsZWFy
IG1hcmtzIG9uIHRoZSBvbGQgZ2VuZXJhdGlvbiBDb2RlQmxvY2tzIGJlY2F1c2UKICAgICAvLyBu
b25lIG9mIHRoZSB5b3VuZyBnZW5lcmF0aW9ucyBDb2RlQmxvY2tzIG5lZWQgdG8gYmUgY2xlYXJl
ZC4KQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBDb2RlQmxvY2tTZXQ6OmNsZWFyTWFya3NGb3JFZGVu
Q29sbAogICAgICAgICBpZiAoIWV4ZWN1dGFibGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgZXhlY3V0YWJsZS0+Zm9yRWFjaENvZGVCbG9jayhbdGhpc10oQ29kZUJsb2NrKiBjb2Rl
QmxvY2spIHsKLSAgICAgICAgICAgIGNsZWFyTWFya3MoY29kZUJsb2NrKTsKKyAgICAgICAgICAg
IGNvZGVCbG9jay0+Y2xlYXJNYXJrcygpOwogICAgICAgICB9KTsKICAgICB9CiB9CkBAIC05OSw4
ICs5OSw2IEBAIHZvaWQgQ29kZUJsb2NrU2V0OjpkZWxldGVVbm1hcmtlZEFuZFVucmUKICAgICAg
ICAgZm9yIChDb2RlQmxvY2sqIGNvZGVCbG9jayA6IHNldCkgewogICAgICAgICAgICAgaWYgKCFj
b2RlQmxvY2stPmhhc09uZVJlZigpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgaWYgKGNvZGVCbG9jay0+bV9pc1N0cm9uZ2x5UmVmZXJlbmNlZCkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGNvZGVCbG9jay0+ZGVyZWYoKTsKICAgICAgICAg
ICAgIHRvUmVtb3ZlLmFwcGVuZChjb2RlQmxvY2spOwogICAgICAgICB9CkBAIC0xMzMsMTEgKzEz
MSw4IEBAIHZvaWQgQ29kZUJsb2NrU2V0Ojp0cmFjZU1hcmtlZChTbG90VmlzaXQKIHsKICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiVHJhY2luZyAiLCBtX2N1cnJlbnRseUV4ZWN1
dGluZy5zaXplKCksICIgY29kZSBibG9ja3MuXG4iKTsKLSAgICBmb3IgKENvZGVCbG9jayogY29k
ZUJsb2NrIDogbV9jdXJyZW50bHlFeGVjdXRpbmcpIHsKLSAgICAgICAgQVNTRVJUKGNvZGVCbG9j
ay0+bV9tYXlCZUV4ZWN1dGluZyk7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2stPm1faXNTdHJv
bmdseVJlZmVyZW5jZWQpOwotICAgICAgICBjb2RlQmxvY2stPnZpc2l0QWdncmVnYXRlKHZpc2l0
b3IpOwotICAgIH0KKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxDb2RlQmxvY2s+JiBjb2RlQmxvY2sg
OiBtX2N1cnJlbnRseUV4ZWN1dGluZykKKyAgICAgICAgY29kZUJsb2NrLT52aXNpdFN0cm9uZ2x5
KHZpc2l0b3IpOwogfQogCiB2b2lkIENvZGVCbG9ja1NldDo6cmVtZW1iZXJDdXJyZW50bHlFeGVj
dXRpbmdDb2RlQmxvY2tzKEhlYXAqIGhlYXApCkBAIC0xNDUsMTEgKzE0MCwxMiBAQCB2b2lkIENv
ZGVCbG9ja1NldDo6cmVtZW1iZXJDdXJyZW50bHlFeGVjCiAjaWYgRU5BQkxFKEdHQykKICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiUmVtZW1iZXJpbmcgIiwgbV9jdXJyZW50bHlF
eGVjdXRpbmcuc2l6ZSgpLCAiIGNvZGUgYmxvY2tzLlxuIik7Ci0gICAgZm9yIChDb2RlQmxvY2sq
IGNvZGVCbG9jayA6IG1fY3VycmVudGx5RXhlY3V0aW5nKSB7Ci0gICAgICAgIEFTU0VSVChjb2Rl
QmxvY2stPm1fbWF5QmVFeGVjdXRpbmcpOwotICAgICAgICBBU1NFUlQoY29kZUJsb2NrLT5tX2lz
U3Ryb25nbHlSZWZlcmVuY2VkKTsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxDb2RlQmxvY2s+JiBj
b2RlQmxvY2sgOiBtX2N1cnJlbnRseUV4ZWN1dGluZykKICAgICAgICAgaGVhcC0+YWRkVG9SZW1l
bWJlcmVkU2V0KGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpOwotICAgIH0KKworICAgIC8v
IEl0J3Mgc2FmZSB0byBjbGVhciB0aGlzIFJlZlB0ciBzZXQgYmVjYXVzZSB3ZSB3b24ndCBkZWxl
dGUgdGhlIENvZGVCbG9ja3MKKyAgICAvLyBpbiBpdCB1bnRpbCB0aGUgbmV4dCBHQywgYW5kIHdl
J2xsIHJlY29tcHV0ZSBtX2N1cnJlbnRseUV4ZWN1dGluZyBhdCB0aGF0CisgICAgLy8gdGltZS4K
ICAgICBtX2N1cnJlbnRseUV4ZWN1dGluZy5jbGVhcigpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oaGVhcCk7CkBAIC0xNjgsOCArMTY0LDggQEAgdm9pZCBDb2RlQmxvY2tTZXQ6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dAogICAgICAgICBvdXQucHJpbnQoY29tbWEsIHBvaW50ZXJEdW1wKGNvZGVC
bG9jaykpOwogICAgIG91dC5wcmludCgiXSwgY3VycmVudGx5RXhlY3V0aW5nID0gWyIpOwogICAg
IGNvbW1hID0gQ29tbWFQcmludGVyKCk7Ci0gICAgZm9yIChDb2RlQmxvY2sqIGNvZGVCbG9jayA6
IG1fY3VycmVudGx5RXhlY3V0aW5nKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHBvaW50ZXJE
dW1wKGNvZGVCbG9jaykpOworICAgIGZvciAoY29uc3QgUmVmUHRyPENvZGVCbG9jaz4mIGNvZGVC
bG9jayA6IG1fY3VycmVudGx5RXhlY3V0aW5nKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHBv
aW50ZXJEdW1wKGNvZGVCbG9jay5nZXQoKSkpOwogICAgIG91dC5wcmludCgiXX0iKTsKIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29kZUJsb2NrU2V0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29kZUJsb2NrU2V0LmgJKHJldmlzaW9u
IDE4OTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKICAgICAvLyBDbGVhciBhbGwg
bWFyayBiaXRzIGZvciBhbGwgQ29kZUJsb2Nrcy4KICAgICB2b2lkIGNsZWFyTWFya3NGb3JGdWxs
Q29sbGVjdGlvbigpOwogCi0gICAgdm9pZCBjbGVhck1hcmtzKENvZGVCbG9jayopOwotCiAgICAg
Ly8gTWFyayBhIHBvaW50ZXIgdGhhdCBtYXkgYmUgYSBDb2RlQmxvY2sgdGhhdCBiZWxvbmdzIHRv
IHRoZSBzZXQgb2YgREZHCiAgICAgLy8gYmxvY2tzLiBUaGlzIGlzIGRlZmluZWQgaW4gQ29kZUJs
b2NrLmguCiAgICAgdm9pZCBtYXJrKENvZGVCbG9jayogY2FuZGlkYXRlQ29kZUJsb2NrKTsKQEAg
LTExMSw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIC8vIGFuZCBhbGwsIGJ1dCB0aGF0IHNlZW1l
ZCBsaWtlIG92ZXJraWxsLgogICAgIEhhc2hTZXQ8Q29kZUJsb2NrKj4gbV9vbGRDb2RlQmxvY2tz
OwogICAgIEhhc2hTZXQ8Q29kZUJsb2NrKj4gbV9uZXdDb2RlQmxvY2tzOwotICAgIFZlY3RvcjxD
b2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKKyAgICBIYXNoU2V0PFJlZlB0cjxDb2Rl
QmxvY2s+PiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDE4OTQ5OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MzksNyArNTM5LDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91YmxlIGdjU3RhcnRUaW1lLAog
I2VuZGlmCiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBERkc6OmNsZWFyQ29kZUJsb2NrTWFy
a3MoKm1fdm0sIG1fY29kZUJsb2Nrcyk7CisgICAgREZHOjpjbGVhckNvZGVCbG9ja01hcmtzKCpt
X3ZtKTsKICNlbmRpZgogICAgIGlmIChtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPT0gRWRlbkNvbGxl
Y3Rpb24pCiAgICAgICAgIG1fY29kZUJsb2Nrcy5jbGVhck1hcmtzRm9yRWRlbkNvbGxlY3Rpb24o
cmVtZW1iZXJlZFNldCk7CkBAIC02NzUsNyArNjc1LDcgQEAgdm9pZCBIZWFwOjp2aXNpdENvbXBp
bGVyV29ya2xpc3RXZWFrUmVmZQogewogI2lmIEVOQUJMRShERkdfSklUKQogICAgIGZvciAoYXV0
byB3b3JrbGlzdCA6IG1fc3VzcGVuZGVkQ29tcGlsZXJXb3JrbGlzdHMpCi0gICAgICAgIHdvcmts
aXN0LT52aXNpdFdlYWtSZWZlcmVuY2VzKG1fc2xvdFZpc2l0b3IsIG1fY29kZUJsb2Nrcyk7Cisg
ICAgICAgIHdvcmtsaXN0LT52aXNpdFdlYWtSZWZlcmVuY2VzKG1fc2xvdFZpc2l0b3IpOwogCiAg
ICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkgPT0gR0NMb2dnaW5nOjpWZXJib3NlKQogICAgICAgICBk
YXRhTG9nKCJERkcgV29ya2xpc3RzOlxuIiwgbV9zbG90VmlzaXRvcik7CkBAIC03ODIsNyArNzgy
LDYgQEAgdm9pZCBIZWFwOjp2aXNpdFdlYWtIYW5kbGVzKEhlYXBSb290VmlzaQogICAgICAgICBt
X29iamVjdFNwYWNlLnZpc2l0V2Vha1NldHModmlzaXRvcik7CiAgICAgICAgIGhhcnZlc3RXZWFr
UmVmZXJlbmNlcygpOwogICAgICAgICB2aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNl
cygpOwotICAgICAgICBtX2NvZGVCbG9ja3MudHJhY2VNYXJrZWQobV9zbG90VmlzaXRvcik7IC8v
IE5ldyAiZXhlY3V0aW5nIiBjb2RlIGJsb2NrcyBtYXkgYmUgZGlzY292ZXJlZC4KICAgICAgICAg
aWYgKG1fc2xvdFZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>