<?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>235201</bug_id>
          
          <creation_ts>2022-01-13 13:46:29 -0800</creation_ts>
          <short_desc>Link Wasm code on the same thread that JITs</short_desc>
          <delta_ts>2022-01-13 18:42:16 -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>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>
          
          <blocked>235192</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1830694</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-01-13 13:46:29 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830709</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-13 14:04:56 -0800</bug_when>
    <thetext>THAT IS AWESOME!!!!!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830726</commentid>
    <comment_count>2</comment_count>
      <attachid>449114</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-01-13 14:42:20 -0800</bug_when>
    <thetext>Created attachment 449114
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830734</commentid>
    <comment_count>3</comment_count>
      <attachid>449114</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-13 14:56:00 -0800</bug_when>
    <thetext>Comment on attachment 449114
patch

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

r=me

&gt; Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:201
&gt; +        auto result = m_embedderToWasmInternalFunctions.add(functionIndex, std::pair&lt;std::unique_ptr&lt;LinkBuffer&gt;, std::unique_ptr&lt;InternalFunction&gt;&gt; { WTFMove(linkBuffer), WTFMove(embedderToWasmInternalFunction) });

I think you can use `std::pair { ... }` instead of `std::pair&lt;std::unique_ptr&lt;LinkBuffer&gt;, std::unique_ptr&lt;InternalFunction&gt;&gt;`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830735</commentid>
    <comment_count>4</comment_count>
      <attachid>449114</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-01-13 14:59:06 -0800</bug_when>
    <thetext>Comment on attachment 449114
patch

r=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830741</commentid>
    <comment_count>5</comment_count>
      <attachid>449114</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-01-13 15:14:23 -0800</bug_when>
    <thetext>Comment on attachment 449114
patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:201
&gt;&gt; +        auto result = m_embedderToWasmInternalFunctions.add(functionIndex, std::pair&lt;std::unique_ptr&lt;LinkBuffer&gt;, std::unique_ptr&lt;InternalFunction&gt;&gt; { WTFMove(linkBuffer), WTFMove(embedderToWasmInternalFunction) });
&gt; 
&gt; I think you can use `std::pair { ... }` instead of `std::pair&lt;std::unique_ptr&lt;LinkBuffer&gt;, std::unique_ptr&lt;InternalFunction&gt;&gt;`.

Nice. I didn&apos;t know that. I first tried just &quot;{ ... }&quot;, but that failed, so I went with the full type declaration. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830742</commentid>
    <comment_count>6</comment_count>
      <attachid>449118</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-01-13 15:14:56 -0800</bug_when>
    <thetext>Created attachment 449118
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830782</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-13 18:41:16 -0800</bug_when>
    <thetext>Committed r288002 (246028@main): &lt;https://commits.webkit.org/246028@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449118.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830783</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-13 18:42:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/87582343&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449114</attachid>
            <date>2022-01-13 14:42:20 -0800</date>
            <delta_ts>2022-01-13 15:14:56 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>10416</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3OTkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDIyLTAxLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IExpbmsgV2FzbSBjb2RlIG9uIHRoZSBzYW1lIHRocmVhZCB0aGF0IEpJVHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJlcGFyaW5nIHVz
