<?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>157842</bug_id>
          
          <creation_ts>2016-05-18 09:15:48 -0700</creation_ts>
          <short_desc>Kill JSDOMBindings&apos; createNewWrapper()</short_desc>
          <delta_ts>2016-05-19 09:10:57 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=157835</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1194288</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-18 09:15:48 -0700</bug_when>
    <thetext>Kill JSDOMBindings&apos; createNewWrapper(). It is identical to createWrapper().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194302</commentid>
    <comment_count>1</comment_count>
      <attachid>279258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-18 10:01:22 -0700</bug_when>
    <thetext>Created attachment 279258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194336</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 11:37:24 -0700</bug_when>
    <thetext>This patch is close to one of mine (bug 157835).
Obviously I like the direction :)
But I am unsure how to proceed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194517</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-18 16:53:50 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch is close to one of mine (bug 157835).
&gt; Obviously I like the direction :)
&gt; But I am unsure how to proceed.

If you like it, feel free to review :)
I&apos;ll just rebaseline if you land before me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194770</commentid>
    <comment_count>4</comment_count>
      <attachid>279391</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-19 08:49:35 -0700</bug_when>
    <thetext>Created attachment 279391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194779</commentid>
    <comment_count>5</comment_count>
      <attachid>279391</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 09:10:53 -0700</bug_when>
    <thetext>Comment on attachment 279391
Patch

Clearing flags on attachment: 279391

Committed r201166: &lt;http://trac.webkit.org/changeset/201166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194780</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 09:10:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279258</attachid>
            <date>2016-05-18 10:01:22 -0700</date>
            <delta_ts>2016-05-19 08:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157842-20160518100220.patch</filename>
            <type>text/plain</type>
            <size>40489</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFiMDAxM2QwNmNhOGYy
