<?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>231125</bug_id>
          
          <creation_ts>2021-10-02 15:41:07 -0700</creation_ts>
          <short_desc>Share more code that uses ScratchRegisterAllocator in the ICs</short_desc>
          <delta_ts>2021-10-11 17:33:27 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1799779</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-02 15:41:07 -0700</bug_when>
    <thetext>A bunch of similar code. We can just share things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802420</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-09 15:42:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84066374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802754</commentid>
    <comment_count>2</comment_count>
      <attachid>440825</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 12:55:00 -0700</bug_when>
    <thetext>Created attachment 440825
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802756</commentid>
    <comment_count>3</comment_count>
      <attachid>440825</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2021-10-11 12:59:22 -0700</bug_when>
    <thetext>Comment on attachment 440825
patch

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

&gt; Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:256
&gt; +ScratchRegisterAllocator AccessGenerationState::makeDefaultScratchAllocator(GPRReg extraToLock)

Cool, LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802781</commentid>
    <comment_count>4</comment_count>
      <attachid>440825</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-10-11 13:52:30 -0700</bug_when>
    <thetext>Comment on attachment 440825
patch

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

&gt; Source/JavaScriptCore/bytecode/AccessCase.cpp:1681
&gt; +        ScratchRegisterAllocator allocator = state.makeDefaultScratchAllocator(scratchGPR);

In other parts of WebKit, we would use auto here, since the function makes it exceedingly clear what the type is, but I&apos;m not sure where JSC is on that these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802808</commentid>
    <comment_count>5</comment_count>
      <attachid>440825</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 14:38:55 -0700</bug_when>
    <thetext>Comment on attachment 440825
patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/AccessCase.cpp:1681
&gt;&gt; +        ScratchRegisterAllocator allocator = state.makeDefaultScratchAllocator(scratchGPR);
&gt; 
&gt; In other parts of WebKit, we would use auto here, since the function makes it exceedingly clear what the type is, but I&apos;m not sure where JSC is on that these days.

I&apos;m happy to use &quot;auto&quot; in these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802811</commentid>
    <comment_count>6</comment_count>
      <attachid>440838</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 14:43:08 -0700</bug_when>
    <thetext>Created attachment 440838
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802900</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 17:33:25 -0700</bug_when>
    <thetext>Committed r283954 (242805@main): &lt;https://commits.webkit.org/242805@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440838.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440825</attachid>
            <date>2021-10-11 12:55:00 -0700</date>
            <delta_ts>2021-10-11 14:43:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>15028</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDIxLTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFNoYXJlIG1vcmUgY29kZSB0aGF0IHVzZXMgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGluIHRo
ZSBJQ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTEyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNjYzNzQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgaGFkIHRoZSBzYW1lIGNvZGUgdG8g
YWxsb2NhdGUgYSBzY3JhdGNoIHJlZ2lzdGVyIGFsbG9jYXRvciBjb3B5IHBhc3RlZAorICAgICAg
ICBhbGwgb3ZlciB0aGUgSUMgY29kZS4gVGhpcyBwYXRjaCByZWZhY3RvcnMgdGhhdCB0byB1c2Ug
YSBzaGFyZWQgaGVscGVyLgorICAgICAgICAKKyAgICAgICAgQWxzbywgRGVsZXRlIHdhcyB1c2lu
ZyBhIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBmb3Igbm8gcmVhc29uIChpdCBuZXZlcgorICAg
ICAgICBhbGxvY2F0ZWQgYSBzY3JhdGNoIHJlZ2lzdGVyKSwgc28gSSBkZWxldGVkIHRoYXQgY29k
ZS4KKworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6
OmdlbmVyYXRlSW1wbCk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2Fz
ZS5jcHA6CisgICAgICAgIChKU0M6OkdldHRlclNldHRlckFjY2Vzc0Nhc2U6OmVtaXRET01KSVRH
ZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcDoKKyAgICAg
ICAgKEpTQzo6QWNjZXNzR2VuZXJhdGlvblN0YXRlOjptYWtlRGVmYXVsdFNjcmF0Y2hBbGxvY2F0
b3IpOgorICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKiBqaXQvSW50cmlu
c2ljRW1pdHRlci5jcHA6CisgICAgICAgIChKU0M6OkludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6
OmVtaXRJbnRyaW5zaWNHZXR0ZXIpOgorCiAyMDIxLTEwLTExICBHZXphIExvcmUgIDxnbG9yZUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdW0FSTXY3XSBNYWtlIExMSW50IENTUiBzYXZlL3Jl
c3RvcmUgb3JkZXIgbWF0Y2ggdGhlIEpJVHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA5OCwxNCArMTA5OCw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAg
ICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwogICAgICAgICBmYWxsVGhyb3VnaC5h
cHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFNjb3BlZEFyZ3VtZW50c1R5cGUpKSk7CiAKLSAgICAg
ICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0
ZXJzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAg
ICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLnByb3BlcnR5UmVncygpKTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9H
UFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZv
Lm1fc3R1YkluZm9HUFIpOwotICAgICAgICBBU1NFUlQoc3R1YkluZm8ubV9hcnJheVByb2ZpbGVH
UFIgPT0gSW52YWxpZEdQUlJlZyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIp
OworICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yID0gc3RhdGUubWFr
ZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogICAgICAgICAKICAgICAgICAg
R1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwogICAg
ICAgICBHUFJSZWcgc2NyYXRjaDNHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7
CkBAIC0xMTk4LDE0ICsxMTkxLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFy
ZCgKICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNB
cnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAg
c3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFi
b3ZlT3JFcXVhbCwgcHJvcGVydHlHUFIsIHNjcmF0Y2hHUFIpKTsKIAotICAgICAgICBTY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAg
ICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2Nh
dG9yLmxvY2sodmFsdWVSZWdzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJv
cGVydHlSZWdzKCkpOwotICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZh
bGlkR1BSUmVnKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5m
b0dQUik7Ci0gICAgICAgIEFTU0VSVChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiA9PSBJbnZh
bGlkR1BSUmVnKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAg
IFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3IgPSBzdGF0ZS5tYWtlRGVmYXVsdFNj
cmF0Y2hBbGxvY2F0b3Ioc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKIAogICAgICAgICBTY3JhdGNoUmVnaXN0
ZXJBbGxvY2F0b3I6OlByZXNlcnZlZFN0YXRlIHByZXNlcnZlZFN0YXRlID0gYWxsb2NhdG9yLnBy
ZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQdXNoaW5nKApAQCAtMTI4NCwxNCArMTI3MCw3IEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAKICAgICAgICAgZmFsbFRocm91Z2gu
YXBwZW5kKGppdC5icmFuY2hJZk5vdFN0cmluZyhiYXNlR1BSKSk7CiAKLSAgICAgICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAgICAgIGFsbG9j
YXRvci5sb2NrKHZhbHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBy
b3BlcnR5UmVncygpKTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52
YWxpZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1Yklu
Zm9HUFIpOwotICAgICAgICBBU1NFUlQoc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIgPT0gSW52
YWxpZEdQUlJlZyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOworICAgICAg
ICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRT
Y3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIg
PSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBmYWlsQW5kSWdub3JlOwpAQCAtMTM0NSwxNCArMTMyNCw4IEBAIHZvaWQgQWNj
ZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjppbmRleGluZ1R5cGVBbmRNaXNjT2Zmc2V0KCkp
LCBzY3JhdGNoR1BSKTsKICAgICAgICAgaml0LmFuZDMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgc2NyYXRjaEdQUik7CiAKLSAgICAgICAgU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAgICAg
ICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAgICAgIGFsbG9jYXRv
ci5sb2NrKHZhbHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3Bl
cnR5UmVncygpKTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52YWxp
ZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9H
UFIpOwotICAgICAgICBBU1NFUlQoc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIgPT0gSW52YWxp
ZEdQUlJlZyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOworICAgICAgICBT
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRTY3Jh
dGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOworCiAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQog
ICAgICAgICBHUFJSZWcgc2NyYXRjaDNHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BS
KCk7CkBAIC0xNDUzLDE1ICsxNDI2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhH
dWFyZCgKIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGlzT3V0T2ZCb3VuZHM7CiAK
LSAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2Vk
UmVnaXN0ZXJzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7
Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5s
b2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1
YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAgICAgICBpZiAoc3R1YkluZm8ubV9hcnJheVByb2Zp
bGVHUFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJ
bmZvLm1fYXJyYXlQcm9maWxlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQ
Uik7CisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3IgPSBzdGF0ZS5t
YWtlRGVmYXVsdFNjcmF0Y2hBbGxvY2F0b3Ioc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBz
Y3JhdGNoMkdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAgICAgICAgU2Ny
YXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpQcmVzZXJ2ZWRTdGF0ZSBwcmVzZXJ2ZWRTdGF0ZTsKIApA
QCAtMTYzNCwxNSArMTU5OSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQo
CiAgICAgICAgIC8vIE91dE9mQm91bmRzIGJpdCBvZiBBcnJheVByb2ZpbGUgd2lsbCBiZSBzZXQg
aW4gdGhlIG9wZXJhdGlvbiBmdW5jdGlvbi4KICAgICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2gu
YXBwZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlH
UFIsIHNjcmF0Y2hHUFIpKTsKIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxs
b2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsK
LSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwotICAgICAg
ICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAg
ICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgIGlmIChz
dHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAg
YWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIpOwotICAgICAgICBhbGxv
Y2F0b3IubG9jayhzY3JhdGNoR1BSKTsKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9y
IGFsbG9jYXRvciA9IHN0YXRlLm1ha2VEZWZhdWx0U2NyYXRjaEFsbG9jYXRvcihzY3JhdGNoR1BS
KTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRj
aEdQUigpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJlc2VydmVkU3Rh
dGUgcHJlc2VydmVkU3RhdGUgPSBhbGxvY2F0b3IucHJlc2VydmVSZXVzZWRSZWdpc3RlcnNCeVB1
c2hpbmcoCkBAIC0xNzIxLDE0ICsxNjc4LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdp
dGhHdWFyZCgKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlUmVncy5w
YXlsb2FkR1BSKCk7CiAgICAgICAgIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Ig
YWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayhzdHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdz
KTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwotICAg
ICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgIEFT
U0VSVChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiA9PSBJbnZhbGlkR1BSUmVnKTsKLSAgICAg
ICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvciBhbGxvY2F0b3IgPSBzdGF0ZS5tYWtlRGVmYXVsdFNjcmF0Y2hBbGxvY2F0b3Ioc2Ny
YXRjaEdQUik7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0
b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAgICAgICAgIApAQCAtMjI4OCwxNiArMjIzOCw3IEBA
IHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgYm9vbCBy
ZWFsbG9jYXRpbmcgPSBhbGxvY2F0aW5nICYmIHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0
eSgpOwogICAgICAgICBib29sIGFsbG9jYXRpbmdJbmxpbmUgPSBhbGxvY2F0aW5nICYmICFzdHJ1
Y3R1cmUoKS0+Y291bGRIYXZlSW5kZXhpbmdIZWFkZXIoKTsKIAotICAgICAgICBTY3JhdGNoUmVn
aXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAg
ICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9y
LmxvY2sodmFsdWVSZWdzKTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKQot
ICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwotICAg
ICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgIGlm
IChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAg
ICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIpOwotICAgICAgICBh
bGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yIGFsbG9jYXRvciA9IHN0YXRlLm1ha2VEZWZhdWx0U2NyYXRjaEFsbG9jYXRvcihzY3JhdGNo
R1BSKTsKIAogICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUjIgPSBJbnZhbGlkR1BSUmVnOwogICAg
ICAgICBHUFJSZWcgc2NyYXRjaEdQUjMgPSBJbnZhbGlkR1BSUmVnOwpAQCAtMjQ0OSwyMyArMjM5
MCwxMiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lCiAgICAgfQog
CiAgICAgY2FzZSBEZWxldGU6IHsKLSAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFs
bG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2so
c3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7
Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBpZiAoc3R1YkluZm8u
bV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxv
Y2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgIEFTU0VSVChzdHViSW5mby5tX2Fy
cmF5UHJvZmlsZUdQUiA9PSBJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2so
c2NyYXRjaEdQUik7CiAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHJhbnNpdGlvbldhdGNo
cG9pbnRTZXRIYXNCZWVuSW52YWxpZGF0ZWQoKSk7CiAgICAgICAgIEFTU0VSVChuZXdTdHJ1Y3R1
cmUoKS0+dHJhbnNpdGlvbktpbmQoKSA9PSBUcmFuc2l0aW9uS2luZDo6UHJvcGVydHlEZWxldGlv
bik7CiAgICAgICAgIEFTU0VSVChiYXNlR1BSICE9IHNjcmF0Y2hHUFIpOwogICAgICAgICBBU1NF
UlQoIXZhbHVlUmVncy51c2VzKGJhc2VHUFIpKTsKICAgICAgICAgQVNTRVJUKCF2YWx1ZVJlZ3Mu
dXNlcyhzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpQ
cmVzZXJ2ZWRTdGF0ZSBwcmVzZXJ2ZWRTdGF0ZSA9Ci0gICAgICAgICAgICBhbGxvY2F0b3IucHJl
c2VydmVSZXVzZWRSZWdpc3RlcnNCeVB1c2hpbmcoaml0LCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3I6OkV4dHJhU3RhY2tTcGFjZTo6Tm9FeHRyYVNwYWNlKTsKLQogICAgICAgICBqaXQubW92ZVZh
bHVlKEpTVmFsdWUoKSwgdmFsdWVSZWdzKTsKIAogICAgICAgICBpZiAoaXNJbmxpbmVPZmZzZXQo
bV9vZmZzZXQpKSB7CkBAIC0yNDg5LDcgKzI0MTksNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVy
YXRlSW1wbChBY2Nlc3NHZW5lCiAKICAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMih0cnVlKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CiAKLSAgICAgICAgYWxs
b2NhdG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBwcmVzZXJ2ZWRTdGF0
ZSk7CiAgICAgICAgIHN0YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZS5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM2LDEzICsxMzYsNyBAQCB2b2lkIEdldHRlclNldHRlckFjY2Vzc0Nhc2U6OmVtaXRE
T01KSVRHCiAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOwogICAgIFZlY3RvcjxTbmlwcGV0
UGFyYW1zOjpWYWx1ZT4gcmVnczsKIAotICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxv
Y2F0b3Ioc3R1YkluZm8udXNlZFJlZ2lzdGVycyk7Ci0gICAgYWxsb2NhdG9yLmxvY2soc3R1Yklu
Zm8uYmFzZVJlZ3MoKSk7Ci0gICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKLSAgICBpZiAo
c3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICBhbGxvY2F0
b3IubG9jayhzdHViSW5mby5tX3N0dWJJbmZvR1BSKTsKLSAgICBBU1NFUlQoc3R1YkluZm8ubV9h
cnJheVByb2ZpbGVHUFIgPT0gSW52YWxpZEdQUlJlZyk7Ci0gICAgYWxsb2NhdG9yLmxvY2soc2Ny
YXRjaEdQUik7CisgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvciA9IHN0YXRl
Lm1ha2VEZWZhdWx0U2NyYXRjaEFsbG9jYXRvcihzY3JhdGNoR1BSKTsKIAogICAgIEdQUlJlZyBw
YXJhbUJhc2VHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIEdQUlJlZyBwYXJhbUdsb2JhbE9iamVj
dEdQUiA9IEludmFsaWRHUFJSZWc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1Myw2ICsyNTMsMjIgQEAgdm9pZCBBY2Nlc3NHZW5lcmF0aW9uU3Rh
dGU6OmVtaXRFeHBsaWNpdAogICAgIH0KIH0KIAorU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIEFj
Y2Vzc0dlbmVyYXRpb25TdGF0ZTo6bWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKEdQUlJlZyBl
eHRyYVRvTG9jaykKK3sKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0
dWJJbmZvLT51c2VkUmVnaXN0ZXJzKTsKKyAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby0+YmFz
ZVJlZ3MoKSk7CisgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKKyAgICBhbGxvY2F0b3Iu
bG9jayh1LnRoaXNHUFIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgYWxsb2NhdG9yLmxv
Y2soc3R1YkluZm8tPnYudGhpc1RhZ0dQUik7CisjZW5kaWYKKyAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8tPm1f
YXJyYXlQcm9maWxlR1BSKTsKKyAgICBhbGxvY2F0b3IubG9jayhleHRyYVRvTG9jayk7CisKKyAg
ICByZXR1cm4gYWxsb2NhdG9yOworfQorCiBQb2x5bW9ycGhpY0FjY2Vzczo6UG9seW1vcnBoaWNB
Y2Nlc3MoKSB7IH0KIFBvbHltb3JwaGljQWNjZXNzOjp+UG9seW1vcnBoaWNBY2Nlc3MoKSB7IH0K
IApAQCAtNDgzLDIzICs0OTksOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGlj
QWNjZXNzCiAgICAgfQogICAgIG1fbGlzdC5yZXNpemUoZHN0SW5kZXgpOwogCi0gICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKKyAg
ICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRT
Y3JhdGNoQWxsb2NhdG9yKCk7CiAgICAgc3RhdGUuYWxsb2NhdG9yID0gJmFsbG9jYXRvcjsKLSAg
ICBhbGxvY2F0b3IubG9jayhzdGF0ZS5iYXNlR1BSKTsKLSAgICBpZiAoc3RhdGUudS50aGlzR1BS
ICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0YXRlLnUudGhpc0dQ
Uik7Ci0gICAgaWYgKHN0YXRlLnZhbHVlUmVncykKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3Rh
dGUudmFsdWVSZWdzKTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIGFsbG9jYXRvci5sb2Nr
KHN0dWJJbmZvLmJhc2VUYWdHUFIpOwotICAgIGlmIChzdHViSW5mby52LnRoaXNUYWdHUFIgIT0g
SW52YWxpZEdQUlJlZykKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8udi50aGlzVGFn
R1BSKTsKLSNlbmRpZgotICAgIGlmIChzdHViSW5mby5tX3N0dWJJbmZvR1BSICE9IEludmFsaWRH
UFJSZWcpCi0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIpOwot
ICAgIGlmIChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAg
ICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUik7Ci0KICAgICBz
dGF0ZS5zY3JhdGNoR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwogCiAgICAg
Zm9yIChhdXRvJiBhY2Nlc3NDYXNlIDogY2FzZXMpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCShyZXZpc2lvbiAyODM5
MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBjbGFzcyBDb2RlQmxvY2s7CiBjbGFz
cyBQb2x5bW9ycGhpY0FjY2VzczsKIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvOwogY2xhc3MgV2F0
Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOwotY2xhc3MgU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yOwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihQb2x5bW9ycGhp
Y0FjY2Vzcyk7CiAKQEAgLTI3Nyw2ICsyNzYsOCBAQCBzdHJ1Y3QgQWNjZXNzR2VuZXJhdGlvblN0
YXRlIHsKICAgICAgICAgbV9zcGlsbFN0YXRlRm9ySlNHZXR0ZXJTZXR0ZXIgPSBzcGlsbFN0YXRl
OwogICAgIH0KICAgICBTcGlsbFN0YXRlIHNwaWxsU3RhdGVGb3JKU0dldHRlclNldHRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc3BpbGxTdGF0ZUZvckpTR2V0dGVyU2V0dGVyOyB9CisKKyAgICBTY3Jh
dGNoUmVnaXN0ZXJBbGxvY2F0b3IgbWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKEdQUlJlZyBl
eHRyYVRvTG9jayA9IEludmFsaWRHUFJSZWcpOwogICAgIAogcHJpdmF0ZToKICAgICBjb25zdCBS
ZWdpc3RlclNldCYgbGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVBdEV4Y2VwdGlvbkhhbmRsaW5nQ2Fs
bFNpdGUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNF
bWl0dGVyLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDIwICsxMzksNyBA
QCB2b2lkIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6OmVtaXRJbnRyCiAgICAgY2FzZSBVbmRl
cnNjb3JlUHJvdG9JbnRyaW5zaWM6IHsKICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJ
bmZvID0gKnN0YXRlLnN0dWJJbmZvOwogICAgICAgICBpZiAoc3R1YkluZm8udGhpc1ZhbHVlSXNJ
blRoaXNHUFIoKSkgewotICAgICAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9j
YXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGFsbG9jYXRvci5sb2Nr
KHN0YXRlLnNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3RhdGUuYmFz
ZUdQUik7Ci0gICAgICAgICAgICBhbGxvY2F0b3IubG9jayhzdGF0ZS51LnRoaXNHUFIpOwotICAg
ICAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0
KQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVRhZ0dQUik7Ci0gICAg
ICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby52LnRoaXNUYWdHUFIpOwotI2VuZGlmCi0g
ICAgICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQot
ICAgICAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIpOwot
ICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fYXJyYXlQcm9maWxlR1BSICE9IEludmFsaWRHUFJS
ZWcpCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9hcnJheVByb2Zp
bGVHUFIpOwotCisgICAgICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9y
ID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHN0YXRlLnNjcmF0Y2hHUFIpOwog
ICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRj
aEdQUigpOwogICAgICAgICAgICAgYXV0byBwcmVzZXJ2ZWRTdGF0ZSA9IGFsbG9jYXRvci5wcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOwogCg==
</data>
<flag name="review"
          id="464892"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440838</attachid>
            <date>2021-10-11 14:43:08 -0700</date>
            <delta_ts>2021-10-11 17:33:26 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>14804</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDIxLTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFNoYXJlIG1vcmUgY29kZSB0aGF0IHVzZXMgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGluIHRo
ZSBJQ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTEyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNjYzNzQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBXZSBoYWQgdGhlIHNhbWUgY29kZSB0byBhbGxv
Y2F0ZSBhIHNjcmF0Y2ggcmVnaXN0ZXIgYWxsb2NhdG9yIGNvcHkgcGFzdGVkCisgICAgICAgIGFs
bCBvdmVyIHRoZSBJQyBjb2RlLiBUaGlzIHBhdGNoIHJlZmFjdG9ycyB0aGF0IHRvIHVzZSBhIHNo
YXJlZCBoZWxwZXIuCisgICAgICAgIAorICAgICAgICBBbHNvLCBEZWxldGUgd2FzIHVzaW5nIGEg
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGZvciBubyByZWFzb24gKGl0IG5ldmVyCisgICAgICAg
IGFsbG9jYXRlZCBhIHNjcmF0Y2ggcmVnaXN0ZXIpLCBzbyBJIGRlbGV0ZWQgdGhhdCBjb2RlLgor
CisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2Vu
ZXJhdGVJbXBsKToKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6ZW1pdERPTUpJVEdldHRl
cik6CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpBY2Nlc3NHZW5lcmF0aW9uU3RhdGU6Om1ha2VEZWZhdWx0U2NyYXRjaEFsbG9jYXRvcik6
CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKToKKyAgICAgICAg
KiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNF
bWl0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZTo6ZW1p
dEludHJpbnNpY0dldHRlcik6CisKIDIwMjEtMTAtMTEgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0pTQ11bQVJNdjddIE1ha2UgTExJbnQgQ1NSIHNhdmUvcmVzdG9y
ZSBvcmRlciBtYXRjaCB0aGUgSklUcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FjY2Vzc0Nhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDk4
LDE0ICsxMDk4LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAg
ICAgaml0LmxvYWQ4KENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OnR5cGVJ
bmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgIGZhbGxUaHJvdWdoLmFwcGVu
ZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpKTsKIAotICAgICAgICBT
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMp
OwotICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAg
YWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1Yklu
Zm8ucHJvcGVydHlSZWdzKCkpOwotICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAh
PSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9z
dHViSW5mb0dQUik7Ci0gICAgICAgIEFTU0VSVChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiA9
PSBJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7Cisg
ICAgICAgIGF1dG8gYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9y
KHNjcmF0Y2hHUFIpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxs
b2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwogICAgICAgICBHUFJSZWcgc2NyYXRjaDNHUFIg
PSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CkBAIC0xMTk4LDE0ICsxMTkxLDcgQEAg
dm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LmxvYWQzMihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9m
TGVuZ3RoKCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBw
ZW5kKGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlHUFIs
IHNjcmF0Y2hHUFIpKTsKIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2Nh
dG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhzdHVi
SW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwotICAgICAgICBp
ZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAg
YWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgIEFTU0VSVChz
dHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiA9PSBJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgYWxs
b2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAgIGF1dG8gYWxsb2NhdG9yID0gc3RhdGUu
bWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogICAgICAgICBHUFJSZWcg
c2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAKICAgICAgICAg
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpQcmVzZXJ2ZWRTdGF0ZSBwcmVzZXJ2ZWRTdGF0ZSA9
IGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZygKQEAgLTEyODQsMTQg
KzEyNzAsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAg
IGZhbGxUaHJvdWdoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RTdHJpbmcoYmFzZUdQUikpOwogCi0g
ICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8udXNlZFJl
Z2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOwot
ICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayhzdHViSW5mby5wcm9wZXJ0eVJlZ3MoKSk7Ci0gICAgICAgIGlmIChzdHViSW5mby5tX3N0dWJJ
bmZvR1BSICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICBhbGxvY2F0b3IubG9jayhzdHVi
SW5mby5tX3N0dWJJbmZvR1BSKTsKLSAgICAgICAgQVNTRVJUKHN0dWJJbmZvLm1fYXJyYXlQcm9m
aWxlR1BSID09IEludmFsaWRHUFJSZWcpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNo
R1BSKTsKKyAgICAgICAgYXV0byBhbGxvY2F0b3IgPSBzdGF0ZS5tYWtlRGVmYXVsdFNjcmF0Y2hB
bGxvY2F0b3Ioc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IGFsbG9j
YXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0IGZhaWxBbmRJZ25vcmU7CkBAIC0xMzQ1LDE0ICsxMzI0LDggQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LmxvYWQ4KENDYWxsSGVscGVyczo6QWRk
cmVzcyhiYXNlR1BSLCBKU0NlbGw6OmluZGV4aW5nVHlwZUFuZE1pc2NPZmZzZXQoKSksIHNjcmF0
Y2hHUFIpOwogICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSW5k
ZXhpbmdTaGFwZU1hc2spLCBzY3JhdGNoR1BSKTsKIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJB
bGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxv
Y2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2so
dmFsdWVSZWdzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdz
KCkpOwotICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVn
KQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0g
ICAgICAgIEFTU0VSVChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiA9PSBJbnZhbGlkR1BSUmVn
KTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAgIGF1dG8gYWxs
b2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwor
CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hH
UFIoKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBHUFJSZWcgc2NyYXRjaDNHUFIg
PSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CkBAIC0xNDUzLDE1ICsxNDI2LDcgQEAg
dm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKIAogICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0IGlzT3V0T2ZCb3VuZHM7CiAKLSAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxs
b2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAgICAgICAgYWxsb2Nh
dG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygp
KTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykK
LSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAg
ICAgICBpZiAoc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIgIT0gSW52YWxpZEdQUlJlZykKLSAg
ICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fYXJyYXlQcm9maWxlR1BSKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAgIGF1dG8gYWxsb2NhdG9y
ID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogICAgICAg
ICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAg
ICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJlc2VydmVkU3RhdGUgcHJlc2VydmVk
U3RhdGU7CiAKQEAgLTE2MzQsMTUgKzE1OTksNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRl
V2l0aEd1YXJkKAogICAgICAgICAvLyBPdXRPZkJvdW5kcyBiaXQgb2YgQXJyYXlQcm9maWxlIHdp
bGwgYmUgc2V0IGluIHRoZSBvcGVyYXRpb24gZnVuY3Rpb24uCiAgICAgICAgIHN0YXRlLmZhaWxB
bmRSZXBhdGNoLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5R1BSLCBzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxs
b2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAgICAgICAgYWxsb2Nh
dG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygp
KTsKLSAgICAgICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykK
LSAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAg
ICAgICBpZiAoc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIgIT0gSW52YWxpZEdQUlJlZykKLSAg
ICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLm1fYXJyYXlQcm9maWxlR1BSKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CisgICAgICAgIGF1dG8gYWxsb2NhdG9y
ID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogICAgICAg
ICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAK
ICAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpQcmVzZXJ2ZWRTdGF0ZSBwcmVzZXJ2
ZWRTdGF0ZSA9IGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZygKQEAg
LTE3MjEsMTQgKzE2NzgsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAog
ICAgICAgICAKICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIo
KTsKICAgICAgICAgCi0gICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Io
c3R1YkluZm8udXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZv
LmJhc2VSZWdzKCkpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwotICAgICAg
ICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5wcm9wZXJ0eVJlZ3MoKSk7Ci0gICAgICAgIGlmIChz
dHViSW5mby5tX3N0dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICBhbGxv
Y2F0b3IubG9jayhzdHViSW5mby5tX3N0dWJJbmZvR1BSKTsKLSAgICAgICAgQVNTRVJUKHN0dWJJ
bmZvLm1fYXJyYXlQcm9maWxlR1BSID09IEludmFsaWRHUFJSZWcpOwotICAgICAgICBhbGxvY2F0
b3IubG9jayhzY3JhdGNoR1BSKTsKKyAgICAgICAgYXV0byBhbGxvY2F0b3IgPSBzdGF0ZS5tYWtl
RGVmYXVsdFNjcmF0Y2hBbGxvY2F0b3Ioc2NyYXRjaEdQUik7CiAgICAgICAgIAogICAgICAgICBH
UFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAgICAg
ICAgIApAQCAtMjI4OCwxNiArMjIzOCw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBs
KEFjY2Vzc0dlbmUKICAgICAgICAgYm9vbCByZWFsbG9jYXRpbmcgPSBhbGxvY2F0aW5nICYmIHN0
cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpOwogICAgICAgICBib29sIGFsbG9jYXRpbmdJ
bmxpbmUgPSBhbGxvY2F0aW5nICYmICFzdHJ1Y3R1cmUoKS0+Y291bGRIYXZlSW5kZXhpbmdIZWFk
ZXIoKTsKIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJ
bmZvLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNl
UmVncygpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKLSAgICAgICAgaWYg
KHN0dWJJbmZvLnByb3BlcnR5UmVncygpKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1
YkluZm8ucHJvcGVydHlSZWdzKCkpOwotICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5mb0dQ
UiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8u
bV9zdHViSW5mb0dQUik7Ci0gICAgICAgIGlmIChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQUiAh
PSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9h
cnJheVByb2ZpbGVHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKKyAg
ICAgICAgYXV0byBhbGxvY2F0b3IgPSBzdGF0ZS5tYWtlRGVmYXVsdFNjcmF0Y2hBbGxvY2F0b3Io
c2NyYXRjaEdQUik7CiAKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIyID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIzID0gSW52YWxpZEdQUlJlZzsKQEAgLTI0NDks
MjMgKzIzOTAsMTIgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQog
ICAgIH0KIAogICAgIGNhc2UgRGVsZXRlOiB7Ci0gICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvciBhbGxvY2F0b3Ioc3R1YkluZm8udXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRv
ci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1
ZVJlZ3MpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhiYXNlR1BSKTsKLSAgICAgICAgaWYgKHN0
dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIGFsbG9j
YXRvci5sb2NrKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAgICAgICBBU1NFUlQoc3R1Yklu
Zm8ubV9hcnJheVByb2ZpbGVHUFIgPT0gSW52YWxpZEdQUlJlZyk7Ci0gICAgICAgIGFsbG9jYXRv
ci5sb2NrKHNjcmF0Y2hHUFIpOwogICAgICAgICBBU1NFUlQoc3RydWN0dXJlKCktPnRyYW5zaXRp
b25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVkKCkpOwogICAgICAgICBBU1NFUlQobmV3
U3RydWN0dXJlKCktPnRyYW5zaXRpb25LaW5kKCkgPT0gVHJhbnNpdGlvbktpbmQ6OlByb3BlcnR5
RGVsZXRpb24pOwogICAgICAgICBBU1NFUlQoYmFzZUdQUiAhPSBzY3JhdGNoR1BSKTsKICAgICAg
ICAgQVNTRVJUKCF2YWx1ZVJlZ3MudXNlcyhiYXNlR1BSKSk7CiAgICAgICAgIEFTU0VSVCghdmFs
dWVSZWdzLnVzZXMoc2NyYXRjaEdQUikpOwogCi0gICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvcjo6UHJlc2VydmVkU3RhdGUgcHJlc2VydmVkU3RhdGUgPQotICAgICAgICAgICAgYWxsb2Nh
dG9yLnByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQdXNoaW5nKGppdCwgU2NyYXRjaFJlZ2lzdGVy
QWxsb2NhdG9yOjpFeHRyYVN0YWNrU3BhY2U6Ok5vRXh0cmFTcGFjZSk7Ci0KICAgICAgICAgaml0
Lm1vdmVWYWx1ZShKU1ZhbHVlKCksIHZhbHVlUmVncyk7CiAKICAgICAgICAgaWYgKGlzSW5saW5l
T2Zmc2V0KG1fb2Zmc2V0KSkgewpAQCAtMjQ4OSw3ICsyNDE5LDYgQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogCiAgICAgICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIodHJ1ZSksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogCi0gICAg
ICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKGppdCwgcHJlc2Vy
dmVkU3RhdGUpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNj
ZXNzQ2FzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNiwxMyArMTM2LDcgQEAgdm9pZCBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNl
OjplbWl0RE9NSklURwogICAgIFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsKICAgICBWZWN0b3I8
U25pcHBldFBhcmFtczo6VmFsdWU+IHJlZ3M7CiAKLSAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwotICAgIGFsbG9jYXRvci5sb2Nr
KHN0dWJJbmZvLmJhc2VSZWdzKCkpOwotICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7Ci0g
ICAgaWYgKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAg
YWxsb2NhdG9yLmxvY2soc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgQVNTRVJUKHN0dWJJ
bmZvLm1fYXJyYXlQcm9maWxlR1BSID09IEludmFsaWRHUFJSZWcpOwotICAgIGFsbG9jYXRvci5s
b2NrKHNjcmF0Y2hHUFIpOworICAgIGF1dG8gYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRT
Y3JhdGNoQWxsb2NhdG9yKHNjcmF0Y2hHUFIpOwogCiAgICAgR1BSUmVnIHBhcmFtQmFzZUdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgR1BSUmVnIHBhcmFtR2xvYmFsT2JqZWN0R1BSID0gSW52YWxp
ZEdQUlJlZzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1BvbHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUzLDYgKzI1MywyMiBAQCB2b2lkIEFjY2Vzc0dlbmVyYXRpb25TdGF0ZTo6ZW1pdEV4cGxp
Y2l0CiAgICAgfQogfQogCitTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgQWNjZXNzR2VuZXJhdGlv
blN0YXRlOjptYWtlRGVmYXVsdFNjcmF0Y2hBbGxvY2F0b3IoR1BSUmVnIGV4dHJhVG9Mb2NrKQor
eworICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8tPnVzZWRS
ZWdpc3RlcnMpOworICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLT5iYXNlUmVncygpKTsKKyAg
ICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgIGFsbG9jYXRvci5sb2NrKHUudGhpc0dQ
Uik7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby0+
di50aGlzVGFnR1BSKTsKKyNlbmRpZgorICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLT5tX3N0
dWJJbmZvR1BSKTsKKyAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby0+bV9hcnJheVByb2ZpbGVH
UFIpOworICAgIGFsbG9jYXRvci5sb2NrKGV4dHJhVG9Mb2NrKTsKKworICAgIHJldHVybiBhbGxv
Y2F0b3I7Cit9CisKIFBvbHltb3JwaGljQWNjZXNzOjpQb2x5bW9ycGhpY0FjY2VzcygpIHsgfQog
UG9seW1vcnBoaWNBY2Nlc3M6On5Qb2x5bW9ycGhpY0FjY2VzcygpIHsgfQogCkBAIC00ODMsMjMg
KzQ5OSw4IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3MKICAgICB9
CiAgICAgbV9saXN0LnJlc2l6ZShkc3RJbmRleCk7CiAKLSAgICBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOworICAgIGF1dG8gYWxsb2Nh
dG9yID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKCk7CiAgICAgc3RhdGUuYWxs
b2NhdG9yID0gJmFsbG9jYXRvcjsKLSAgICBhbGxvY2F0b3IubG9jayhzdGF0ZS5iYXNlR1BSKTsK
LSAgICBpZiAoc3RhdGUudS50aGlzR1BSICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgIGFsbG9j
YXRvci5sb2NrKHN0YXRlLnUudGhpc0dQUik7Ci0gICAgaWYgKHN0YXRlLnZhbHVlUmVncykKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soc3RhdGUudmFsdWVSZWdzKTsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VUYWdHUFIpOwotICAgIGlmIChz
dHViSW5mby52LnRoaXNUYWdHUFIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgYWxsb2NhdG9y
LmxvY2soc3R1YkluZm8udi50aGlzVGFnR1BSKTsKLSNlbmRpZgotICAgIGlmIChzdHViSW5mby5t
X3N0dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAgIGlmIChzdHViSW5mby5tX2FycmF5UHJvZmlsZUdQ
UiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5tX2Fy
cmF5UHJvZmlsZUdQUik7Ci0KICAgICBzdGF0ZS5zY3JhdGNoR1BSID0gYWxsb2NhdG9yLmFsbG9j
YXRlU2NyYXRjaEdQUigpOwogCiAgICAgZm9yIChhdXRvJiBhY2Nlc3NDYXNlIDogY2FzZXMpIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBA
QCBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBQb2x5bW9ycGhpY0FjY2VzczsKIGNsYXNzIFN0cnVj
dHVyZVN0dWJJbmZvOwogY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOwotY2xh
c3MgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hF
QVBfSURFTlRJRklFUihQb2x5bW9ycGhpY0FjY2Vzcyk7CiAKQEAgLTI3Nyw2ICsyNzYsOCBAQCBz
dHJ1Y3QgQWNjZXNzR2VuZXJhdGlvblN0YXRlIHsKICAgICAgICAgbV9zcGlsbFN0YXRlRm9ySlNH
ZXR0ZXJTZXR0ZXIgPSBzcGlsbFN0YXRlOwogICAgIH0KICAgICBTcGlsbFN0YXRlIHNwaWxsU3Rh
dGVGb3JKU0dldHRlclNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3BpbGxTdGF0ZUZvckpTR2V0
dGVyU2V0dGVyOyB9CisKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgbWFrZURlZmF1bHRT
Y3JhdGNoQWxsb2NhdG9yKEdQUlJlZyBleHRyYVRvTG9jayA9IEludmFsaWRHUFJSZWcpOwogICAg
IAogcHJpdmF0ZToKICAgICBjb25zdCBSZWdpc3RlclNldCYgbGl2ZVJlZ2lzdGVyc1RvUHJlc2Vy
dmVBdEV4Y2VwdGlvbkhhbmRsaW5nQ2FsbFNpdGUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM5LDIwICsxMzksNyBAQCB2b2lkIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6
OmVtaXRJbnRyCiAgICAgY2FzZSBVbmRlcnNjb3JlUHJvdG9JbnRyaW5zaWM6IHsKICAgICAgICAg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gKnN0YXRlLnN0dWJJbmZvOwogICAgICAgICBp
ZiAoc3R1YkluZm8udGhpc1ZhbHVlSXNJblRoaXNHUFIoKSkgewotICAgICAgICAgICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51c2VkUmVnaXN0ZXJzKTsKLSAg
ICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0YXRlLnNjcmF0Y2hHUFIpOwotICAgICAgICAgICAg
YWxsb2NhdG9yLmxvY2soc3RhdGUuYmFzZUdQUik7Ci0gICAgICAgICAgICBhbGxvY2F0b3IubG9j
ayhzdGF0ZS51LnRoaXNHUFIpOwotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdz
KTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1
YkluZm8uYmFzZVRhZ0dQUik7Ci0gICAgICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby52
LnRoaXNUYWdHUFIpOwotI2VuZGlmCi0gICAgICAgICAgICBpZiAoc3R1YkluZm8ubV9zdHViSW5m
b0dQUiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLm1fc3R1YkluZm9HUFIpOwotICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fYXJyYXlQ
cm9maWxlR1BSICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLmxv
Y2soc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIpOwotCisgICAgICAgICAgICBhdXRvIGFsbG9j
YXRvciA9IHN0YXRlLm1ha2VEZWZhdWx0U2NyYXRjaEFsbG9jYXRvcihzdGF0ZS5zY3JhdGNoR1BS
KTsKICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNj
cmF0Y2hHUFIoKTsKICAgICAgICAgICAgIGF1dG8gcHJlc2VydmVkU3RhdGUgPSBhbGxvY2F0b3Iu
cHJlc2VydmVSZXVzZWRSZWdpc3RlcnNCeVB1c2hpbmcoaml0LCBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3I6OkV4dHJhU3RhY2tTcGFjZTo6Tm9FeHRyYVNwYWNlKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>