IGZvciB0aGUgY2hhbmdlcyB0aGF0J2xsIGJlIG5lZWRlZCBieQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTkyLgorICAgICAgICAKKyAgICAgICAg
SXQgc2hvdWxkIGFsc28gYmUgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50LCBhcyB3ZSdyZSBub3cg
bGlua2luZworICAgICAgICBpbiBwYXJhbGxlbCBpbnN0ZWFkIG9mIGRvaW5nIGl0IGFmdGVyIGFs
bCBjb21waWxhdGlvbnMgaGF2ZSBmaW5pc2hlZC4KKworICAgICAgICAqIHdhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpwYXJzZUFuZENvbXBpbGVCMyk6Cisg
ICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJCUVBs
YW46OnByZXBhcmVJbXBsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6Y29tcGlsZUZ1
bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxh
dGlvbik6CisgICAgICAgIChKU0M6Oldhc206OkJCUVBsYW46OmluaXRpYWxpemVDYWxsZWVzKToK
KyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmg6CisKIDIwMjItMDEtMTMgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgZmV3IE9iamVjdGl2
ZS1DIG9iamVjdCBsZWFrcyBkdWUgdG8gZWFybHkgcmV0dXJucyBpbiBgaW5pdGAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDI4Nzk5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE1MCw3ICszMTUwLDYgQEAgRXhwZWN0ZWQ8
c3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3RpbwogICAgIGlmIChzaG91bGREdW1wSVJGb3Io
ZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpKSkKICAgICAgICAgcHJv
Y2VkdXJlLnNldFNob3VsZER1bXBJUigpOwogCi0gICAgY29tcGlsYXRpb25Db250ZXh0Lndhc21F
bnRyeXBvaW50SklUID0gbWFrZVVuaXF1ZTxDQ2FsbEhlbHBlcnM+KCk7CiAKICAgICBpZiAoT3B0
aW9uczo6dXNlU2FtcGxpbmdQcm9maWxlcigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gdGhpcyBiYXNlZCBvbiBWTSByZWxldmFudCBpbmZvLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAkocmV2aXNpb24gMjg3OTkzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MywxMiArNjMsMTQgQEAgYm9vbCBCQlFQbGFuOjpwcmVwYXJlSW1wbCgpCiB7CiAgICAgY29u
c3QgYXV0byYgZnVuY3Rpb25zID0gbV9tb2R1bGVJbmZvcm1hdGlvbi0+ZnVuY3Rpb25zOwogICAg
IGlmICghdHJ5UmVzZXJ2ZUNhcGFjaXR5KG1fd2FzbUludGVybmFsRnVuY3Rpb25zLCBmdW5jdGlv
bnMuc2l6ZSgpLCAiIFdlYkFzc2VtYmx5IGZ1bmN0aW9ucyIpCisgICAgICAgIHx8ICF0cnlSZXNl
cnZlQ2FwYWNpdHkobV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZmZXJzLCBmdW5jdGlvbnMu
c2l6ZSgpLCAiIGNvbXBpbGF0aW9uIGNvbnRleHRzIikKICAgICAgICAgfHwgIXRyeVJlc2VydmVD
YXBhY2l0eShtX2NvbXBpbGF0aW9uQ29udGV4dHMsIGZ1bmN0aW9ucy5zaXplKCksICIgY29tcGls
YXRpb24gY29udGV4dHMiKQogICAgICAgICB8fCAhdHJ5UmVzZXJ2ZUNhcGFjaXR5KG1fdGllclVw
Q291bnRzLCBmdW5jdGlvbnMuc2l6ZSgpLCAiIHRpZXItdXAgY291bnRzIikKICAgICAgICAgfHwg
IXRyeVJlc2VydmVDYXBhY2l0eShtX2FsbExvb3BFbnRyeXBvaW50cywgZnVuY3Rpb25zLnNpemUo
KSwgIiBsb29wIGVudHJ5cG9pbnRzIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1f
d2FzbUludGVybmFsRnVuY3Rpb25zLnJlc2l6ZShmdW5jdGlvbnMuc2l6ZSgpKTsKKyAgICBtX3dh
c21JbnRlcm5hbEZ1bmN0aW9uTGlua0J1ZmZlcnMucmVzaXplKGZ1bmN0aW9ucy5zaXplKCkpOwog
ICAgIG1fZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9ucy5yZXNpemUoZnVuY3Rpb25zLnNpemUoKSk7
CiAgICAgbV9jb21waWxhdGlvbkNvbnRleHRzLnJlc2l6ZShmdW5jdGlvbnMuc2l6ZSgpKTsKICAg
ICBtX3RpZXJVcENvdW50cy5yZXNpemUoZnVuY3Rpb25zLnNpemUoKSk7CkBAIC0xODIsMTIgKzE4
NCwyMSBAQCB2b2lkIEJCUVBsYW46OmNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmCiAgICAgICAg
IG1fdGllclVwQ291bnRzW2Z1bmN0aW9uSW5kZXhdID0gbnVsbHB0cjsKIAogICAgIG1fd2FzbUlu
dGVybmFsRnVuY3Rpb25zW2Z1bmN0aW9uSW5kZXhdID0gY29tcGlsZUZ1bmN0aW9uKGZ1bmN0aW9u
SW5kZXgsIG1fY29tcGlsYXRpb25Db250ZXh0c1tmdW5jdGlvbkluZGV4XSwgbV91bmxpbmtlZFdh
c21Ub1dhc21DYWxsc1tmdW5jdGlvbkluZGV4XSwgbV90aWVyVXBDb3VudHNbZnVuY3Rpb25JbmRl
eF0uZ2V0KCkpOworICAgIHsKKyAgICAgICAgYXV0byBsaW5rQnVmZmVyID0gbWFrZVVuaXF1ZTxM
aW5rQnVmZmVyPigqbV9jb21waWxhdGlvbkNvbnRleHRzW2Z1bmN0aW9uSW5kZXhdLndhc21FbnRy
eXBvaW50SklULCBudWxscHRyLCBMaW5rQnVmZmVyOjpQcm9maWxlOjpXYXNtLCBKSVRDb21waWxh
dGlvbkNhbkZhaWwpOworICAgICAgICBpZiAobGlua0J1ZmZlci0+aXNWYWxpZCgpKQorICAgICAg
ICAgICAgbV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZmZXJzW2Z1bmN0aW9uSW5kZXhdID0g
V1RGTW92ZShsaW5rQnVmZmVyKTsKKyAgICB9CiAKICAgICBpZiAobV9leHBvcnRlZEZ1bmN0aW9u
SW5kaWNlcy5jb250YWlucyhmdW5jdGlvbkluZGV4KSB8fCBtX21vZHVsZUluZm9ybWF0aW9uLT5y
ZWZlcmVuY2VkRnVuY3Rpb25zKCkuY29udGFpbnMoZnVuY3Rpb25JbmRleCkpIHsKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1
cmVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJ
bmRpY2VzW2Z1bmN0aW9uSW5kZXhdOwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVy
ZSA9IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoc2lnbmF0dXJlSW5kZXgpOwotICAgICAgICBh
dXRvIHJlc3VsdCA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5hZGQoZnVuY3Rp
b25JbmRleCwgY3JlYXRlSlNUb1dhc21XcmFwcGVyKCptX2NvbXBpbGF0aW9uQ29udGV4dHNbZnVu
Y3Rpb25JbmRleF0uZW1iZWRkZXJFbnRyeXBvaW50SklULCBzaWduYXR1cmUsICZtX3VubGlua2Vk
V2FzbVRvV2FzbUNhbGxzW2Z1bmN0aW9uSW5kZXhdLCBtX21vZHVsZUluZm9ybWF0aW9uLmdldCgp
LCBtX21vZGUsIGZ1bmN0aW9uSW5kZXgpKTsKKworICAgICAgICBhdXRvIGVtYmVkZGVyVG9XYXNt
SW50ZXJuYWxGdW5jdGlvbiA9IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcigqbV9jb21waWxhdGlvbkNv
bnRleHRzW2Z1bmN0aW9uSW5kZXhdLmVtYmVkZGVyRW50cnlwb2ludEpJVCwgc2lnbmF0dXJlLCAm
bV91bmxpbmtlZFdhc21Ub1dhc21DYWxsc1tmdW5jdGlvbkluZGV4XSwgbV9tb2R1bGVJbmZvcm1h
dGlvbi5nZXQoKSwgbV9tb2RlLCBmdW5jdGlvbkluZGV4KTsKKyAgICAgICAgYXV0byBsaW5rQnVm
ZmVyID0gbWFrZVVuaXF1ZTxMaW5rQnVmZmVyPigqbV9jb21waWxhdGlvbkNvbnRleHRzW2Z1bmN0
aW9uSW5kZXhdLmVtYmVkZGVyRW50cnlwb2ludEpJVCwgbnVsbHB0ciwgTGlua0J1ZmZlcjo6UHJv
ZmlsZTo6V2FzbSwgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKKworICAgICAgICBhdXRvIHJlc3Vs
dCA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25JbmRleCwg
c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxMaW5rQnVmZmVyPiwgc3RkOjp1bmlxdWVfcHRyPElu
dGVybmFsRnVuY3Rpb24+PiB7IFdURk1vdmUobGlua0J1ZmZlciksIFdURk1vdmUoZW1iZWRkZXJU
b1dhc21JbnRlcm5hbEZ1bmN0aW9uKSB9KTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQs
IHJlc3VsdC5pc05ld0VudHJ5KTsKICAgICB9CiB9CkBAIC0yMzgsMTEgKzI0OSwxMiBAQCB2b2lk
IEJCUVBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oKQogICAgICAgICBBU1NFUlQoZnVuY3Rp
b25JbmRleFNwYWNlIDwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+ZnVuY3Rpb25JbmRleFNwYWNlU2l6
ZSgpKTsKICAgICAgICAgewogICAgICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24g
PSBtX3dhc21JbnRlcm5hbEZ1bmN0aW9uc1tmdW5jdGlvbkluZGV4XS5nZXQoKTsKLSAgICAgICAg
ICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcigqY29udGV4dC53YXNtRW50cnlwb2ludEpJVCwgbnVs
bHB0ciwgTGlua0J1ZmZlcjo6UHJvZmlsZTo6V2FzbSwgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsK
LSAgICAgICAgICAgIGlmIChVTkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkp
KSB7CisgICAgICAgICAgICBpZiAoIW1fd2FzbUludGVybmFsRnVuY3Rpb25MaW5rQnVmZmVyc1tm
dW5jdGlvbkluZGV4XSkgewogICAgICAgICAgICAgICAgIEJhc2U6OmZhaWwobWFrZVN0cmluZygi
T3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5IGluIGZ1bmN0aW9uIGF0IGluZGV4ICIsIFN0cmluZzo6
bnVtYmVyKGZ1bmN0aW9uSW5kZXgpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvJiBsaW5rQnVmZmVyID0gKm1f
d2FzbUludGVybmFsRnVuY3Rpb25MaW5rQnVmZmVyc1tmdW5jdGlvbkluZGV4XTsKIAogICAgICAg
ICAgICAgY29tcHV0ZUV4Y2VwdGlvbkhhbmRsZXJBbmRMb29wRW50cnlwb2ludExvY2F0aW9ucyht
X2V4Y2VwdGlvbkhhbmRsZXJMb2NhdGlvbnNbZnVuY3Rpb25JbmRleF0sIG1fYWxsTG9vcEVudHJ5
cG9pbnRzW2Z1bmN0aW9uSW5kZXhdLCBmdW5jdGlvbiwgY29udGV4dCwgbGlua0J1ZmZlcik7CiAK
QEAgLTI1MywxNiArMjY1LDIxIEBAIHZvaWQgQkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlv
bigpCiAgICAgICAgICAgICAgICAgV1RGTW92ZShjb250ZXh0Lndhc21FbnRyeXBvaW50Qnlwcm9k
dWN0cykpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGNvbnN0IGF1dG8mIGVtYmVkZGVyVG9X
YXNtSW50ZXJuYWxGdW5jdGlvbiA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5n
ZXQoZnVuY3Rpb25JbmRleCkpIHsKLSAgICAgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcigq
Y29udGV4dC5lbWJlZGRlckVudHJ5cG9pbnRKSVQsIG51bGxwdHIsIExpbmtCdWZmZXI6OlByb2Zp
bGU6Oldhc20sIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtF
TFkobGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKSkgewotICAgICAgICAgICAgICAgIEJh
c2U6OmZhaWwobWFrZVN0cmluZygiT3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5IGluIGZ1bmN0aW9u
IGVudHJ5cG9pbnQgYXQgaW5kZXggIiwgU3RyaW5nOjpudW1iZXIoZnVuY3Rpb25JbmRleCkpKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gaXRl
ciA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5maW5kKGZ1bmN0aW9uSW5kZXgp
OworICAgICAgICAgICAgaWYgKGl0ZXIgIT0gbV9lbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rp
b25zLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgTGlua0J1ZmZlciYgbGlua0J1ZmZlciA9ICpp
dGVyLT52YWx1ZS5maXJzdDsKKyAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBlbWJlZGRlclRv
V2FzbUludGVybmFsRnVuY3Rpb24gPSBpdGVyLT52YWx1ZS5zZWNvbmQ7CisKKyAgICAgICAgICAg
ICAgICBpZiAobGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIEJhc2U6OmZhaWwobWFrZVN0cmluZygiT3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5IGlu
IGZ1bmN0aW9uIGVudHJ5cG9pbnQgYXQgaW5kZXggIiwgU3RyaW5nOjpudW1iZXIoZnVuY3Rpb25J
bmRleCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGVtYmVkZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbi0+ZW50cnlw
b2ludC5jb21waWxhdGlvbiA9IG1ha2VVbmlxdWU8Q29tcGlsYXRpb24+KAorICAgICAgICAgICAg
ICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAi
RW1iZWRkZXItPldlYkFzc2VtYmx5IGVudHJ5cG9pbnRbJWldICVzIG5hbWUgJXMiLCBmdW5jdGlv
bkluZGV4LCBzaWduYXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJ
bmRleE9yTmFtZShmdW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVT
ZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKKyAgICAg
ICAgICAgICAgICAgICAgbnVsbHB0cik7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGVt
YmVkZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1h
a2VVbmlxdWU8Q29tcGlsYXRpb24+KAotICAgICAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlu
a0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJFbWJlZGRlci0+V2ViQXNzZW1ibHkgZW50
cnlwb2ludFslaV0gJXMgbmFtZSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhT
cGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4
U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAotICAgICAgICAgICAgICAgIG51bGxwdHIpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC0yODUsMTAgKzMwMiwxNCBAQCB2b2lkIEJCUVBsYW46OmluaXRp
YWxpemVDYWxsZWVzKGNvbnN0IENhCiAgICAgZm9yICh1bnNpZ25lZCBpbnRlcm5hbEZ1bmN0aW9u
SW5kZXggPSAwOyBpbnRlcm5hbEZ1bmN0aW9uSW5kZXggPCBtX3dhc21JbnRlcm5hbEZ1bmN0aW9u
cy5zaXplKCk7ICsraW50ZXJuYWxGdW5jdGlvbkluZGV4KSB7CiAKICAgICAgICAgUmVmUHRyPEVt
YmVkZGVyRW50cnlwb2ludENhbGxlZT4gZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlOwotICAgICAg
ICBpZiAoYXV0byBlbWJlZGRlclRvV2FzbUZ1bmN0aW9uID0gbV9lbWJlZGRlclRvV2FzbUludGVy
bmFsRnVuY3Rpb25zLmdldChpbnRlcm5hbEZ1bmN0aW9uSW5kZXgpKSB7Ci0gICAgICAgICAgICBl
bWJlZGRlckVudHJ5cG9pbnRDYWxsZWUgPSBFbWJlZGRlckVudHJ5cG9pbnRDYWxsZWU6OmNyZWF0
ZShXVEZNb3ZlKGVtYmVkZGVyVG9XYXNtRnVuY3Rpb24tPmVudHJ5cG9pbnQpKTsKLSAgICAgICAg
ICAgIGZvciAoYXV0byYgbW92ZUxvY2F0aW9uIDogZW1iZWRkZXJUb1dhc21GdW5jdGlvbi0+Y2Fs
bGVlTW92ZUxvY2F0aW9ucykKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRj
aFBvaW50ZXIobW92ZUxvY2F0aW9uLCBDYWxsZWVCaXRzOjpib3hXYXNtKGVtYmVkZGVyRW50cnlw
b2ludENhbGxlZS5nZXQoKSkpOworICAgICAgICB7CisgICAgICAgICAgICBhdXRvIGl0ZXIgPSBt
X2VtYmVkZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbnMuZmluZChpbnRlcm5hbEZ1bmN0aW9uSW5k
ZXgpOworICAgICAgICAgICAgaWYgKGl0ZXIgIT0gbV9lbWJlZGRlclRvV2FzbUludGVybmFsRnVu
Y3Rpb25zLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZW1iZWRkZXJUb1dh
c21GdW5jdGlvbiA9IGl0ZXItPnZhbHVlLnNlY29uZDsKKyAgICAgICAgICAgICAgICBlbWJlZGRl
ckVudHJ5cG9pbnRDYWxsZWUgPSBFbWJlZGRlckVudHJ5cG9pbnRDYWxsZWU6OmNyZWF0ZShXVEZN
b3ZlKGVtYmVkZGVyVG9XYXNtRnVuY3Rpb24tPmVudHJ5cG9pbnQpKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8mIG1vdmVMb2NhdGlvbiA6IGVtYmVkZGVyVG9XYXNtRnVuY3Rpb24tPmNhbGxl
ZU1vdmVMb2NhdGlvbnMpCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBh
dGNoUG9pbnRlcihtb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdhc20oZW1iZWRkZXJFbnRy
eXBvaW50Q2FsbGVlLmdldCgpKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAg
ICBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiA9IG1fd2FzbUludGVybmFsRnVuY3Rpb25zW2lu
dGVybmFsRnVuY3Rpb25JbmRleF0uZ2V0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CQlFQbGFuLmgJKHJldmlzaW9uIDI4Nzk5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CQlFQbGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDggKzgzLDkgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY29tcGlsZUZ1
bmN0aW9uKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIENvbXBpbGF0aW9uQ29udGV4dCYsIFZlY3Rv
cjxVbmxpbmtlZFdhc21Ub1dhc21DYWxsPiYsIFRpZXJVcENvdW50Kik7CiAKICAgICBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+PiBtX3dhc21JbnRlcm5hbEZ1bmN0aW9u
czsKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPExpbmtCdWZmZXI+PiBtX3dhc21JbnRlcm5h
bEZ1bmN0aW9uTGlua0J1ZmZlcnM7CiAgICAgVmVjdG9yPFZlY3RvcjxDb2RlTG9jYXRpb25MYWJl
bDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPj4+IG1fZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9uczsK
LSAgICBIYXNoTWFwPHVpbnQzMl90LCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4s
IERlZmF1bHRIYXNoPHVpbnQzMl90PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czx1aW50MzJfdD4+IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uczsKKyAgICBIYXNo
TWFwPHVpbnQzMl90LCBzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPExpbmtCdWZmZXI+LCBzdGQ6
OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4+LCBEZWZhdWx0SGFzaDx1aW50MzJfdD4sIFdU
Rjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDMyX3Q+PiBtX2VtYmVkZGVyVG9X
YXNtSW50ZXJuYWxGdW5jdGlvbnM7CiAgICAgVmVjdG9yPENvbXBpbGF0aW9uQ29udGV4dD4gbV9j
b21waWxhdGlvbkNvbnRleHRzOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGllclVwQ291
bnQ+PiBtX3RpZXJVcENvdW50czsKICAgICBWZWN0b3I8VmVjdG9yPENvZGVMb2NhdGlvbkxhYmVs
PFdhc21FbnRyeVB0clRhZz4+PiBtX2FsbExvb3BFbnRyeXBvaW50czsK
</data>
<flag name="review"
          id="475109"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449118</attachid>
            <date>2022-01-13 15:14:56 -0800</date>
            <delta_ts>2022-01-13 18:41:18 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>10364</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3OTkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDIyLTAxLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IExpbmsgV2FzbSBjb2RlIG9uIHRoZSBzYW1lIHRocmVhZCB0aGF0IEpJVHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kgYW5kIE1hcmsgTGFtLgorCisgICAgICAgIFRoaXMgaXMg