YTUwZTAyMDcxOWZjYWUyZDg3Nzg3Y2YyNS4uMWU5MGM5OTY4NjFlZWVjYzVjMjM2OTA5MzZkNTdj
MTllMDVjMjU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE2LTA1LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgS2lsbCBKU0RPTUJpbmRpbmdz
JyBjcmVhdGVOZXdXcmFwcGVyKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1Nzg0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEtpbGwgSlNET01CaW5kaW5ncycgY3JlYXRlTmV3V3JhcHBlcigpLiBJdCBp
cyBpZGVudGljYWwgdG8gY3JlYXRlV3JhcHBlcigpLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOZXdXcmFwcGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU5ld0RvY3VtZW50RnJhZ21lbnRXcmFw
cGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Qu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKwogMjAxNi0wNS0xOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFN5bmMgRE9NIGV4Y2Vw
dGlvbiB0eXBlcyB3aXRoIFdlYklETCBhbmQgdXBkYXRlIHByb21pc2UgcmVqZWN0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA2YmUwN2YzYWIzNjc1
OTEwYWE5MDlmOTQ5YzUzMjNjNDY3OGQ3NThiLi43YjkzM2IwYTAzYjQzMGYxMjcyZWZiOGIxMDdm
NGRjNTExZmQ5OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aApAQCAtMTY3LDcgKzE2Nyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlw
ZW5hbWUgRE9NQ2xhc3M+IFdyYXBwZXJDbGFzcyogY3JlYXRlV3JhcHBlcihKCiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgRE9NQ2xhc3M+IEpTQzo6SlNWYWx1ZSB3
cmFwKEpTRE9NR2xvYmFsT2JqZWN0KiwgRE9NQ2xhc3MmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdy
YXBwZXJDbGFzcywgdHlwZW5hbWUgRE9NQ2xhc3M+IEpTQzo6SlNWYWx1ZSBnZXRFeGlzdGluZ1dy
YXBwZXIoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFzcyYpOwotdGVtcGxhdGU8dHlwZW5hbWUg
V3JhcHBlckNsYXNzLCB0eXBlbmFtZSBET01DbGFzcz4gSlNDOjpKU1ZhbHVlIGNyZWF0ZU5ld1dy
YXBwZXIoSlNET01HbG9iYWxPYmplY3QqLCBSZWY8RE9NQ2xhc3M+JiYpOwogCiB2b2lkIGFkZElt
cHVyZVByb3BlcnR5KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC00NzksMTIgKzQ3OCw2IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgRE9NQ2xhc3M+IGlubGlu
ZSBKU0M6OkpTVmFsdWUgZ2V0RXhpc3RpCiAgICAgcmV0dXJuIGdldENhY2hlZFdyYXBwZXIoZ2xv
YmFsT2JqZWN0LT53b3JsZCgpLCBkb21PYmplY3QpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBX
cmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNyZWF0
ZU5ld1dyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPERPTUNsYXNz
PiYmIGRvbU9iamVjdCkKLXsKLSAgICBBU1NFUlQoIWdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2Jq
ZWN0LT53b3JsZCgpLCBkb21PYmplY3QpKTsKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxXcmFw
cGVyQ2xhc3M+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShkb21PYmplY3QpKTsKLX0KLQogaW5saW5l
IGludDMyX3QgZmluaXRlSW50MzJWYWx1ZShKU0M6OkpTVmFsdWUgdmFsdWUsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBib29sJiBva2F5KQogewogICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS50b051
bWJlcihleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRGcmFnbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCmluZGV4IGMyMzE3ZmMyYjlmMjBiMjlkN2ZmMzNjYjdi
OWEwZGFmYzllNjk2NmQuLjVjNjk5ZTNmZjM5MGQ1NTQ0ODVjNzM5YTg2ZDE1ZmIzZDhhYmNhOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRGcmFnbWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEZy
YWdtZW50Q3VzdG9tLmNwcApAQCAtNTIsMjYgKzUyLDIxIEBAIEpTVmFsdWUgSlNEb2N1bWVudEZy
YWdtZW50OjphcHBlbmQoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGNyZWF0ZU5ld0RvY3VtZW50RnJhZ21lbnRX
cmFwcGVyKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxEb2N1bWVudEZyYWdt
ZW50PiYmIGltcGwpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50RnJhZ21lbnQ+JiYgaW1wbCkK
IHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICBpZiAoaW1wbC0+aXNTaGFkb3dSb290KCkp
Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoJmdsb2JhbE9iamVjdCwgU2hhZG93
Um9vdCwgV1RGTW92ZShpbXBsKSk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIo
Z2xvYmFsT2JqZWN0LCBTaGFkb3dSb290LCBXVEZNb3ZlKGltcGwpKTsKICNlbmRpZgotICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTRG9jdW1lbnRGcmFnbWVudD4oJmdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7Ci19Ci0KLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8RG9jdW1lbnRGcmFnbWVudD4m
JiBpbXBsKQotewotICAgIHJldHVybiBjcmVhdGVOZXdEb2N1bWVudEZyYWdtZW50V3JhcHBlcigq
Z2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxK
U0RvY3VtZW50RnJhZ21lbnQ+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKLUpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
b2N1bWVudEZyYWdtZW50JiBpbXBsKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQmIGltcGwpCiB7
Ci0gICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTRG9jdW1lbnRG
cmFnbWVudD4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKKyAgICBpZiAoYXV0byByZXN1bHQgPSBnZXRF
eGlzdGluZ1dyYXBwZXI8SlNEb2N1bWVudEZyYWdtZW50PihnbG9iYWxPYmplY3QsIGltcGwpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgcmV0dXJuIGNyZWF0ZU5ld0RvY3VtZW50RnJh
Z21lbnRXcmFwcGVyKCpnbG9iYWxPYmplY3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlD
cmVhdGVkKHN0YXRlLCBnbG9iYWxPYmplY3QsIFJlZjxEb2N1bWVudEZyYWdtZW50PihpbXBsKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKaW5kZXggMmRiN2M0MWJlMDc4NTgyOTg2OWIzNzc3
ZTYwZDliMTBkYmVkY2U2ZC4uMDkwMDUzNzNmOTYyYjRmNGI1OGVhYzI2OWE5ZTJkMWI2MDM2OGIw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgSlNDOjpKU1ZhbHVlIGNyZWF0ZVdyYXBwZXIoSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPE5vZGVMaXN0PiYmIG5vZGUKICAgICAvLyBGSVhN
RTogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkLCBhbmQgc3dpdGNoIHRvIHJlcG9ydEV4
dHJhTWVtb3J5QWxsb2NhdGVkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI1OTUKICAgICBnbG9iYWxPYmplY3Qudm0oKS5oZWFwLmRlcHJlY2F0ZWRS
ZXBvcnRFeHRyYU1lbW9yeShub2RlTGlzdC0+bWVtb3J5Q29zdCgpKTsKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU05vZGVMaXN0PigmZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKG5vZGVMaXN0
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNOb2RlTGlzdD4oJmdsb2JhbE9iamVjdCwg
V1RGTW92ZShub2RlTGlzdCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8Tm9kZUxpc3Q+
JiYgbm9kZUxpc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3MTc4ZDE1MDE0MTYzYjAxNWQxZmZhZWJkZjNiMDRhYzZj
YWQ4MzIuLjU5ZDVlYzk3NzRiNmE1MTI3NzcxYTZhMzRhNTYzNTFiZTNhNzM5MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC0zNDEyLDEzICszNDEyLDEzIEBAIEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
Qzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBl
KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjwkY2xhc3NOYW1lLCAkaW1wbFR5cGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjcmVh
dGVXcmFwcGVyPCRjbGFzc05hbWUsICRpbXBsVHlwZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8JGNsYXNzTmFtZT4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKGltcGwpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8JGNsYXNzTmFtZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3Zl
KGltcGwpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGltcGxUeXBl
JiBpbXBsKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCAkaW1wbFR5cGUmIGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjwk
Y2xhc3NOYW1lLCAkaW1wbFR5cGU+KGdsb2JhbE9iamVjdCwgaW1wbCkpXG4iKTsKQEAgLTM0NjEs
NyArMzQ2MSw3IEBAIEVORAogICAgIGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwLnJlcG9ydEV4dHJh
TWVtb3J5QWxsb2NhdGVkKGltcGwubWVtb3J5Q29zdCgpKTsKIEVORAogCi0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPCRjbGFzc05hbWUsICRp
bXBsVHlwZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBS
ZWY8JGltcGxUeXBlPihpbXBsKSk7XG4iKTsKIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA2
YzE5YTFhZmEzMWMyODBmYWJkNWQ3ZDlhOTBjOGFmMGZmYTdiZWVmLi4xYjY4ZjFkZWRmZGRjOGI4
MDFjNTQ3ZDRjMzljMzRkMWJlZDI3OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
LmNwcApAQCAtMjUyLDEwICsyNTIsMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRW
TjdXZWJDb3JlMTlUZXN0QWN0aXZlRE9NT2JqZWN0RVtdOyB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+KGdsb2JhbE9iamVjdCwgV1RGTW92
ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0
PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RBY3Rp
dmVET01PYmplY3QmIGltcGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RBY3RpdmVET01PYmplY3Qm
IGltcGwpCiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpT
VGVzdEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTI3OCw3ICsyNzgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RBY3RpdmVETwogICAg
IC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBp
bnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQ
b2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3QsIFRlc3RBY3RpdmVET01PYmplY3Q+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUs
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+KGltcGwpKTsKIH0KIAogVGVz
dEFjdGl2ZURPTU9iamVjdCogSlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0b1dyYXBwZWQoSlNDOjpK
U1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNDg4MTVmZmRlOTVkMjBkZmEyMDYyOWRlNjYzNjQ4YjMw
NDhkZmYxNC4uNzdiZjUzOTYzODM2ZjI2NTkxNTE3YTQwNWZmNjM2MmVlZTJiNTE3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3Bw
CkBAIC0xNzgsMTAgKzE3OCwxMCBAQCBleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dl
YkNvcmUzM1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckVbXTsgfQogCiBKU0M6OkpT
VmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I+JiYg
aW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3ImIGltcGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvciYgaW1wbCkKIHsKICAgICBpZiAoSlNWYWx1ZSByZXN1bHQg
PSBnZXRFeGlzdGluZ1dyYXBwZXI8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I+
KGdsb2JhbE9iamVjdCwgaW1wbCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0yMDQsNyAr
MjA0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2xhc3NXaXQKICAgICAvLyBieSBhZGRpbmcgdGhlIFNr
aXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0
aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZU
YWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IsIFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRl
ZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yPihpbXBsKSk7CiB9CiAKIFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciogSlNU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAppbmRleCBkZGFiYTRjMjUyZmIwNmFiNjFkODkz
Zjg3MTZmNzY2MjViZThkN2ZhLi5lYTRkNTc3YzVhMmE2ZjNiNDFhM2MwMTYzNmI5NDQ2YzQzZjdi
MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKQEAgLTE2OCwxMCArMTY4LDEwIEBAIGV4dGVy
biAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTQyVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqCiAKIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RDdXN0
b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdD4mJiBpbXBsKQogewotICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVX
cmFwcGVyPEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0PihnbG9i
YWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdCYgaW1wbCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0JiBpbXBsKQogewogICAgIGlm
IChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKQEAgLTE5NCw3ICsxOTQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21D
bwogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRv
IHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxW
VGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdCwgVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0PihnbG9i
YWxPYmplY3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9i
YWxPYmplY3QsIFJlZjxUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q+
KGltcGwpKTsKIH0KIAogVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
KiBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6dG9XcmFwcGVk
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CmluZGV4IDFjNmNiNGU2NjA2NmVhYTMwNDJmYjQ5OGJkMDAyOWNlMWEyZjFiMDEuLjI5MTdlYWI4
OGQxMWEzYjdmZWFmMzg2ZGU2YWMxMDNjMzJkYWE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcApAQCAtMjI1LDEwICsyMjUsMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVy
biB2b2lkKiBfWlRWTjdXZWJDb3JlMjFUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJFW107IH0KIAogSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCiB7
Ci0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGds
b2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAK
LUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyJiBpbXBsKQorSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXImIGltcGwpCiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0
ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmpl
Y3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMjUxLDcgKzI1MSw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGVzdEN1c3RvbU5hCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFs
aWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJF
TEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVy
KTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAg
cmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RDdXN0
b21OYW1lZEdldHRlcj4oaW1wbCkpOwogfQogCiBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGExZDhmZjMxYmRkNDdkYWI1MzU1ODAx
YjMwNzliNzE0MWVlOWU0YTUuLjFiYzhjZjZiOTMxNjQ4MzYzZjYxYWYyNGI4ZWY2YTVhMDVhNTE2
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI3MywxMCArMjcz
LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTIwVGVzdEV2ZW50
Q29uc3RydWN0b3JFW107IH0KIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV2ZW50
Q29uc3RydWN0b3I+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RFdmVudENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50Q29uc3RydWN0b3ImIGlt
cGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFdmVudENvbnN0cnVjdG9yJiBpbXBsKQogewogICAg
IGlmIChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RFdmVudENvbnN0
cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAt
Mjk5LDcgKzI5OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50Q29uCiAgICAgLy8gYnkgYWRkaW5n
IHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwg
ZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhw
ZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IsIFRlc3RFdmVudENvbnN0cnVjdG9yPihnbG9iYWxPYmpl
Y3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4oaW1wbCkpOwogfQogCiBUZXN0RXZlbnRDb25z
dHJ1Y3RvciogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDRiNjQ1ZGYzMTY5YjMxZDQxMmU5
OTFhYzk0OGZkYjYwNzNiNGM4NWIuLjFmMGY0YzE5OWZlN2YwZWFjMzFlYTFhZjQyY2Y1NTJiMmVj
MDM0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjMyLDEwICsyMzIsMTAgQEAg
ZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRWTjdXZWJDb3JlMTVUZXN0RXZlbnRUYXJnZXRF
W107IH0KIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYmIGlt
cGwpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRUYXJnZXQ+KGds
b2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNU
ZXN0RXZlbnRUYXJnZXQ+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKLUpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdEV2ZW50VGFyZ2V0JiBpbXBsKQorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRU
YXJnZXQmIGltcGwpCiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFw
cGVyPEpTVGVzdEV2ZW50VGFyZ2V0PihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMjU4LDcgKzI1OCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50VGFyCiAg
ICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhl
IGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBj
cmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50VGFyZ2V0LCBUZXN0RXZlbnRUYXJnZXQ+KGdsb2Jh
bE9iamVjdCwgaW1wbCk7CisgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RFdmVudFRhcmdldD4oaW1wbCkpOwogfQogCiBUZXN0RXZlbnRUYXJn
ZXQqIEpTVGVzdEV2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBmMzAxYjVmNzFiYjYxZjk3ZjM1YTQ4MTg3OWEwYzFjNjlh
MGY1OTBjLi5lNDI0MGE1ZTY3NWYwNzlmNWQ2NDM0Njg1NDY2ZWI4Yzg0YmRjZDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcApAQCAtMjA2LDEwICsyMDYsMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVy
biB2b2lkKiBfWlRWTjdXZWJDb3JlMTNUZXN0RXhjZXB0aW9uRVtdOyB9CiAKIEpTQzo6SlNWYWx1
ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPFRlc3RFeGNlcHRpb24+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0RXhjZXB0aW9uPihnbG9iYWxPYmpl
Y3QsIFdURk1vdmUoaW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFeGNlcHRpb24mIGltcGwp
CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFeGNlcHRpb24mIGltcGwpCiB7CiAgICAgaWYgKEpTVmFs
dWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlvbj4oZ2xvYmFsT2Jq
ZWN0LCBpbXBsKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIzMiw3ICsyMzIsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RFeGNlcHRpbwogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZh
bGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBS
RUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRl
cik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24s
IFRlc3RFeGNlcHRpb24+KGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgcmV0dXJuIHRvSlNOZXds
eUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RFeGNlcHRpb24+KGltcGwpKTsK
IH0KIAogVGVzdEV4Y2VwdGlvbiogSlNUZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQoSlNDOjpKU1Zh
bHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4
IGVjNjkxMGJiMjJlY2QyZjRjODI2ZWJiYzg4MjAyNjdhYTQ5NmU4MDAuLjlmMWIyZDYxYjQyY2Yw
NWNjMWRlY2Y4OWVmNzZkN2UyNjk2M2ZmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5jcHAKQEAgLTE2NSwxMCArMTY1LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4g
dm9pZCogX1pUVk43V2ViQ29yZTIzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVFW107IH0KIAogSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkK
IHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7
CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUmIGltcGwpCitKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlJiBpbXBsKQogewogICAgIGlmIChKU1Zh
bHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
PihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTkxLDcg
KzE5MSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVyYXRlCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBT
a2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5p
dGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRW
VGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPihnbG9iYWxPYmpl
Y3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4oaW1wbCkpOwogfQogCiBUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZSogSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6dG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXggZDUxMjU5ZjM0
NGNiMDczODVkM2NkNmM4MzQzNjZkOTU2ZDdjNDUxMi4uZDRkZWRmYWE5ZmJhMTVjNGVjYWU2ODli
ZmQ2NTFmNjFlNzM5MDk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTM0Nywx
MCArMzQ3LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTE2VGVz
dEdsb2JhbE9iamVjdEVbXTsgfQogCiBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2xv
YmFsT2JqZWN0PiYmIGltcGwpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
R2xvYmFsT2JqZWN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBj
cmVhdGVXcmFwcGVyPEpTVGVzdEdsb2JhbE9iamVjdD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0R2xvYmFsT2JqZWN0JiBpbXBsKQorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0R2xvYmFsT2JqZWN0JiBpbXBsKQogewogICAgIGlmIChKU1ZhbHVlIHJlc3Vs
dCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RHbG9iYWxPYmplY3Q+KGdsb2JhbE9iamVjdCwg
aW1wbCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0zNzMsNyArMzczLDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0R2xvYmFsT2IKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0
aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFT
RV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwog
I2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0R2xvYmFsT2JqZWN0LCBU
ZXN0R2xvYmFsT2JqZWN0PihnbG9iYWxPYmplY3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3
bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2xvYmFsT2JqZWN0PihpbXBs
KSk7CiB9CiAKIFRlc3RHbG9iYWxPYmplY3QqIEpTVGVzdEdsb2JhbE9iamVjdDo6dG9XcmFwcGVk
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggMDNmOWYzOTll
ZDZiNjdkOWMwNTFkMTE5NjZmNTVjNjgyYTcyMDk5YS4uYTNmY2ExNDNmMDRhYzY4Mjc1ZDFlYTEw
NTNhYTIzODkwYTI4ZTE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTkxNywxMCArOTE3
LDEwIEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250CiAKIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RJbnRlcmZhY2U+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBl
cjxKU1Rlc3RJbnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIFdURk1vdmUo
aW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbnRlcmZhY2UmIGltcGwpCitKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RJbnRlcmZhY2UmIGltcGwpCiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0g
Z2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTkzMSw3ICs5MzEsNyBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RJbnRlcmZhYwogICAgIC8vIGF0dHJpYnV0ZSB0byBUZXN0SW50ZXJmYWNlLgogICAgIHN0YXRp
Y19hc3NlcnQoIV9faXNfcG9seW1vcnBoaWMoVGVzdEludGVyZmFjZSksICJUZXN0SW50ZXJmYWNl
IGlzIHBvbHltb3JwaGljIGJ1dCB0aGUgSURMIGNsYWltcyBpdCBpcyBub3QiKTsKICNlbmRpZgot
ICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEludGVyZmFjZSwgVGVzdEludGVyZmFj
ZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEludGVyZmFjZT4oaW1wbCkpOwogfQogCiBUZXN0SW50
ZXJmYWNlKiBKU1Rlc3RJbnRlcmZhY2U6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggZGFkNjQz
MmU5NjYzNWIxMGQ4YzdmZmU2ZTM0ODI3MDliNmZlZGE2MC4uYWFmNzkwY2YzMjUxMmMyNTZmNWIw
NDY1ZTNmZTA4ZWNiMTc2MDY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcApAQCAtMTkwLDEwICsxOTAsMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVybiB2
b2lkKiBfWlRWTjdXZWJDb3JlMjZUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckVbXTsgfQogCiBK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4mJiBp
bXBsKQogewotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKGltcGwpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciYg
aW1wbCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXImIGltcGwp
CiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9iamVjdCwgaW1wbCkpCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CkBAIC0yMTYsNyArMjE2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TWVkaWFRdWUKICAg
ICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUg
aW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxl
UG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciwgVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgcmV0dXJuIHRvSlNOZXds
eUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPihpbXBsKSk7CiB9CiAKIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDg5OGVmMjkyYTE3ZTk5OGM2MTFjMDRh
ZmU3NTYzMzQ1NzhjM2MzZGYuLmQ2NGU0MjU3OGUxZmMyOWRiYzM3NGYzMjY3ZjI3ZjE2NWY0MDM3
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxMywxMCArMjEz
LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTIwVGVzdE5hbWVk
Q29uc3RydWN0b3JFW107IH0KIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5hbWVk
Q29uc3RydWN0b3I+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdE5hbWVkQ29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hbWVkQ29uc3RydWN0b3ImIGlt
cGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYW1lZENvbnN0cnVjdG9yJiBpbXBsKQogewogICAg
IGlmIChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAt
MjM5LDcgKzIzOSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hbWVkQ29uCiAgICAgLy8gYnkgYWRkaW5n
IHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwg
ZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhw
ZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IsIFRlc3ROYW1lZENvbnN0cnVjdG9yPihnbG9iYWxPYmpl
Y3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4oaW1wbCkpOwogfQogCiBUZXN0TmFtZWRDb25z
dHJ1Y3RvciogSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAppbmRleCAyZDRhZTk0NDYw
NjQ1ODJlZjc5YzA1ZDAyMTcwMTMxZDk1YzM3ZDMyLi40ZjVhOTE5NDQxNmEyOTc2N2E2OTFiOTVh
MmU1MDNlYjdmMGVhOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCkBA
IC00NzQsMTAgKzQ3NCwxMCBAQCBleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNv
cmUyMFRlc3ROb25kZXRlcm1pbmlzdGljRVtdOyB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3ROb25kZXRlcm1pbmlzdGljPiYmIGltcGwpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3ROb25kZXRlcm1pbmlzdGljPihn
bG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRl
cm1pbmlzdGljJiBpbXBsKQorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyYg
aW1wbCkKIHsKICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBnZXRFeGlzdGluZ1dyYXBwZXI8SlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYz4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTUwMCw3ICs1MDAsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRlcgogICAg
IC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBp
bnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQ
b2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3ROb25kZXRlcm1pbmlzdGljLCBUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vbmRldGVybWluaXN0aWM+KGltcGwpKTsKIH0KIAog
VGVzdE5vbmRldGVybWluaXN0aWMqIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnRvV3JhcHBlZChK
U0M6OkpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDI2MWZhNzBhNTVkY2MwYzY1NmNkZDIz
N2ZjYzcwYzI0MzM0YTMxYjIuLmZiNDFmNGQ5Zjg1YWYwYzM4ZWRmYjk0MjJhMjhmZjVmM2M2ZjQ4
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC02MjY5LDEwICs2MjY5LDEwIEBAIGV4dGVybiAiQyIgeyBleHRl
cm4gdm9pZCogX1pUVk43V2ViQ29yZTdUZXN0T2JqRVtdOyB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RPYmo+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBl
cjxKU1Rlc3RPYmo+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8SlNUZXN0T2JqPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQog
Ci1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RPYmomIGltcGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmomIGlt
cGwpCiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVz
dE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTYy
OTUsNyArNjI5NSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE9iaiYgaW1wCiAgICAgLy8gYnkgYWRkaW5n
IHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwg
ZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhw
ZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdE9iaiwgVGVzdE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICByZXR1cm4gdG9K
U05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE9iaj4oaW1wbCkpOwog
fQogCiBUZXN0T2JqKiBKU1Rlc3RPYmo6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNDgzY2Ex
MjEwZTc5NGViOTE5YzVkZWY5M2U3NjM3MzAwNTQxOTYzMS4uYzAzMDFiMWU1YmI3MThlZTVkYzVi
YjQ5MDhjYTQ0MGYzYWFjYzk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcApAQCAtMjQ5LDEwICsyNDksMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVybiB2
b2lkKiBfWlRWTjdXZWJDb3JlMjZUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0VbXTsgfQogCiBK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4mJiBp
bXBsKQogewotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnM+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKGltcGwpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyYg
aW1wbCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMmIGltcGwp
CiB7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9iamVjdCwgaW1wbCkpCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CkBAIC0yNzUsNyArMjc1LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T3ZlcmxvYWQKICAg
ICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUg
aW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxl
UG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycywgVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgcmV0dXJuIHRvSlNOZXds
eUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzPihpbXBsKSk7CiB9CiAKIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJy
aWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IGMyZjRlOWU1OWI4OGQyMWViYmIxZGU2
YjcxNmQyNjI0MzMxM2Y3YjcuLmQyNmNjNTZmYTQxYzk1YzE2OTc5Mzk3ZGE5N2I5OTgwOWIwNmRk
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTIzMiwxMCArMjMy
LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTIwVGVzdE92ZXJy
aWRlQnVpbHRpbnNFW107IH0KIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE92ZXJy
aWRlQnVpbHRpbnM+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM+KGdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJyaWRlQnVpbHRpbnMmIGlt
cGwpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVycmlkZUJ1aWx0aW5zJiBpbXBsKQogewogICAg
IGlmIChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RPdmVycmlkZUJ1
aWx0aW5zPihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAt
MjU4LDcgKzI1OCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJyaWRlCiAgICAgLy8gYnkgYWRkaW5n
IHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwg
ZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhw
ZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMsIFRlc3RPdmVycmlkZUJ1aWx0aW5zPihnbG9iYWxPYmpl
Y3QsIGltcGwpOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0T3ZlcnJpZGVCdWlsdGlucz4oaW1wbCkpOwogfQogCiBUZXN0T3ZlcnJpZGVC
dWlsdGlucyogSlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKaW5kZXggNTg4YjQzMmViODVlMjI5N2QxMGFhZjEyMzIwZDM4NjA1ZGFkZDQ1
YS4uYmY1MDE0YTUzNzViNTNiOGYwMWI0NzE5M2YyZjgwMWMwZTE0MWZmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAg
LTMwNywxMCArMzA3LDEwIEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29y
ZTM0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUVbXTsKIAogSlNDOjpKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4mJiBpbXBs
KQogewotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4g
Y3JlYXRlV3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+KGdsb2Jh
bE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCkKIHsKICAgICBpZiAoSlNWYWx1ZSByZXN1bHQg
PSBnZXRFeGlzdGluZ1dyYXBwZXI8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
PihnbG9iYWxPYmplY3QsIGltcGwpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMzMzLDcg
KzMzMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlcmlhbGl6CiAgICAgLy8gYnkgYWRkaW5nIHRoZSBT
a2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5p
dGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRW
VGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICByZXR1cm4gdG9KU05ld2x5Q3Jl
YXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT4oaW1wbCkpOwogfQogCiBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
KiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvV3JhcHBlZChKU0M6OkpT
VmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCAzYmYxMzQxZDFjZmQ2MTM2MTYx
ZTQ5YWRkNWVjNTI2MDU0NmJlZDZkLi45OGRjYTdiMjJhMjI1ZmY0YjRlYWI3YWM3YWEzYWMyZTU4
NWVlODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTY2MiwxMCArNjYyLDEwIEBAIGV4dGVy
biAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTEyVGVzdFR5cGVkZWZzRVtdOyB9CiAK
IEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RUeXBlZGVmcz4mJiBpbXBsKQogewotICAg
IHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihnbG9iYWxPYmplY3QsIFdU
Rk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihn
bG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RUeXBlZGVm
cyYgaW1wbCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFR5cGVkZWZzJiBpbXBsKQogewogICAgIGlm
IChKU1ZhbHVlIHJlc3VsdCA9IGdldEV4aXN0aW5nV3JhcHBlcjxKU1Rlc3RUeXBlZGVmcz4oZ2xv
YmFsT2JqZWN0LCBpbXBsKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTY4OCw3ICs2ODgs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RUeXBlZGVmcwogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZU
YWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24K
ICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxl
UG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RUeXBl
ZGVmcywgVGVzdFR5cGVkZWZzPihnbG9iYWxPYmplY3QsIGltcGwpOworICAgIHJldHVybiB0b0pT
TmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+KGltcGwp
KTsKIH0KIAogVGVzdFR5cGVkZWZzKiBKU1Rlc3RUeXBlZGVmczo6dG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCmluZGV4IDk2ZDJlYzI5MzdkMDRkZDFmMjYwZmY4YWJm
YTVlMGFhN2NkMGRhY2UuLjlmN2IxY2U3MWM1NzZmZTQ2OWVjNDI4ZDE3M2ZkMjFiZDgxZTM2MmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0
dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTYXR0cmlidXRlLmNwcApAQCAtMjA2LDEwICsyMDYsMTAgQEAgZXh0ZXJuICJDIiB7IGV4dGVy
biB2b2lkKiBfWlRWTjdXZWJDb3JlOWF0dHJpYnV0ZUVbXTsgfQogCiBKU0M6OkpTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZjxhdHRyaWJ1dGU+JiYgaW1wbCkKIHsKLSAgICByZXR1cm4gY3JlYXRlTmV3V3Jh
cHBlcjxKU2F0dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxKU2F0dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwp
KTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBhdHRyaWJ1dGUmIGltcGwpCitKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGF0
dHJpYnV0ZSYgaW1wbCkKIHsKICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBnZXRFeGlzdGluZ1dy
YXBwZXI8SlNhdHRyaWJ1dGU+KGdsb2JhbE9iamVjdCwgaW1wbCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CkBAIC0yMzIsNyArMjMyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBhdHRyaWJ1dGUmIGkKICAgICAv
LyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50
ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9p
bnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0
ZU5ld1dyYXBwZXI8SlNhdHRyaWJ1dGUsIGF0dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsK
KyAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8YXR0
cmlidXRlPihpbXBsKSk7CiB9CiAKIGF0dHJpYnV0ZSogSlNhdHRyaWJ1dGU6OnRvV3JhcHBlZChK
U0M6OkpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjk1NmRkNDAyOTE3Mzc1Y2QwMTE1
NjJmNDMwNDI4YzgxOTVlODQzOC4uZDRlZjUwY2IwYTlhMTMwMTc0ZWU1YzBlNDRjNjFhYWRkZGE4
MzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtMTU2LDEwICsxNTYsMTAgQEAgdm9pZCBKU3JlYWRvbmx5
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQogCiBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFkb25seT4mJiBpbXBsKQog
ewotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNyZWFkb25seT4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCByZWFkb25seSYgaW1w
bCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgcmVhZG9ubHkmIGltcGwpCiB7CiAgICAgaWYgKEpTVmFsdWUg
cmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdCwgaW1w
bCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0xNzAsNyArMTcwLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCByZWFkb25seSYgaW0KICAgICAvLyBhdHRyaWJ1dGUgdG8gcmVhZG9ubHkuCiAgICAgc3RhdGlj
X2Fzc2VydCghX19pc19wb2x5bW9ycGhpYyhyZWFkb25seSksICJyZWFkb25seSBpcyBwb2x5bW9y
cGhpYyBidXQgdGhlIElETCBjbGFpbXMgaXQgaXMgbm90Iik7CiAjZW5kaWYKLSAgICByZXR1cm4g
Y3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5LCByZWFkb25seT4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKKyAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8
cmVhZG9ubHk+KGltcGwpKTsKIH0KIAogcmVhZG9ubHkqIEpTcmVhZG9ubHk6OnRvV3JhcHBlZChK
U0M6OkpTVmFsdWUgdmFsdWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279391</attachid>
            <date>2016-05-19 08:49:35 -0700</date>
            <delta_ts>2016-05-19 09:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157842-20160519085034.patch</filename>
            <type>text/plain</type>
            <size>27198</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NkZGM0YTY3ODJkZGU4