cHJlcGFyaW5nIHVzIGZvciB0aGUgY2hhbmdlcyB0aGF0J2xsIGJlIG5lZWRlZCBieQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTkyLgorICAgICAg
ICAKKyAgICAgICAgSXQgc2hvdWxkIGFsc28gYmUgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50LCBh
cyB3ZSdyZSBub3cgbGlua2luZworICAgICAgICBpbiBwYXJhbGxlbCBpbnN0ZWFkIG9mIGRvaW5n
IGl0IGFmdGVyIGFsbCBjb21waWxhdGlvbnMgaGF2ZSBmaW5pc2hlZC4KKworICAgICAgICAqIHdh
c20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpwYXJzZUFuZENv
bXBpbGVCMyk6CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkJCUVBsYW46OnByZXBhcmVJbXBsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxh
bjo6Y29tcGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6ZGlkQ29t
cGxldGVDb21waWxhdGlvbik6CisgICAgICAgIChKU0M6Oldhc206OkJCUVBsYW46OmluaXRpYWxp
emVDYWxsZWVzKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmg6CisKIDIwMjItMDEtMTMg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEg
ZmV3IE9iamVjdGl2ZS1DIG9iamVjdCBsZWFrcyBkdWUgdG8gZWFybHkgcmV0dXJucyBpbiBgaW5p
dGAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVy
YXRvci5jcHAJKHJldmlzaW9uIDI4Nzk5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CM0lSR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE1MCw3ICszMTUwLDYg
QEAgRXhwZWN0ZWQ8c3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3RpbwogICAgIGlmIChzaG91
bGREdW1wSVJGb3IoZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpKSkK
ICAgICAgICAgcHJvY2VkdXJlLnNldFNob3VsZER1bXBJUigpOwogCi0gICAgY29tcGlsYXRpb25D
b250ZXh0Lndhc21FbnRyeXBvaW50SklUID0gbWFrZVVuaXF1ZTxDQ2FsbEhlbHBlcnM+KCk7CiAK
ICAgICBpZiAoT3B0aW9uczo6dXNlU2FtcGxpbmdQcm9maWxlcigpKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgZG8gdGhpcyBiYXNlZCBvbiBWTSByZWxldmFudCBpbmZvLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAkocmV2aXNpb24gMjg3
OTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MywxMiArNjMsMTQgQEAgYm9vbCBCQlFQbGFuOjpwcmVwYXJlSW1wbCgp
CiB7CiAgICAgY29uc3QgYXV0byYgZnVuY3Rpb25zID0gbV9tb2R1bGVJbmZvcm1hdGlvbi0+ZnVu
Y3Rpb25zOwogICAgIGlmICghdHJ5UmVzZXJ2ZUNhcGFjaXR5KG1fd2FzbUludGVybmFsRnVuY3Rp
b25zLCBmdW5jdGlvbnMuc2l6ZSgpLCAiIFdlYkFzc2VtYmx5IGZ1bmN0aW9ucyIpCisgICAgICAg
IHx8ICF0cnlSZXNlcnZlQ2FwYWNpdHkobV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZmZXJz
LCBmdW5jdGlvbnMuc2l6ZSgpLCAiIGNvbXBpbGF0aW9uIGNvbnRleHRzIikKICAgICAgICAgfHwg
IXRyeVJlc2VydmVDYXBhY2l0eShtX2NvbXBpbGF0aW9uQ29udGV4dHMsIGZ1bmN0aW9ucy5zaXpl
KCksICIgY29tcGlsYXRpb24gY29udGV4dHMiKQogICAgICAgICB8fCAhdHJ5UmVzZXJ2ZUNhcGFj
aXR5KG1fdGllclVwQ291bnRzLCBmdW5jdGlvbnMuc2l6ZSgpLCAiIHRpZXItdXAgY291bnRzIikK
ICAgICAgICAgfHwgIXRyeVJlc2VydmVDYXBhY2l0eShtX2FsbExvb3BFbnRyeXBvaW50cywgZnVu
Y3Rpb25zLnNpemUoKSwgIiBsb29wIGVudHJ5cG9pbnRzIikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIG1fd2FzbUludGVybmFsRnVuY3Rpb25zLnJlc2l6ZShmdW5jdGlvbnMuc2l6ZSgp
KTsKKyAgICBtX3dhc21JbnRlcm5hbEZ1bmN0aW9uTGlua0J1ZmZlcnMucmVzaXplKGZ1bmN0aW9u
cy5zaXplKCkpOwogICAgIG1fZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9ucy5yZXNpemUoZnVuY3Rp
b25zLnNpemUoKSk7CiAgICAgbV9jb21waWxhdGlvbkNvbnRleHRzLnJlc2l6ZShmdW5jdGlvbnMu
c2l6ZSgpKTsKICAgICBtX3RpZXJVcENvdW50cy5yZXNpemUoZnVuY3Rpb25zLnNpemUoKSk7CkBA
IC0xODIsMTIgKzE4NCwyMSBAQCB2b2lkIEJCUVBsYW46OmNvbXBpbGVGdW5jdGlvbih1aW50MzJf
dCBmCiAgICAgICAgIG1fdGllclVwQ291bnRzW2Z1bmN0aW9uSW5kZXhdID0gbnVsbHB0cjsKIAog
ICAgIG1fd2FzbUludGVybmFsRnVuY3Rpb25zW2Z1bmN0aW9uSW5kZXhdID0gY29tcGlsZUZ1bmN0
aW9uKGZ1bmN0aW9uSW5kZXgsIG1fY29tcGlsYXRpb25Db250ZXh0c1tmdW5jdGlvbkluZGV4XSwg
bV91bmxpbmtlZFdhc21Ub1dhc21DYWxsc1tmdW5jdGlvbkluZGV4XSwgbV90aWVyVXBDb3VudHNb
ZnVuY3Rpb25JbmRleF0uZ2V0KCkpOworICAgIHsKKyAgICAgICAgYXV0byBsaW5rQnVmZmVyID0g
bWFrZVVuaXF1ZTxMaW5rQnVmZmVyPigqbV9jb21waWxhdGlvbkNvbnRleHRzW2Z1bmN0aW9uSW5k
ZXhdLndhc21FbnRyeXBvaW50SklULCBudWxscHRyLCBMaW5rQnVmZmVyOjpQcm9maWxlOjpXYXNt
LCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOworICAgICAgICBpZiAobGlua0J1ZmZlci0+aXNWYWxp
ZCgpKQorICAgICAgICAgICAgbV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZmZXJzW2Z1bmN0
aW9uSW5kZXhdID0gV1RGTW92ZShsaW5rQnVmZmVyKTsKKyAgICB9CiAKICAgICBpZiAobV9leHBv
cnRlZEZ1bmN0aW9uSW5kaWNlcy5jb250YWlucyhmdW5jdGlvbkluZGV4KSB8fCBtX21vZHVsZUlu
Zm9ybWF0aW9uLT5yZWZlcmVuY2VkRnVuY3Rpb25zKCkuY29udGFpbnMoZnVuY3Rpb25JbmRleCkp
IHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBTaWduYXR1cmVJ
bmRleCBzaWduYXR1cmVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rp
b25TaWduYXR1cmVJbmRpY2VzW2Z1bmN0aW9uSW5kZXhdOwogICAgICAgICBjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSA9IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoc2lnbmF0dXJlSW5kZXgp
OwotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9u
cy5hZGQoZnVuY3Rpb25JbmRleCwgY3JlYXRlSlNUb1dhc21XcmFwcGVyKCptX2NvbXBpbGF0aW9u
Q29udGV4dHNbZnVuY3Rpb25JbmRleF0uZW1iZWRkZXJFbnRyeXBvaW50SklULCBzaWduYXR1cmUs
ICZtX3VubGlua2VkV2FzbVRvV2FzbUNhbGxzW2Z1bmN0aW9uSW5kZXhdLCBtX21vZHVsZUluZm9y
bWF0aW9uLmdldCgpLCBtX21vZGUsIGZ1bmN0aW9uSW5kZXgpKTsKKworICAgICAgICBhdXRvIGVt
YmVkZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbiA9IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcigqbV9j
b21waWxhdGlvbkNvbnRleHRzW2Z1bmN0aW9uSW5kZXhdLmVtYmVkZGVyRW50cnlwb2ludEpJVCwg
c2lnbmF0dXJlLCAmbV91bmxpbmtlZFdhc21Ub1dhc21DYWxsc1tmdW5jdGlvbkluZGV4XSwgbV9t
b2R1bGVJbmZvcm1hdGlvbi5nZXQoKSwgbV9tb2RlLCBmdW5jdGlvbkluZGV4KTsKKyAgICAgICAg
YXV0byBsaW5rQnVmZmVyID0gbWFrZVVuaXF1ZTxMaW5rQnVmZmVyPigqbV9jb21waWxhdGlvbkNv
bnRleHRzW2Z1bmN0aW9uSW5kZXhdLmVtYmVkZGVyRW50cnlwb2ludEpJVCwgbnVsbHB0ciwgTGlu
a0J1ZmZlcjo6UHJvZmlsZTo6V2FzbSwgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKKworICAgICAg
ICBhdXRvIHJlc3VsdCA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5hZGQoZnVu
Y3Rpb25JbmRleCwgc3RkOjpwYWlyIHsgV1RGTW92ZShsaW5rQnVmZmVyKSwgV1RGTW92ZShlbWJl
ZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb24pIH0pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHJl
c3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0KIH0KQEAgLTIzOCwxMSArMjQ5LDEyIEBA
IHZvaWQgQkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbigpCiAgICAgICAgIEFTU0VSVChm
dW5jdGlvbkluZGV4U3BhY2UgPCBtX21vZHVsZUluZm9ybWF0aW9uLT5mdW5jdGlvbkluZGV4U3Bh
Y2VTaXplKCkpOwogICAgICAgICB7CiAgICAgICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5j
dGlvbiA9IG1fd2FzbUludGVybmFsRnVuY3Rpb25zW2Z1bmN0aW9uSW5kZXhdLmdldCgpOwotICAg
ICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKCpjb250ZXh0Lndhc21FbnRyeXBvaW50SklU
LCBudWxscHRyLCBMaW5rQnVmZmVyOjpQcm9maWxlOjpXYXNtLCBKSVRDb21waWxhdGlvbkNhbkZh
aWwpOwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2Nh
dGUoKSkpIHsKKyAgICAgICAgICAgIGlmICghbV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZm
ZXJzW2Z1bmN0aW9uSW5kZXhdKSB7CiAgICAgICAgICAgICAgICAgQmFzZTo6ZmFpbChtYWtlU3Ry
aW5nKCJPdXQgb2YgZXhlY3V0YWJsZSBtZW1vcnkgaW4gZnVuY3Rpb24gYXQgaW5kZXggIiwgU3Ry
aW5nOjpudW1iZXIoZnVuY3Rpb25JbmRleCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8mIGxpbmtCdWZmZXIg
PSAqbV93YXNtSW50ZXJuYWxGdW5jdGlvbkxpbmtCdWZmZXJzW2Z1bmN0aW9uSW5kZXhdOwogCiAg
ICAgICAgICAgICBjb21wdXRlRXhjZXB0aW9uSGFuZGxlckFuZExvb3BFbnRyeXBvaW50TG9jYXRp
b25zKG1fZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9uc1tmdW5jdGlvbkluZGV4XSwgbV9hbGxMb29w
RW50cnlwb2ludHNbZnVuY3Rpb25JbmRleF0sIGZ1bmN0aW9uLCBjb250ZXh0LCBsaW5rQnVmZmVy
KTsKIApAQCAtMjUzLDE2ICsyNjUsMjEgQEAgdm9pZCBCQlFQbGFuOjpkaWRDb21wbGV0ZUNvbXBp
bGF0aW9uKCkKICAgICAgICAgICAgICAgICBXVEZNb3ZlKGNvbnRleHQud2FzbUVudHJ5cG9pbnRC
eXByb2R1Y3RzKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY29uc3QgYXV0byYgZW1iZWRk
ZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uID0gbV9lbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rp
b25zLmdldChmdW5jdGlvbkluZGV4KSkgewotICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVm
ZmVyKCpjb250ZXh0LmVtYmVkZGVyRW50cnlwb2ludEpJVCwgbnVsbHB0ciwgTGlua0J1ZmZlcjo6
UHJvZmlsZTo6V2FzbSwgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKLSAgICAgICAgICAgIGlmIChV
TkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgQmFzZTo6ZmFpbChtYWtlU3RyaW5nKCJPdXQgb2YgZXhlY3V0YWJsZSBtZW1vcnkgaW4gZnVu
Y3Rpb24gZW50cnlwb2ludCBhdCBpbmRleCAiLCBTdHJpbmc6Om51bWJlcihmdW5jdGlvbkluZGV4
KSkpOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byBpdGVyID0gbV9lbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb25zLmZpbmQoZnVuY3Rpb25J
bmRleCk7CisgICAgICAgICAgICBpZiAoaXRlciAhPSBtX2VtYmVkZGVyVG9XYXNtSW50ZXJuYWxG
dW5jdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
ID0gKml0ZXItPnZhbHVlLmZpcnN0OworICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGVtYmVk
ZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbiA9IGl0ZXItPnZhbHVlLnNlY29uZDsKKworICAgICAg
ICAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgQmFzZTo6ZmFpbChtYWtlU3RyaW5nKCJPdXQgb2YgZXhlY3V0YWJsZSBtZW1v
cnkgaW4gZnVuY3Rpb24gZW50cnlwb2ludCBhdCBpbmRleCAiLCBTdHJpbmc6Om51bWJlcihmdW5j
dGlvbkluZGV4KSkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5l
bnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxDb21waWxhdGlvbj4oCisgICAgICAg
ICAgICAgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJU
YWcsICJFbWJlZGRlci0+V2ViQXNzZW1ibHkgZW50cnlwb2ludFslaV0gJXMgbmFtZSAlcyIsIGZ1
bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3Ry
aW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+
bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAor
ICAgICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9u
ID0gbWFrZVVuaXF1ZTxDb21waWxhdGlvbj4oCi0gICAgICAgICAgICAgICAgRklOQUxJWkVfQ09E
RShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVyLT5XZWJBc3NlbWJs
eSBlbnRyeXBvaW50WyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25J
bmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9u
SW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCi0gICAgICAgICAgICAgICAgbnVsbHB0cik7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI4NSwxMCArMzAyLDE0IEBAIHZvaWQgQkJRUGxhbjo6
aW5pdGlhbGl6ZUNhbGxlZXMoY29uc3QgQ2EKICAgICBmb3IgKHVuc2lnbmVkIGludGVybmFsRnVu
Y3Rpb25JbmRleCA9IDA7IGludGVybmFsRnVuY3Rpb25JbmRleCA8IG1fd2FzbUludGVybmFsRnVu
Y3Rpb25zLnNpemUoKTsgKytpbnRlcm5hbEZ1bmN0aW9uSW5kZXgpIHsKIAogICAgICAgICBSZWZQ
dHI8RW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlPiBlbWJlZGRlckVudHJ5cG9pbnRDYWxsZWU7Ci0g
ICAgICAgIGlmIChhdXRvIGVtYmVkZGVyVG9XYXNtRnVuY3Rpb24gPSBtX2VtYmVkZGVyVG9XYXNt
SW50ZXJuYWxGdW5jdGlvbnMuZ2V0KGludGVybmFsRnVuY3Rpb25JbmRleCkpIHsKLSAgICAgICAg
ICAgIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSA9IEVtYmVkZGVyRW50cnlwb2ludENhbGxlZTo6
Y3JlYXRlKFdURk1vdmUoZW1iZWRkZXJUb1dhc21GdW5jdGlvbi0+ZW50cnlwb2ludCkpOwotICAg
ICAgICAgICAgZm9yIChhdXRvJiBtb3ZlTG9jYXRpb24gOiBlbWJlZGRlclRvV2FzbUZ1bmN0aW9u
LT5jYWxsZWVNb3ZlTG9jYXRpb25zKQotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpy
ZXBhdGNoUG9pbnRlcihtb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdhc20oZW1iZWRkZXJF
bnRyeXBvaW50Q2FsbGVlLmdldCgpKSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gaXRl
ciA9IG1fZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9ucy5maW5kKGludGVybmFsRnVuY3Rp
b25JbmRleCk7CisgICAgICAgICAgICBpZiAoaXRlciAhPSBtX2VtYmVkZGVyVG9XYXNtSW50ZXJu
YWxGdW5jdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBlbWJlZGRl
clRvV2FzbUZ1bmN0aW9uID0gaXRlci0+dmFsdWUuc2Vjb25kOworICAgICAgICAgICAgICAgIGVt
YmVkZGVyRW50cnlwb2ludENhbGxlZSA9IEVtYmVkZGVyRW50cnlwb2ludENhbGxlZTo6Y3JlYXRl
KFdURk1vdmUoZW1iZWRkZXJUb1dhc21GdW5jdGlvbi0+ZW50cnlwb2ludCkpOworICAgICAgICAg
ICAgICAgIGZvciAoYXV0byYgbW92ZUxvY2F0aW9uIDogZW1iZWRkZXJUb1dhc21GdW5jdGlvbi0+
Y2FsbGVlTW92ZUxvY2F0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OnJlcGF0Y2hQb2ludGVyKG1vdmVMb2NhdGlvbiwgQ2FsbGVlQml0czo6Ym94V2FzbShlbWJlZGRl
ckVudHJ5cG9pbnRDYWxsZWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uID0gbV93YXNtSW50ZXJuYWxGdW5jdGlv
bnNbaW50ZXJuYWxGdW5jdGlvbkluZGV4XS5nZXQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CQlFQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUJCUVBsYW4uaAkocmV2aXNpb24gMjg3OTkzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtODMsOCArODMs
OSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjb21w
aWxlRnVuY3Rpb24odWludDMyX3QgZnVuY3Rpb25JbmRleCwgQ29tcGlsYXRpb25Db250ZXh0Jiwg
VmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgVGllclVwQ291bnQqKTsKIAogICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4+IG1fd2FzbUludGVybmFsRnVu
Y3Rpb25zOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4+IG1fd2FzbUlu
dGVybmFsRnVuY3Rpb25MaW5rQnVmZmVyczsKICAgICBWZWN0b3I8VmVjdG9yPENvZGVMb2NhdGlv
bkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWc+Pj4gbV9leGNlcHRpb25IYW5kbGVyTG9jYXRp
b25zOwotICAgIEhhc2hNYXA8dWludDMyX3QsIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0
aW9uPiwgRGVmYXVsdEhhc2g8dWludDMyX3Q+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNo
VHJhaXRzPHVpbnQzMl90Pj4gbV9lbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb25zOworICAg
IEhhc2hNYXA8dWludDMyX3QsIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4s
IHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPj4sIERlZmF1bHRIYXNoPHVpbnQzMl90
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50MzJfdD4+IG1fZW1iZWRk
ZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uczsKICAgICBWZWN0b3I8Q29tcGlsYXRpb25Db250ZXh0
PiBtX2NvbXBpbGF0aW9uQ29udGV4dHM7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaWVy
VXBDb3VudD4+IG1fdGllclVwQ291bnRzOwogICAgIFZlY3RvcjxWZWN0b3I8Q29kZUxvY2F0aW9u
TGFiZWw8V2FzbUVudHJ5UHRyVGFnPj4+IG1fYWxsTG9vcEVudHJ5cG9pbnRzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>