ZDk3ZmMwMjA4ZDBlNmUxYTM3ZDQ0ODJlNS4uYzg1NWY4OWRlM2M3MDliY2ZmNTQ1MTc0ZjQ5MjQ3
NjFjZWE4YjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE2LTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgS2lsbCBKU0RPTUJpbmRpbmdz
JyBjcmVhdGVOZXdXcmFwcGVyKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1Nzg0MgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQu
CisKKyAgICAgICAgS2lsbCBKU0RPTUJpbmRpbmdzJyBjcmVhdGVOZXdXcmFwcGVyKCkgYXMgaXQg
aXMgaWRlbnRpY2FsIHRvIGNyZWF0ZVdyYXBwZXIoKS4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTmV3V3JhcHBlcik6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEZyYWdtZW50Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3Jh
cHBlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNy
ZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNO
ZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNy
ZWFkb25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKwogMjAx
Ni0wNS0xOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dTdHJlYW1lcl0gdW5yZWxhdGVkIGNvZGVjcyByZXF1aXJlZCB0byBwbGF5IHZpZGVvcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA5ZmNhYTBmM2Vl
YzM2YTg0MTRjYjg1ZTk3ZGEzMTk5M2QxY2UyNDBlLi40NjVkODU4YjRmZjEwY2MyNjJiOTIwMzQ2
ZmQyMDY2ZDUxOTgyZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaApAQCAtMTY0LDcgKzE2NCw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzLCB0eXBl
bmFtZSBXcmFwcGVyQ2xhc3M+IHZvaWQgdW5jYWNoZVdyYXBwZXIoRE9NV3JhcHBlCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBXcmFwcGVyQ2xhc3Mq
IGNyZWF0ZVdyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqLCBSZWY8RE9NQ2xhc3M+JiYpOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBET01DbGFzcz4gSlNDOjpKU1ZhbHVlIHdyYXAoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIERPTUNsYXNzJik7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBX
cmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBKU0M6OkpTVmFsdWUgY3JlYXRlTmV3V3Jh
cHBlcihKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxET01DbGFzcz4mJik7CiAKIHZvaWQgYWRkSW1w
dXJlUHJvcGVydHkoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKQEAgLTQ3MSwxMiArNDcwLDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgd3JhcChKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE8KICAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8RE9NQ2xhc3M+KGRvbU9iamVjdCkpOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpK
U1ZhbHVlIGNyZWF0ZU5ld1dyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPERPTUNsYXNzPiYmIGRvbU9iamVjdCkKLXsKLSAgICBBU1NFUlQoIWdldENhY2hlZFdyYXBw
ZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBkb21PYmplY3QpKTsKLSAgICByZXR1cm4gY3JlYXRl
V3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShkb21PYmplY3QpKTsK
LX0KLQogaW5saW5lIGludDMyX3QgZmluaXRlSW50MzJWYWx1ZShKU0M6OkpTVmFsdWUgdmFsdWUs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBib29sJiBva2F5KQogewogICAgIGRvdWJsZSBudW1iZXIg
PSB2YWx1ZS50b051bWJlcihleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRG9jdW1lbnRGcmFnbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCmluZGV4IDMxZTc5NWRmYjViZjlk
NDhlY2JjZmExZGQzMGQ3OTA3ZTE5ZDJiMWYuLjcyODg4MWYwZmM5OWNhZWMwZWI0Y2QxZGZhNzk3
YzhiNDQ4Yzc1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRGcmFnbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEb2N1bWVudEZyYWdtZW50Q3VzdG9tLmNwcApAQCAtNTgsNyArNTgsNyBAQCBKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPERvY3VtZQogICAgIGlmIChpbXBsLT5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNoYWRvd1Jvb3QsIFdURk1vdmUo
aW1wbCkpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNEb2N1bWVudEZy
YWdtZW50PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVX
cmFwcGVyPEpTRG9jdW1lbnRGcmFnbWVudD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsK
IH0KIAogSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDJkYjdjNDFiZTA3ODU4Mjk4
NjliMzc3N2U2MGQ5YjEwZGJlZGNlNmQuLjA5MDA1MzczZjk2MmI0ZjRiNThlYWMyNjlhOWUyZDFi
NjAzNjhiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxp
c3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RD
dXN0b20uY3BwCkBAIC01Niw3ICs1Niw3IEBAIEpTQzo6SlNWYWx1ZSBjcmVhdGVXcmFwcGVyKEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxOb2RlTGlzdD4mJiBub2RlCiAgICAg
Ly8gRklYTUU6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCwgYW5kIHN3aXRjaCB0byBy
ZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNTk1CiAgICAgZ2xvYmFsT2JqZWN0LnZtKCkuaGVhcC5kZXBy
ZWNhdGVkUmVwb3J0RXh0cmFNZW1vcnkobm9kZUxpc3QtPm1lbW9yeUNvc3QoKSk7Ci0gICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNOb2RlTGlzdD4oJmdsb2JhbE9iamVjdCwgV1RGTW92ZShu
b2RlTGlzdCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEpTTm9kZUxpc3Q+KCZnbG9iYWxP
YmplY3QsIFdURk1vdmUobm9kZUxpc3QpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNy
ZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPE5v
ZGVMaXN0PiYmIG5vZGVMaXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAwZTMwNDgyNzM3Y2UzOWVjYjEzZjRjYzM0NjAw
ZDUyMGQxZWExNzExLi45MjEyYjcxOWM1YTY5YWRkZTAyZWU0NDViNTIyZDIwYTE1NGZhYjU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtMzQ0Niw3ICszNDQ2LDcgQEAgRU5ECiAgICAgZ2xvYmFsT2JqZWN0LT52bSgpLmhl
YXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoaW1wbC0+bWVtb3J5Q29zdCgpKTsKIEVORAog
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PCRjbGFzc05hbWUsICRpbXBsVHlwZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTtcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjwk
Y2xhc3NOYW1lLCAkaW1wbFR5cGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAkaW1wbFR5cGUmIGltcGwpXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggOWE2NGQzMjA0OTVhN2I2ZGFiMjdiMjUz
YTdhMjI4MjQzMmNhYjZlOS4uOTIwMzNmY2YyMTYyZTJlMjdlMTY3ZDk4Y2E4M2U4YzVhNDEwM2Y0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTI3MSw3ICsyNzEsNyBA
QCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxl
VmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAg
IFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2lu
dGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEFjdGl2ZURP
TU9iamVjdCwgVGVzdEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwp
KTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3QsIFRlc3RB
Y3RpdmVET01PYmplY3Q+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGVzdEFjdGl2ZURPTU9iamVjdCYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGQ0ZmQyMjZm
NDNhNGUwZjMwYWY1ODg3NGFlMzY3YzU2MDQzM2VkZjcuLmRkY2ZkMmYwYjgwNzc2YzdmM2FjODQ5
ZjM1YzJhOGI0NDBjMmZlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0
dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NF
UlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlm
Ci0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3IsIFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvciwgVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Qu
Y3BwCmluZGV4IGU3Njg2MjM4NDY2NTFhNDg0NDNiNDJhMGQzYjdjZTkwM2Y5MWI0ZWMuLmEyMGRj
NDg4NTc2YzM5OGY2OTcwNDBiNTVkNGNkNWM2YTFhNTU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3Rvcldp
dGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
LmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAvLyBi
eSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJm
YWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRl
ciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QsIFRl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdCwgVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdCYg
aW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IGYzODEwMjcw
ZThiMzZhZWFhNmY3NWJlZGVjNzUwY2M0NTMzNWQxZGUuLjZmM2IwMzAyNmViMWU3MTNkNTMxY2U3
ZWExZDdjNzAzOGI1NzlkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cApAQCAtMjQ0LDcgKzI0NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAvLyBieSBh
ZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNl
IElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9
PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dy
YXBwZXI8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIsIFRlc3RDdXN0b21OYW1lZEdldHRlcj4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlciwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmplY3Qs
IFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYW1lZEdl
dHRlciYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCBlODk5
NTNjZmQyYzczODA4NGJmNTFlZGZiMWMxYzBhZTIyYzRjNTllLi43NzgzZTA0M2M3ODY0NWMzMTky
MWU5NjQ5NDYwMzRkOWNhYmFhMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCkBAIC0yOTIsNyArMjkyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIC8vIGJ5
IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZh
Y2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVy
ID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjxKU1Rlc3RFdmVudENvbnN0cnVjdG9yLCBUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rl
c3RFdmVudENvbnN0cnVjdG9yLCBUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKGltcGwpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRDb25zdHJ1Y3Rv
ciYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGYwMjAyZWI2NzI1YzkyY2Qz
YWUzZDc1YTBjNTcyM2Y1ZGY3YjlmYWEuLmQwNTQ1ZmVmMTAyYmNlNjc2OGRjM2NjZWRmNTM3MjUw
YWIzOWQ1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjUxLDcgKzI1MSw3IEBA
IEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVW
YWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAg
UkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50
ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRUYXJn
ZXQsIFRlc3RFdmVudFRhcmdldD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RFdmVudFRhcmdldCwgVGVzdEV2ZW50VGFyZ2V0Pihn
bG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RF
dmVudFRhcmdldCYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNTEwMDRkNWYwMjIw
N2NiZjRiN2Q5OTc2ZTk4YjEyYzRmNTU2N2EyMy4uNWQzYTFmOGIwZTk5NjUxMDFkMTc4MWE3NDAx
ZDE2YzE3ODcxY2JkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTIyNSw3ICsyMjUsNyBA
QCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxl
VmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAg
IFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2lu
dGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlv
biwgVGVzdEV4Y2VwdGlvbj4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24sIFRlc3RFeGNlcHRpb24+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV4Y2VwdGlv
biYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCAw
YjJjMDJkODM2Nzk4ODBiYjljYzlhNDdkZTFiMjVlZjYxMmEyNWE1Li4yMGE1MGY0NjI2MzYyNTY5
YThmMDVmNzU4NmFlMWY4ZGZlZjM3N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNy
ZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAog
ICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRo
ZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFi
bGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4g
Y3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLCBUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLCBUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHAKaW5kZXggZGNjNDAyMWExMmU1ZDYwYmM2YTY3ZDM5NzI5N2FkNDI4ZjM3Y2ViNy4uNGY3N2Y4
YTQ2YjA4ZjZlZTZiZGYzMjEzOGU4ZDMzYjQ5ZWIzNzgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5jcHAKQEAgLTM2Niw3ICszNjYsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRl
ZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
Ly8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGlu
dGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBv
aW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdEdsb2JhbE9iamVjdCwgVGVzdEdsb2JhbE9iamVjdD4oZ2xvYmFs
T2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU1Rlc3RH
bG9iYWxPYmplY3QsIFRlc3RHbG9iYWxPYmplY3Q+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSk7CiB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdsb2JhbE9iamVjdCYgaW1wbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAKaW5kZXggYTgxMWRkYWIzYjAwYTJiMjE2NjNjZGYzYzk1MDI0MzllNGU0
OWUwMS4uNzdiMzgxYTQ0ZDJhM2MwNGQwNzhkNTE1MGEyNjA5OWU2ZmI2MTc1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAKQEAgLTkyNCw3ICs5MjQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgLy8gYXR0cmlidXRlIHRvIFRlc3RJbnRlcmZhY2UuCiAgICAgc3RhdGljX2Fzc2VydCgh
X19pc19wb2x5bW9ycGhpYyhUZXN0SW50ZXJmYWNlKSwgIlRlc3RJbnRlcmZhY2UgaXMgcG9seW1v
cnBoaWMgYnV0IHRoZSBJREwgY2xhaW1zIGl0IGlzIG5vdCIpOwogI2VuZGlmCi0gICAgcmV0dXJu
IGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0SW50ZXJmYWNlLCBUZXN0SW50ZXJmYWNlPihnbG9iYWxP
YmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdElu
dGVyZmFjZSwgVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0K
IAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SW50ZXJmYWNlJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDczZTFmYjkxZDkwMGVhZDg1ZTRm
Nzc4OWUwOTFlZTMwNmM5MDFhZjcuLjhiMzhjM2RlNzE0YjI5MGZjY2JjNTczNjBjNmVmNzk4Nzc2
ODU3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAK
QEAgLTIwOSw3ICsyMDksNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRk
aW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJ
REwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0g
ZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFw
cGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCmluZGV4IDE3ZTA1MjVhZWQyNGJlMDhjZTFjOTRmMzk2NmEwMTczMjRhMzAw
YjUuLjI5YWIzZGVjODNkMzM0NjRjOGRiZWQ2OTk3YWNiNjI0YjkwYzA2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBh
dHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNT
RVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRp
ZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5hbWVkQ29uc3RydWN0b3IsIFRl
c3ROYW1lZENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdE5hbWVkQ29uc3RydWN0b3IsIFRlc3ROYW1lZENvbnN0
cnVjdG9yPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFRlc3ROYW1lZENvbnN0cnVjdG9yJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDcxOGM1ZjUx
MDcxNjEyMjRiMTA0MTEzMzdiOWFjYmM1MDAyMDRjM2IuLjMzMTNkMmRiZTg2MzE1ODU0NWQzNmEz
YTQ4ODlkZWZmN2QxYTI1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRh
dGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVB
U0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsK
ICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5vZGUsIFRlc3ROb2Rl
PihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PEpTVGVzdE5vZGUsIFRlc3ROb2RlPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQog
CiBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb2RlJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwCmluZGV4IGMxM2RjYzI4YzMwYTRlMGI1MWY4ZjE2M2EyNGU5YmYwNTJlMDMw
Y2QuLmFkMTQ0N2JlNTJiMjFkMTU3MGE1NzljZDEyMzIwMGU3ODdiMDEwMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKQEAgLTQ5Myw3ICs0OTMsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBh
dHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNT
RVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRp
ZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5vbmRldGVybWluaXN0aWMsIFRl
c3ROb25kZXRlcm1pbmlzdGljPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPEpTVGVzdE5vbmRldGVybWluaXN0aWMsIFRlc3ROb25kZXRlcm1p
bmlzdGljPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFRlc3ROb25kZXRlcm1pbmlzdGljJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAxOGE2ZDI3MmRh
NGE5ODQ5YjQ4MTQwN2I3ZjA2ZjJkMzJjODY2NGQxLi4yOTdmOWRmY2UxZDcxOWI1MjJhZDc1YTAz
ODVkOTNjMWQzYzZjOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNjI4OCw3ICs2Mjg4LDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRp
b24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNF
X0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAj
ZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RPYmosIFRlc3RPYmo+KGds
b2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNU
ZXN0T2JqLCBUZXN0T2JqPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RPYmomIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNmVkNjJjNWJkODIwNDE1MDhhNTUzNjEzMGYyYTZlZmQy
YzEzN2M4My4uNTkyODkzNTdjOTFkODdkMmI2M2M3MmU5MmVhMWNiYzc4MTg1MWFiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMjY4LDcgKzI2
OCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBW
VGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9u
CiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycywgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycywgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAK
aW5kZXggNmNiNWQ2NGE1ZDBlMDdhODE1OGYwNDg0ZWE1YjIzOWM2ODQ4OGViMi4uM2JmZjI0M2Fm
NzVkYzYzM2MyYzFkOTVkZWMzODg0MzQ2YTM1NzA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zLmNwcApAQCAtMjUxLDcgKzI1MSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0
aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRh
YmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgcmV0dXJu
IGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucywgVGVzdE92ZXJyaWRlQnVp
bHRpbnM+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdy
YXBwZXI8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucywgVGVzdE92ZXJyaWRlQnVpbHRpbnM+KGdsb2Jh
bE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CiB9CiAKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJy
aWRlQnVpbHRpbnMmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGNlNGIwOTU4NzY5NTYxMzg5NzJhMTEzZGM4
NGViZTU1YjBiYWU2NTEuLmJiNDI4YWVmZTc0ZDYyNWQ4NzA1MTJkODk0NTMwZjRlNjJjN2I1ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCkBAIC0zMjYsNyArMzI2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBp
bnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQ
b2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UsIFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPihnbG9iYWxPYmpl
Y3QsIFdURk1vdmUoaW1wbCkpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCBkOTRj
MDNhZjVmZjUzMmRmMTFmYTdiOGRlMjExNTlhMjFiMGQzZmY4Li4wMDhkMWI5MGIzMjUzMTBiNDg1
NjVmMjI2MjdjZGY3MWYwNzEwOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTY4MSw3ICs2
ODEsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lw
VlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlv
bgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFi
bGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5
cGVkZWZzLCBUZXN0VHlwZWRlZnM+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNUZXN0VHlwZWRlZnMsIFRlc3RUeXBlZGVmcz4oZ2xvYmFs
T2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0VHlwZWRl
ZnMmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCAwYjA2MmFjZDI3MjJlYmM1NmJjNDRhNWRlMzhk
MjBlNDFhYWYxMzE2Li4zYzBkNzNiOWIyNzMyZTU0MTI1YmUwOWVlOGI3YTEwYjFlMmVlZjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRy
aWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U2F0dHJpYnV0ZS5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8g
dGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZU
YWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmlidXRlLCBhdHRyaWJ1dGU+KGdsb2JhbE9iamVjdCwg
V1RGTW92ZShpbXBsKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8SlNhdHRyaWJ1dGUsIGF0
dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAogSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBhdHRyaWJ1dGUmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNTMyMjZkMjNiOTcxMmMzZjQx
NDI5N2M0ZGJjMWM3NjJkYTVhZjg5Yi4uOTg3NzQ0YTRjOTRkYzJhOWI5YWE0Y2E4YmY1YzNjNWEy
ZTNlOTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICAvLyBhdHRyaWJ1dGUgdG8gcmVhZG9ubHkuCiAgICAgc3RhdGljX2Fzc2Vy
dCghX19pc19wb2x5bW9ycGhpYyhyZWFkb25seSksICJyZWFkb25seSBpcyBwb2x5bW9ycGhpYyBi
dXQgdGhlIElETCBjbGFpbXMgaXQgaXMgbm90Iik7CiAjZW5kaWYKLSAgICByZXR1cm4gY3JlYXRl
TmV3V3JhcHBlcjxKU3JlYWRvbmx5LCByZWFkb25seT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxKU3JlYWRvbmx5LCByZWFkb25seT4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCByZWFkb25s
eSYgaW1wbCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>