<?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>237879</bug_id>
          
          <creation_ts>2022-03-15 00:21:15 -0700</creation_ts>
          <short_desc>[WebGPU] Implement first draft of debug commands according to the spec</short_desc>
          <delta_ts>2022-03-16 20:38:19 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>237877</dependson>
          <blocked>237882</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>djg</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851183</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 00:21:15 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851184</commentid>
    <comment_count>1</comment_count>
      <attachid>454673</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 00:22:51 -0700</bug_when>
    <thetext>Created attachment 454673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851189</commentid>
    <comment_count>2</comment_count>
      <attachid>454675</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 00:48:13 -0700</bug_when>
    <thetext>Created attachment 454675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851798</commentid>
    <comment_count>3</comment_count>
      <attachid>454675</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-16 07:58:58 -0700</bug_when>
    <thetext>Comment on attachment 454675
Patch

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

&gt; Source/WebGPU/WebGPU/RenderPassEncoder.mm:112
&gt; +    // There&apos;s no direct way of doing this, so we just push/pop an empty debug group.

is this comment still valid? below we seem to insert a signpost instead of an empty debug group</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852117</commentid>
    <comment_count>4</comment_count>
      <attachid>454675</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-16 20:06:36 -0700</bug_when>
    <thetext>Comment on attachment 454675
Patch

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

&gt;&gt; Source/WebGPU/WebGPU/RenderPassEncoder.mm:112
&gt;&gt; +    // There&apos;s no direct way of doing this, so we just push/pop an empty debug group.
&gt; 
&gt; is this comment still valid? below we seem to insert a signpost instead of an empty debug group

Nope! Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852122</commentid>
    <comment_count>5</comment_count>
      <attachid>454929</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-16 20:30:47 -0700</bug_when>
    <thetext>Created attachment 454929
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852123</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-16 20:37:24 -0700</bug_when>
    <thetext>Committed r291386 (?): &lt;https://commits.webkit.org/r291386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852124</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-16 20:38:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/90407762&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454673</attachid>
            <date>2022-03-15 00:22:51 -0700</date>
            <delta_ts>2022-03-15 00:34:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>4532</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGM0YWYzYjA3NDU0ODEzMWUyMDNhZTE0MzA2YzI1YWU4NzVkOGJkZTcKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE1
IDAwOjIyOjIzIDIwMjIgLTA3MDAKCiAgICBQYXJ0IDExCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCA3ZjdlMGEzMDhi
NTcuLmRmMDAwZmQ1Njg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMi0wMy0xNSAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJH
UFVdIEltcGxlbWVudCBmaXJzdCBkcmFmdCBvZiBDb21tYW5kRW5jb2RlcidzIGRlYnVnIGNvbW1h
bmRzIGFjY29yZGluZyB0byB0aGUgc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1Z01h
cmtlcigpLCBDb21tYW5kRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAoKSwKKyAgICAgICAgYW5kIENv
bW1hbmRFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkgYWNjb3JkaW5nIHRvIHRoZSBhbGdvcml0aG1z
IGluIHRoZSBzcGVjLgorICAgICAgICBUaGVyZSBhcmUgYSBmZXcgdGhpbmdzIHdoaWNoIHRoZSBz
cGVjIGxpc3RzIHdoaWNoIHdlIGNhbid0IGRvIHlldCAobGlrZSByZXBvcnRpbmcKKyAgICAgICAg
dmFsaWRhdGlvbiBlcnJvcnMpLCBzbyB0aG9zZSB0aGluZ3MgYXJlIGxlZnQgd2l0aCBGSVhNRXMu
IEV2ZXJ5IHN0ZXAgaXMgbGlzdGVkCisgICAgICAgIHdpdGggbGlua3MgdG8gdGhlIHNwZWMgd2hl
cmUgYXBwcm9wcmlhdGUsIGFuZCB3aXRoIHF1b3RlcyB0byB0aGUgc3BlYyBkZXNjcmliaW5nCisg
ICAgICAgIHdoYXQgaXMgYmVpbmcgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBXZWJHUFUvQ29t
bWFuZEVuY29kZXIuaDoKKyAgICAgICAgKiBXZWJHUFUvQ29tbWFuZEVuY29kZXIubW06CisgICAg
ICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAg
IChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjp2YWxpZGF0ZVBvcERlYnVnR3JvdXAgY29uc3QpOgor
ICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAg
IChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6CisKIDIwMjItMDMtMTQg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
R1BVXSBJbXBsZW1lbnQgZmlyc3QgZHJhZnQgb2YgQ29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVy
KCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9Db21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIu
aAppbmRleCAyNDUzZWRhYmZkMzAuLjI1NWUxM2Y5Y2RlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9D
b21tYW5kRW5jb2Rlci5oCkBAIC02NywxMiArNjcsMTUgQEAgcHJpdmF0ZToKICAgICBDb21tYW5k
RW5jb2RlcihpZDxNVExDb21tYW5kQnVmZmVyPik7CiAKICAgICBib29sIHZhbGlkYXRlRmluaXNo
KCkgY29uc3Q7CisgICAgYm9vbCB2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSBjb25zdDsKIAogICAg
IHZvaWQgZW5zdXJlQmxpdENvbW1hbmRFbmNvZGVyKCk7CiAgICAgdm9pZCBmaW5hbGl6ZUJsaXRD
b21tYW5kRW5jb2RlcigpOwogCiAgICAgaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gbV9jb21tYW5kQnVm
ZmVyIHsgbmlsIH07CiAgICAgaWQ8TVRMQmxpdENvbW1hbmRFbmNvZGVyPiBtX2JsaXRDb21tYW5k
RW5jb2RlciB7IG5pbCB9OworCisgICAgdWludDY0X3QgbV9kZWJ1Z0dyb3VwU3RhY2tTaXplIHsg
MCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1h
bmRFbmNvZGVyLm1tCmluZGV4IDY0YWYzOGE3OWI1My4uNmNmZTVjNDY5YWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMjcyLDE2ICsyNzIsNjAgQEAgUmVmUHRy
PENvbW1hbmRCdWZmZXI+IENvbW1hbmRFbmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRC
dWZmZXJEZXNjcmlwdG9yJgogCiB2b2lkIENvbW1hbmRFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtl
cihjb25zdCBjaGFyKiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0obWFya2VyTGFi
ZWwpOworICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1
Z2NvbW1hbmRzbWl4aW4taW5zZXJ0ZGVidWdtYXJrZXIKKworICAgIC8vICJQcmVwYXJlIHRoZSBl
bmNvZGVyIHN0YXRlIG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlm
ICghcHJlcGFyZVRoZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmaW5h
bGl6ZUJsaXRDb21tYW5kRW5jb2RlcigpOworCisgICAgLy8gVGhlcmUncyBubyBkaXJlY3Qgd2F5
IG9mIGRvaW5nIHRoaXMsIHNvIHdlIGp1c3QgcHVzaC9wb3AgYW4gZW1wdHkgZGVidWcgZ3JvdXAu
CisgICAgW21fY29tbWFuZEJ1ZmZlciBwdXNoRGVidWdHcm91cDptYXJrZXJMYWJlbCA/IFtOU1N0
cmluZyBzdHJpbmdXaXRoQ1N0cmluZzptYXJrZXJMYWJlbCBlbmNvZGluZzpOU1VURjhTdHJpbmdF
bmNvZGluZ10gOiBuaWxdOworICAgIFttX2NvbW1hbmRCdWZmZXIgcG9wRGVidWdHcm91cF07Cit9
CisKK2Jvb2wgQ29tbWFuZEVuY29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0Cit7
CisgICAgLy8gInRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11dIG11c3Qgbm90IGJlIGVtcHR5LiIK
KyAgICBpZiAoIW1fZGVidWdHcm91cFN0YWNrU2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQ29tbWFuZEVuY29kZXI6OnBvcERlYnVnR3Jv
dXAoKQogeworICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVk
ZWJ1Z2NvbW1hbmRzbWl4aW4tcG9wZGVidWdncm91cAorCisgICAgLy8gIlByZXBhcmUgdGhlIGVu
Y29kZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYg
KCFwcmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJJ
ZiBhbnkgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgYXJlIHVubWV0IgorICAgIGlmICgh
dmFsaWRhdGVQb3BEZWJ1Z0dyb3VwKCkpIHsKKyAgICAgICAgLy8gRklYTUU6ICJtYWtlIHRoaXMg
aW52YWxpZCwgYW5kIHN0b3AuIgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZmluYWxp
emVCbGl0Q29tbWFuZEVuY29kZXIoKTsKKworICAgIC8vICJQb3AgYW4gZW50cnkgb2ZmIG9mIHRo
aXMuW1tkZWJ1Z19ncm91cF9zdGFja11dLiIKKyAgICBbbV9jb21tYW5kQnVmZmVyIHBvcERlYnVn
R3JvdXBdOwogfQogCiB2b2lkIENvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdHcm91cChjb25zdCBj
aGFyKiBncm91cExhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKKyAgICAv
LyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21p
eGluLXB1c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBv
ZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVF
bmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZpbmFsaXplQmxpdENv
bW1hbmRFbmNvZGVyKCk7CisKKyAgICAvLyAiUHVzaCBncm91cExhYmVsIG9udG8gdGhpcy5bW2Rl
YnVnX2dyb3VwX3N0YWNrXV0uIgorICAgIFttX2NvbW1hbmRCdWZmZXIgcHVzaERlYnVnR3JvdXA6
Z3JvdXBMYWJlbCA/IFtOU1N0cmluZyBzdHJpbmdXaXRoQ1N0cmluZzpncm91cExhYmVsIGVuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSA6IG5pbF07CiB9CiAKIHZvaWQgQ29tbWFuZEVuY29k
ZXI6OnJlc29sdmVRdWVyeVNldChjb25zdCBRdWVyeVNldCYgcXVlcnlTZXQsIHVpbnQzMl90IGZp
cnN0UXVlcnksIHVpbnQzMl90IHF1ZXJ5Q291bnQsIGNvbnN0IEJ1ZmZlciYgZGVzdGluYXRpb24s
IHVpbnQ2NF90IGRlc3RpbmF0aW9uT2Zmc2V0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454675</attachid>
            <date>2022-03-15 00:48:13 -0700</date>
            <delta_ts>2022-03-16 07:58:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15620</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDJmNjNiZDc5ZmZjNTc1OTFkMzViM2I0ZDQzZmRhMmEzZjEyZjNiZjIKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE1
IDAwOjQ3OjQwIDIwMjIgLTA3MDAKCiAgICBQYXJ0IDExCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCA3ZjdlMGEzMDhi
NTcuLjJjODA4YzVmZmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMi0wMy0xNSAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJH
UFVdIEltcGxlbWVudCBmaXJzdCBkcmFmdCBvZiBkZWJ1ZyBjb21tYW5kcyBhY2NvcmRpbmcgdG8g
dGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNzg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBpbnNlcnREZWJ1Z01hcmtlcigpLCBwdXNoRGVidWdHcm91cCgpLCBhbmQgcG9w
RGVidWdHcm91cCgpIGFjY29yZGluZyB0bworICAgICAgICB0aGUgYWxnb3JpdGhtcyBpbiB0aGUg
c3BlYy4gVGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB3aGljaCB0aGUgc3BlYyBsaXN0cyB3aGljaCB3
ZQorICAgICAgICBjYW4ndCBkbyB5ZXQgKGxpa2UgbWFraW5nIG9iamVjdHMgaW52YWxpZCksIHNv
IHRob3NlIHRoaW5ncyBhcmUgbGVmdCB3aXRoIEZJWE1Fcy4KKyAgICAgICAgRXZlcnkgc3RlcCBp
cyBsaXN0ZWQgd2l0aCBsaW5rcyB0byB0aGUgc3BlYyB3aGVyZSBhcHByb3ByaWF0ZSwgYW5kIHdp
dGggcXVvdGVzIHRvCisgICAgICAgIHRoZSBzcGVjIGRlc2NyaWJpbmcgd2hhdCBpcyBiZWluZyBp
bXBsZW1lbnRlZC4gQWxzbywgYmVjYXVzZSBlYWNoIGNsYXNzIGhhbmRsZXMKKyAgICAgICAgdGhl
c2UgZGVidWcgY29tbWFuZHMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgKENvbW1hbmRFbmNvZGVycyBz
dXBwb3J0IGRlYnVnIGdyb3VwcworICAgICAgICBidXQgbm90IGRlYnVnIG1hcmtlcnM7IFJlbmRl
ckJ1bmRsZXMgZG9uJ3Qgc3VwcG9ydCBhbnkgb2YgdGhlbSwgYW5kCisgICAgICAgIENvbXB1dGVF
bmNvZGVycyBzdXBwb3J0IGFsbCBvZiB0aGVtKSBJIG9wdGVkIHRvIG5vdCB0cnkgdG8gZG8gYW55
IGNvZGUgc2hhcmluZy4KKworICAgICAgICAqIFdlYkdQVS9Db21tYW5kRW5jb2Rlci5oOgorICAg
ICAgICAqIFdlYkdQVS9Db21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFu
ZEVuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCBjb25zdCk6CisgICAgICAgIChXZWJHUFU6OkNv
bW1hbmRFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKiBXZWJHUFUvQ29tcHV0ZVBhc3NFbmNv
ZGVyLmg6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQYXNzRW5jb2Rlci5tbToKKyAgICAgICAg
KFdlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAg
IChXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcjo6dmFsaWRhdGVQb3BEZWJ1Z0dyb3VwIGNvbnN0
KToKKyAgICAgICAgKFdlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToK
KyAgICAgICAgKFdlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6Cisg
ICAgICAgICogV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIuaDoKKyAgICAgICAgKiBXZWJHUFUv
UmVuZGVyQnVuZGxlRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5j
b2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIpOgorICAgICAgICAoV2ViR1BVOjpSZW5kZXJCdW5kbGVF
bmNvZGVyOjp2YWxpZGF0ZVBvcERlYnVnR3JvdXAgY29uc3QpOgorICAgICAgICAoV2ViR1BVOjpS
ZW5kZXJCdW5kbGVFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKToKKyAgICAgICAgKFdlYkdQVTo6UmVu
ZGVyQnVuZGxlRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAqIFdlYkdQVS9SZW5k
ZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIFdlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5tbToK
KyAgICAgICAgKFdlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI6Omluc2VydERlYnVnTWFya2VyKToK
KyAgICAgICAgKFdlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91
cCBjb25zdCk6CisgICAgICAgIChXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyOjpwb3BEZWJ1Z0dy
b3VwKToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI6OnB1c2hEZWJ1Z0dyb3Vw
KToKKwogMjAyMi0wMy0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBmaXJzdCBkcmFmdCBvZiBDb21tYW5kRW5j
b2Rlcjo6Y2xlYXJCdWZmZXIoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9Db21tYW5kRW5jb2Rlci5oCmluZGV4IDI0NTNlZGFiZmQzMC4uMjU1ZTEzZjljZGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLmgKQEAgLTY3LDEyICs2NywxNSBAQCBwcml2
YXRlOgogICAgIENvbW1hbmRFbmNvZGVyKGlkPE1UTENvbW1hbmRCdWZmZXI+KTsKIAogICAgIGJv
b2wgdmFsaWRhdGVGaW5pc2goKSBjb25zdDsKKyAgICBib29sIHZhbGlkYXRlUG9wRGVidWdHcm91
cCgpIGNvbnN0OwogCiAgICAgdm9pZCBlbnN1cmVCbGl0Q29tbWFuZEVuY29kZXIoKTsKICAgICB2
b2lkIGZpbmFsaXplQmxpdENvbW1hbmRFbmNvZGVyKCk7CiAKICAgICBpZDxNVExDb21tYW5kQnVm
ZmVyPiBtX2NvbW1hbmRCdWZmZXIgeyBuaWwgfTsKICAgICBpZDxNVExCbGl0Q29tbWFuZEVuY29k
ZXI+IG1fYmxpdENvbW1hbmRFbmNvZGVyIHsgbmlsIH07CisKKyAgICB1aW50NjRfdCBtX2RlYnVn
R3JvdXBTdGFja1NpemUgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KaW5kZXggNjRhZjM4YTc5YjUzLi4yYzA3ZGRk
MjY5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCkBAIC0yNzIsMTYg
KzI3Miw2MiBAQCBSZWZQdHI8Q29tbWFuZEJ1ZmZlcj4gQ29tbWFuZEVuY29kZXI6OmZpbmlzaChj
b25zdCBXR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImCiAKIHZvaWQgQ29tbWFuZEVuY29kZXI6
Omluc2VydERlYnVnTWFya2VyKGNvbnN0IGNoYXIqIG1hcmtlckxhYmVsKQogewotICAgIFVOVVNF
RF9QQVJBTShtYXJrZXJMYWJlbCk7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dw
dXdlYi8jZG9tLWdwdWRlYnVnY29tbWFuZHNtaXhpbi1pbnNlcnRkZWJ1Z21hcmtlcgorCisgICAg
Ly8gIlByZXBhcmUgdGhlIGVuY29kZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxz
ZSwgc3RvcC4iCisgICAgaWYgKCFwcmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGZpbmFsaXplQmxpdENvbW1hbmRFbmNvZGVyKCk7CisKKyAgICAvLyBUaGVy
ZSdzIG5vIGRpcmVjdCB3YXkgb2YgZG9pbmcgdGhpcywgc28gd2UganVzdCBwdXNoL3BvcCBhbiBl
bXB0eSBkZWJ1ZyBncm91cC4KKyAgICBbbV9jb21tYW5kQnVmZmVyIHB1c2hEZWJ1Z0dyb3VwOm1h
cmtlckxhYmVsID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDU3RyaW5nOm1hcmtlckxhYmVsIGVuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSA6IG5pbF07CisgICAgW21fY29tbWFuZEJ1ZmZlciBw
b3BEZWJ1Z0dyb3VwXTsKK30KKworYm9vbCBDb21tYW5kRW5jb2Rlcjo6dmFsaWRhdGVQb3BEZWJ1
Z0dyb3VwKCkgY29uc3QKK3sKKyAgICAvLyAidGhpcy5bW2RlYnVnX2dyb3VwX3N0YWNrXV0gbXVz
dCBub3QgYmUgZW1wdHkuIgorICAgIGlmICghbV9kZWJ1Z0dyb3VwU3RhY2tTaXplKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBDb21tYW5kRW5j
b2Rlcjo6cG9wRGVidWdHcm91cCgpCiB7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlv
L2dwdXdlYi8jZG9tLWdwdWRlYnVnY29tbWFuZHNtaXhpbi1wb3BkZWJ1Z2dyb3VwCisKKyAgICAv
LyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNl
LCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUg
dW5tZXQiCisgICAgaWYgKCF2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSkgeworICAgICAgICAvLyBG
SVhNRTogIm1ha2UgdGhpcyBpbnZhbGlkLCBhbmQgc3RvcC4iCisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBmaW5hbGl6ZUJsaXRDb21tYW5kRW5jb2RlcigpOworCisgICAgLy8gIlBvcCBh
biBlbnRyeSBvZmYgb2YgdGhpcy5bW2RlYnVnX2dyb3VwX3N0YWNrXV0uIgorICAgIC0tbV9kZWJ1
Z0dyb3VwU3RhY2tTaXplOworICAgIFttX2NvbW1hbmRCdWZmZXIgcG9wRGVidWdHcm91cF07CiB9
CiAKIHZvaWQgQ29tbWFuZEVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKGNvbnN0IGNoYXIqIGdyb3Vw
TGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwTGFiZWwpOworICAgIC8vIGh0dHBzOi8v
Z3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1Z2NvbW1hbmRzbWl4aW4tcHVzaGRl
YnVnZ3JvdXAKKworICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVyIHN0YXRlIG9mIHRoaXMuIElm
IGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJlcGFyZVRoZUVuY29kZXJTdGF0
ZSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgZmluYWxpemVCbGl0Q29tbWFuZEVuY29k
ZXIoKTsKKworICAgIC8vICJQdXNoIGdyb3VwTGFiZWwgb250byB0aGlzLltbZGVidWdfZ3JvdXBf
c3RhY2tdXS4iCisgICAgKyttX2RlYnVnR3JvdXBTdGFja1NpemU7CisgICAgW21fY29tbWFuZEJ1
ZmZlciBwdXNoRGVidWdHcm91cDpncm91cExhYmVsID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDU3Ry
aW5nOmdyb3VwTGFiZWwgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIDogbmlsXTsKIH0K
IAogdm9pZCBDb21tYW5kRW5jb2Rlcjo6cmVzb2x2ZVF1ZXJ5U2V0KGNvbnN0IFF1ZXJ5U2V0JiBx
dWVyeVNldCwgdWludDMyX3QgZmlyc3RRdWVyeSwgdWludDMyX3QgcXVlcnlDb3VudCwgY29uc3Qg
QnVmZmVyJiBkZXN0aW5hdGlvbiwgdWludDY0X3QgZGVzdGluYXRpb25PZmZzZXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbXB1dGVQYXNzRW5jb2Rlci5oCmluZGV4IDQ5MGNmOGE5YjRhNi4uZWE3
MTdhOTcxNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0Vu
Y29kZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaApA
QCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2ltcG9ydCAiQ29tbWFuZHNNaXhp
bi5oIgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KICNp
bXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zNiw3ICszNyw3IEBAIGNsYXNzIEJ1ZmZlcjsK
IGNsYXNzIENvbXB1dGVQaXBlbGluZTsKIGNsYXNzIFF1ZXJ5U2V0OwogCi1jbGFzcyBDb21wdXRl
UGFzc0VuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDb21wdXRlUGFzc0VuY29kZXI+IHsKK2Ns
YXNzIENvbXB1dGVQYXNzRW5jb2RlciA6IHB1YmxpYyBDb21tYW5kc01peGluIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENvbXB1dGVQYXNz
RW5jb2Rlcj4gY3JlYXRlKGlkPE1UTENvbXB1dGVDb21tYW5kRW5jb2Rlcj4gY29tcHV0ZUNvbW1h
bmRFbmNvZGVyKQpAQCAtNjEsNyArNjIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDb21w
dXRlUGFzc0VuY29kZXIoaWQ8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPik7CiAKKyAgICBib29s
IHZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0OworCiAgICAgaWQ8TVRMQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyPiBtX2NvbXB1dGVDb21tYW5kRW5jb2RlciB7IG5pbCB9OworCisgICAgdWludDY0
X3QgbV9kZWJ1Z0dyb3VwU3RhY2tTaXplIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIu
bW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW0KaW5kZXggMWZl
YzUxZGJjMTkzLi43MTBmM2Q3YTcwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0NvbXB1dGVQYXNzRW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRl
UGFzc0VuY29kZXIubW0KQEAgLTY5LDE2ICs2OSw1NSBAQCB2b2lkIENvbXB1dGVQYXNzRW5jb2Rl
cjo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQogCiB2b2lkIENvbXB1dGVQYXNzRW5jb2Rl
cjo6aW5zZXJ0RGVidWdNYXJrZXIoY29uc3QgY2hhciogbWFya2VyTGFiZWwpCiB7Ci0gICAgVU5V
U0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8v
Z3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLWluc2VydGRlYnVnbWFya2VyCisKKyAg
ICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZh
bHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gVGhlcmUncyBubyBkaXJlY3Qgd2F5IG9mIGRvaW5nIHRoaXMsIHNv
IHdlIGp1c3QgcHVzaC9wb3AgYW4gZW1wdHkgZGVidWcgZ3JvdXAuCisgICAgW21fY29tcHV0ZUNv
bW1hbmRFbmNvZGVyIGluc2VydERlYnVnU2lnbnBvc3Q6bWFya2VyTGFiZWwgPyBbTlNTdHJpbmcg
c3RyaW5nV2l0aENTdHJpbmc6bWFya2VyTGFiZWwgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddIDogbmlsXTsKK30KKworYm9vbCBDb21wdXRlUGFzc0VuY29kZXI6OnZhbGlkYXRlUG9wRGVi
dWdHcm91cCgpIGNvbnN0Cit7CisgICAgLy8gInRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11dIG11
c3Qgbm90IGJlIGVtcHR5LiIKKyAgICBpZiAoIW1fZGVidWdHcm91cFN0YWNrU2l6ZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQ29tcHV0ZVBh
c3NFbmNvZGVyOjpwb3BEZWJ1Z0dyb3VwKCkKIHsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRo
dWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLXBvcGRlYnVnZ3JvdXAKKwor
ICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVyIHN0YXRlIG9mIHRoaXMuIElmIGl0IHJldHVybnMg
ZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJlcGFyZVRoZUVuY29kZXJTdGF0ZSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRz
IGFyZSB1bm1ldCIKKyAgICBpZiAoIXZhbGlkYXRlUG9wRGVidWdHcm91cCgpKSB7CisgICAgICAg
IC8vIEZJWE1FOiAibWFrZSB0aGlzIGludmFsaWQsIGFuZCBzdG9wLiIKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vICJQb3AgYW4gZW50cnkgb2ZmIG9mIHRoaXMuW1tkZWJ1Z19ncm91
cF9zdGFja11dLiIKKyAgICAtLW1fZGVidWdHcm91cFN0YWNrU2l6ZTsKKyAgICBbbV9jb21wdXRl
Q29tbWFuZEVuY29kZXIgcG9wRGVidWdHcm91cF07CiB9CiAKIHZvaWQgQ29tcHV0ZVBhc3NFbmNv
ZGVyOjpwdXNoRGVidWdHcm91cChjb25zdCBjaGFyKiBncm91cExhYmVsKQogewotICAgIFVOVVNF
RF9QQVJBTShncm91cExhYmVsKTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1
d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLXB1c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAi
UHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBz
dG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gIlB1c2ggZ3JvdXBMYWJlbCBvbnRvIHRoaXMuW1tkZWJ1Z19ncm91cF9zdGFj
a11dLiIKKyAgICArK21fZGVidWdHcm91cFN0YWNrU2l6ZTsKKyAgICBbbV9jb21wdXRlQ29tbWFu
ZEVuY29kZXIgcHVzaERlYnVnR3JvdXA6Z3JvdXBMYWJlbCA/IFtOU1N0cmluZyBzdHJpbmdXaXRo
Q1N0cmluZzpncm91cExhYmVsIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSA6IG5pbF07
CiB9CiAKIHZvaWQgQ29tcHV0ZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAodWludDMyX3QgZ3Jv
dXBJbmRleCwgY29uc3QgQmluZEdyb3VwJiBncm91cCwgdWludDMyX3QgZHluYW1pY09mZnNldENv
dW50LCBjb25zdCB1aW50MzJfdCogZHluYW1pY09mZnNldHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9SZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggZTZmZjg0OGYwYTdlLi45NzNkNzE5Y2I2NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIuaAor
KysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmgKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbXBvcnQgIkNvbW1hbmRzTWl4aW4uaCIKICNp
bXBvcnQgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+CiAjaW1wb3J0IDx3
dGYvUmVmQ291bnRlZC5oPgpAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBCdWZmZXI7CiBjbGFzcyBS
ZW5kZXJCdW5kbGU7CiBjbGFzcyBSZW5kZXJQaXBlbGluZTsKIAotY2xhc3MgUmVuZGVyQnVuZGxl
RW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlckJ1bmRsZUVuY29kZXI+IHsKK2NsYXNz
IFJlbmRlckJ1bmRsZUVuY29kZXIgOiBwdWJsaWMgQ29tbWFuZHNNaXhpbiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW5kZXJCdW5kbGVF
bmNvZGVyPiBjcmVhdGUoaWQ8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPiBpbmRpcmVjdENvbW1h
bmRCdWZmZXIpCkBAIC02NCw3ICs2NSwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFJlbmRl
ckJ1bmRsZUVuY29kZXIoaWQ8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPik7CiAKKyAgICBib29s
IHZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0OworCiAgICAgaWQ8TVRMSW5kaXJlY3RDb21t
YW5kQnVmZmVyPiBtX2luZGlyZWN0Q29tbWFuZEJ1ZmZlciB7IG5pbCB9OworCisgICAgdWludDY0
X3QgbV9kZWJ1Z0dyb3VwU3RhY2tTaXplIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVy
Lm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5tbQppbmRleCA3
NGEzZDY1NmJjZDUuLjNiNmQxNzQxMzdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5k
ZXJCdW5kbGVFbmNvZGVyLm1tCkBAIC04MiwxOSArODIsNTYgQEAgUmVmUHRyPFJlbmRlckJ1bmRs
ZT4gUmVuZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVSZW5kZXJCdW5kbGVEZXNj
cmlwdG8KICAgICByZXR1cm4gUmVuZGVyQnVuZGxlOjpjcmVhdGUobmlsKTsKIH0KIAotdm9pZCBS
ZW5kZXJCdW5kbGVFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihjb25zdCBjaGFyKiBtYXJrZXJM
YWJlbCkKK3ZvaWQgUmVuZGVyQnVuZGxlRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoY29uc3Qg
Y2hhciopCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKKyAgICAvLyBodHRwczov
L2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLWluc2Vy
dGRlYnVnbWFya2VyCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlz
LiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVy
U3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTVRMSW5kaXJlY3RDb21tYW5kQnVm
ZmVycyBkb24ndCBzdXBwb3J0IGRlYnVnIGNvbW1hbmRzLgorfQorCitib29sIFJlbmRlckJ1bmRs
ZUVuY29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0Cit7CisgICAgLy8gInRoaXMu
W1tkZWJ1Z19ncm91cF9zdGFja11dIG11c3Qgbm90IGJlIGVtcHR5LiIKKyAgICBpZiAoIW1fZGVi
dWdHcm91cFN0YWNrU2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKIHZvaWQgUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgpCiB7Cisg
ICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWRlYnVnY29tbWFu
ZHNtaXhpbi1wb3BkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0
ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVU
aGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gIklmIGFueSBvZiB0
aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUgdW5tZXQiCisgICAgaWYgKCF2YWxpZGF0ZVBv
cERlYnVnR3JvdXAoKSkgeworICAgICAgICAvLyBGSVhNRTogIm1ha2UgdGhpcyBpbnZhbGlkLCBh
bmQgc3RvcC4iCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICAvLyAiUG9wIGFuIGVudHJ5
IG9mZiBvZiB0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXS4iCisgICAgLS1tX2RlYnVnR3JvdXBT
dGFja1NpemU7CisgICAgLy8gTVRMSW5kaXJlY3RDb21tYW5kQnVmZmVycyBkb24ndCBzdXBwb3J0
IGRlYnVnIGNvbW1hbmRzLgogfQogCi12b2lkIFJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1
Z0dyb3VwKGNvbnN0IGNoYXIqIGdyb3VwTGFiZWwpCit2b2lkIFJlbmRlckJ1bmRsZUVuY29kZXI6
OnB1c2hEZWJ1Z0dyb3VwKGNvbnN0IGNoYXIqKQogewotICAgIFVOVVNFRF9QQVJBTShncm91cExh
YmVsKTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVi
dWdjb21tYW5kc21peGluLXB1c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5j
b2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAo
IXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gIlB1
c2ggZ3JvdXBMYWJlbCBvbnRvIHRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11dLiIKKyAgICArK21f
ZGVidWdHcm91cFN0YWNrU2l6ZTsKKyAgICAvLyBNVExJbmRpcmVjdENvbW1hbmRCdWZmZXJzIGRv
bid0IHN1cHBvcnQgZGVidWcgY29tbWFuZHMuCiB9CiAKIHZvaWQgUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6c2V0QmluZEdyb3VwKHVpbnQzMl90IGdyb3VwSW5kZXgsIGNvbnN0IEJpbmRHcm91cCYgZ3Jv
dXAsIHVpbnQzMl90IGR5bmFtaWNPZmZzZXRDb3VudCwgY29uc3QgdWludDMyX3QqIGR5bmFtaWNP
ZmZzZXRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29k
ZXIuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggNWNi
ZDBlNzU3ZmM4Li5lMmY3OGNjNDQ1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1JlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFz
c0VuY29kZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2ltcG9ydCAi
Q29tbWFuZHNNaXhpbi5oIgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbXBvcnQgPHd0
Zi9GdW5jdGlvbi5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgpAQCAtMzksNyArNDAsNyBAQCBjbGFz
cyBRdWVyeVNldDsKIGNsYXNzIFJlbmRlckJ1bmRsZTsKIGNsYXNzIFJlbmRlclBpcGVsaW5lOwog
Ci1jbGFzcyBSZW5kZXJQYXNzRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlclBhc3NF
bmNvZGVyPiB7CitjbGFzcyBSZW5kZXJQYXNzRW5jb2RlciA6IHB1YmxpYyBDb21tYW5kc01peGlu
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoaWQ8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IHJl
bmRlckNvbW1hbmRFbmNvZGVyKQpAQCAtNzUsNyArNzYsMTEgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBSZW5kZXJQYXNzRW5jb2RlcihpZDxNVExSZW5kZXJDb21tYW5kRW5jb2Rlcj4pOwogCisg
ICAgYm9vbCB2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSBjb25zdDsKKwogICAgIGlkPE1UTFJlbmRl
ckNvbW1hbmRFbmNvZGVyPiBtX3JlbmRlckNvbW1hbmRFbmNvZGVyIHsgbmlsIH07CisKKyAgICB1
aW50NjRfdCBtX2RlYnVnR3JvdXBTdGFja1NpemUgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNv
ZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0KaW5kZXgg
MmNiOWZiMmM4N2FkLi5lZTQyNzFiYTY4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL1JlbmRlclBhc3NFbmNvZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRl
clBhc3NFbmNvZGVyLm1tCkBAIC0xMDMsMTcgKzEwMyw1NSBAQCB2b2lkIFJlbmRlclBhc3NFbmNv
ZGVyOjpleGVjdXRlQnVuZGxlcyhWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBS
ZW5kZQogCiB2b2lkIFJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihjb25zdCBj
aGFyKiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0obWFya2VyTGFiZWwpOworICAg
IC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1Z2NvbW1hbmRz
bWl4aW4taW5zZXJ0ZGVidWdtYXJrZXIKKworICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVyIHN0
YXRlIG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJlcGFy
ZVRoZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGVyZSdzIG5v
IGRpcmVjdCB3YXkgb2YgZG9pbmcgdGhpcywgc28gd2UganVzdCBwdXNoL3BvcCBhbiBlbXB0eSBk
ZWJ1ZyBncm91cC4KKyAgICBbbV9yZW5kZXJDb21tYW5kRW5jb2RlciBpbnNlcnREZWJ1Z1NpZ25w
b3N0Om1hcmtlckxhYmVsID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDU3RyaW5nOm1hcmtlckxhYmVs
IGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSA6IG5pbF07Cit9CisKK2Jvb2wgUmVuZGVy
UGFzc0VuY29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0Cit7CisgICAgLy8gInRo
aXMuW1tkZWJ1Z19ncm91cF9zdGFja11dIG11c3Qgbm90IGJlIGVtcHR5LiIKKyAgICBpZiAoIW1f
ZGVidWdHcm91cFN0YWNrU2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRydWU7CiB9CiAKIHZvaWQgUmVuZGVyUGFzc0VuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogewor
ICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1Z2NvbW1h
bmRzbWl4aW4tcG9wZGVidWdncm91cAorCisgICAgLy8gIlByZXBhcmUgdGhlIGVuY29kZXIgc3Rh
dGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYgKCFwcmVwYXJl
VGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJJZiBhbnkgb2Yg
dGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgYXJlIHVubWV0IgorICAgIGlmICghdmFsaWRhdGVQ
b3BEZWJ1Z0dyb3VwKCkpIHsKKyAgICAgICAgLy8gRklYTUU6ICJtYWtlIHRoaXMgaW52YWxpZCwg
YW5kIHN0b3AuIgorICAgICAgICByZXR1cm47CisgICAgfQogCisgICAgLy8gIlBvcCBhbiBlbnRy
eSBvZmYgb2YgdGhpcy5bW2RlYnVnX2dyb3VwX3N0YWNrXV0uIgorICAgIC0tbV9kZWJ1Z0dyb3Vw
U3RhY2tTaXplOworICAgIFttX3JlbmRlckNvbW1hbmRFbmNvZGVyIHBvcERlYnVnR3JvdXBdOwog
fQogCiB2b2lkIFJlbmRlclBhc3NFbmNvZGVyOjpwdXNoRGVidWdHcm91cChjb25zdCBjaGFyKiBn
cm91cExhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKKyAgICAvLyBodHRw
czovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLXB1
c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlz
LiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVy
U3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gIlB1c2ggZ3JvdXBMYWJlbCBvbnRv
IHRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11dLiIKKyAgICArK21fZGVidWdHcm91cFN0YWNrU2l6
ZTsKKyAgICBbbV9yZW5kZXJDb21tYW5kRW5jb2RlciBwdXNoRGVidWdHcm91cDpncm91cExhYmVs
ID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDU3RyaW5nOmdyb3VwTGFiZWwgZW5jb2Rpbmc6TlNVVEY4
U3RyaW5nRW5jb2RpbmddIDogbmlsXTsKIH0KIAogdm9pZCBSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
QmluZEdyb3VwKHVpbnQzMl90IGdyb3VwSW5kZXgsIGNvbnN0IEJpbmRHcm91cCYgZ3JvdXAsIHVp
bnQzMl90IGR5bmFtaWNPZmZzZXRDb3VudCwgY29uc3QgdWludDMyX3QqIGR5bmFtaWNPZmZzZXRz
KQo=
</data>
<flag name="review"
          id="482398"
          type_id="1"
          status="+"
          setter="kkinnunen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454929</attachid>
            <date>2022-03-16 20:30:47 -0700</date>
            <delta_ts>2022-03-16 20:30:47 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-237879-20220316203046.patch</filename>
            <type>text/plain</type>
            <size>15447</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IDgzZjhjM2Q3MzZhMWMzNmMx
OWE0NmU1MzhjODBhYWNmYTc2OTc0OGQuLjY4MjYwY2ZhMzJmMGU3NmYxMjc3NDIxMzE3YTcyNzVj
OTc5MDIxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjItMDMtMTYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBs
ZW1lbnQgZmlyc3QgZHJhZnQgb2YgZGVidWcgY29tbWFuZHMgYWNjb3JkaW5nIHRvIHRoZSBzcGVj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4NzkK
KworICAgICAgICBSZXZpZXdlZCBieSBLaW1tbyBLaW5udW5lbi4KKworICAgICAgICBJbXBsZW1l
bnQgaW5zZXJ0RGVidWdNYXJrZXIoKSwgcHVzaERlYnVnR3JvdXAoKSwgYW5kIHBvcERlYnVnR3Jv
dXAoKSBhY2NvcmRpbmcgdG8KKyAgICAgICAgdGhlIGFsZ29yaXRobXMgaW4gdGhlIHNwZWMuIFRo
ZXJlIGFyZSBhIGZldyB0aGluZ3Mgd2hpY2ggdGhlIHNwZWMgbGlzdHMgd2hpY2ggd2UKKyAgICAg
ICAgY2FuJ3QgZG8geWV0IChsaWtlIG1ha2luZyBvYmplY3RzIGludmFsaWQpLCBzbyB0aG9zZSB0
aGluZ3MgYXJlIGxlZnQgd2l0aCBGSVhNRXMuCisgICAgICAgIEV2ZXJ5IHN0ZXAgaXMgbGlzdGVk
IHdpdGggbGlua3MgdG8gdGhlIHNwZWMgd2hlcmUgYXBwcm9wcmlhdGUsIGFuZCB3aXRoIHF1b3Rl
cyB0bworICAgICAgICB0aGUgc3BlYyBkZXNjcmliaW5nIHdoYXQgaXMgYmVpbmcgaW1wbGVtZW50
ZWQuIEFsc28sIGJlY2F1c2UgZWFjaCBjbGFzcyBoYW5kbGVzCisgICAgICAgIHRoZXNlIGRlYnVn
IGNvbW1hbmRzIHNsaWdodGx5IGRpZmZlcmVudGx5IChDb21tYW5kRW5jb2RlcnMgc3VwcG9ydCBk
ZWJ1ZyBncm91cHMKKyAgICAgICAgYnV0IG5vdCBkZWJ1ZyBtYXJrZXJzOyBSZW5kZXJCdW5kbGVz
IGRvbid0IHN1cHBvcnQgYW55IG9mIHRoZW0sIGFuZAorICAgICAgICBDb21wdXRlRW5jb2RlcnMg
c3VwcG9ydCBhbGwgb2YgdGhlbSkgSSBvcHRlZCB0byBub3QgdHJ5IHRvIGRvIGFueSBjb2RlIHNo
YXJpbmcuCisKKyAgICAgICAgKiBXZWJHUFUvQ29tbWFuZEVuY29kZXIuaDoKKyAgICAgICAgKiBX
ZWJHUFUvQ29tbWFuZEVuY29kZXIubW06CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVy
OjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjp2
YWxpZGF0ZVBvcERlYnVnR3JvdXAgY29uc3QpOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5j
b2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjpw
dXNoRGVidWdHcm91cCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQYXNzRW5jb2Rlci5oOgor
ICAgICAgICAqIFdlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW06CisgICAgICAgIChXZWJHUFU6
OkNvbXB1dGVQYXNzRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIpOgorICAgICAgICAoV2ViR1BV
OjpDb21wdXRlUGFzc0VuY29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCBjb25zdCk6CisgICAg
ICAgIChXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAg
IChXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXApOgorICAgICAgICAq
IFdlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmg6CisgICAgICAgICogV2ViR1BVL1JlbmRlckJ1
bmRsZUVuY29kZXIubW06CisgICAgICAgIChXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI6Omlu
c2VydERlYnVnTWFya2VyKToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcjo6
dmFsaWRhdGVQb3BEZWJ1Z0dyb3VwIGNvbnN0KToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVu
ZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6CisgICAgICAgIChXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyUGFzc0Vu
Y29kZXIuaDoKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW06CisgICAgICAg
IChXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcik6CisgICAgICAg
IChXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyOjp2YWxpZGF0ZVBvcERlYnVnR3JvdXAgY29uc3Qp
OgorICAgICAgICAoV2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcjo6cG9wRGVidWdHcm91cCk6Cisg
ICAgICAgIChXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyOjpwdXNoRGVidWdHcm91cCk6CisKIDIw
MjItMDMtMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgZmlyc3QgZHJhZnQgb2YgQ29tbWFuZEVuY29kZXI6OmNs
ZWFyQnVmZmVyKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFu
ZEVuY29kZXIuaAppbmRleCAwMWNhMzIwMWU4ZjE4OTdiYzgxMTcxZjJkOTI4YzkxYTdlMTJiZmM0
Li4wZTE5ZDRlMDU4ZWE2NDJhM2ZkMmNkYmQ0ODZmNzJlOWE2NDYxMjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLmgKQEAgLTY3LDEyICs2NywxNSBAQCBwcml2YXRlOgogICAg
IENvbW1hbmRFbmNvZGVyKGlkPE1UTENvbW1hbmRCdWZmZXI+KTsKIAogICAgIGJvb2wgdmFsaWRh
dGVGaW5pc2goKSBjb25zdDsKKyAgICBib29sIHZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0
OwogCiAgICAgdm9pZCBlbnN1cmVCbGl0Q29tbWFuZEVuY29kZXIoKTsKICAgICB2b2lkIGZpbmFs
aXplQmxpdENvbW1hbmRFbmNvZGVyKCk7CiAKICAgICBpZDxNVExDb21tYW5kQnVmZmVyPiBtX2Nv
bW1hbmRCdWZmZXIgeyBuaWwgfTsKICAgICBpZDxNVExCbGl0Q29tbWFuZEVuY29kZXI+IG1fYmxp
dENvbW1hbmRFbmNvZGVyIHsgbmlsIH07CisKKyAgICB1aW50NjRfdCBtX2RlYnVnR3JvdXBTdGFj
a1NpemUgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tbWFuZEVuY29kZXIubW0KaW5kZXggNGNlYjgwNDM3YTZmNmVhMDBiY2FmZjYwOGZiMGNl
ZDVjZmExN2EzOS4uM2I4ZjAyM2FiYTg4MTY1YmVjMzIxYTk1ZDJhODk1ODM1M2RiOTUxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KQEAgLTI3MywxNiArMjczLDYyIEBA
IFJlZlB0cjxDb21tYW5kQnVmZmVyPiBDb21tYW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvciYKIAogdm9pZCBDb21tYW5kRW5jb2Rlcjo6aW5zZXJ0RGVi
dWdNYXJrZXIoU3RyaW5nJiYgbWFya2VyTGFiZWwpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1hcmtl
ckxhYmVsKTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1
ZGVidWdjb21tYW5kc21peGluLWluc2VydGRlYnVnbWFya2VyCisKKyAgICAvLyAiUHJlcGFyZSB0
aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAg
ICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
ZmluYWxpemVCbGl0Q29tbWFuZEVuY29kZXIoKTsKKworICAgIC8vIFRoZXJlJ3Mgbm8gZGlyZWN0
IHdheSBvZiBkb2luZyB0aGlzLCBzbyB3ZSBqdXN0IHB1c2gvcG9wIGFuIGVtcHR5IGRlYnVnIGdy
b3VwLgorICAgIFttX2NvbW1hbmRCdWZmZXIgcHVzaERlYnVnR3JvdXA6bWFya2VyTGFiZWxdOwor
ICAgIFttX2NvbW1hbmRCdWZmZXIgcG9wRGVidWdHcm91cF07Cit9CisKK2Jvb2wgQ29tbWFuZEVu
Y29kZXI6OnZhbGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0Cit7CisgICAgLy8gInRoaXMuW1tk
ZWJ1Z19ncm91cF9zdGFja11dIG11c3Qgbm90IGJlIGVtcHR5LiIKKyAgICBpZiAoIW1fZGVidWdH
cm91cFN0YWNrU2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIHZvaWQgQ29tbWFuZEVuY29kZXI6OnBvcERlYnVnR3JvdXAoKQogeworICAgIC8vIGh0
dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1Z2NvbW1hbmRzbWl4aW4t
cG9wZGVidWdncm91cAorCisgICAgLy8gIlByZXBhcmUgdGhlIGVuY29kZXIgc3RhdGUgb2YgdGhp
cy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYgKCFwcmVwYXJlVGhlRW5jb2Rl
clN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxv
d2luZyByZXF1aXJlbWVudHMgYXJlIHVubWV0IgorICAgIGlmICghdmFsaWRhdGVQb3BEZWJ1Z0dy
b3VwKCkpIHsKKyAgICAgICAgLy8gRklYTUU6ICJtYWtlIHRoaXMgaW52YWxpZCwgYW5kIHN0b3Au
IgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZmluYWxpemVCbGl0Q29tbWFuZEVuY29k
ZXIoKTsKKworICAgIC8vICJQb3AgYW4gZW50cnkgb2ZmIG9mIHRoaXMuW1tkZWJ1Z19ncm91cF9z
dGFja11dLiIKKyAgICAtLW1fZGVidWdHcm91cFN0YWNrU2l6ZTsKKyAgICBbbV9jb21tYW5kQnVm
ZmVyIHBvcERlYnVnR3JvdXBdOwogfQogCiB2b2lkIENvbW1hbmRFbmNvZGVyOjpwdXNoRGVidWdH
cm91cChTdHJpbmcmJiBncm91cExhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVs
KTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdj
b21tYW5kc21peGluLXB1c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2Rl
ciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXBy
ZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZpbmFs
aXplQmxpdENvbW1hbmRFbmNvZGVyKCk7CisKKyAgICAvLyAiUHVzaCBncm91cExhYmVsIG9udG8g
dGhpcy5bW2RlYnVnX2dyb3VwX3N0YWNrXV0uIgorICAgICsrbV9kZWJ1Z0dyb3VwU3RhY2tTaXpl
OworICAgIFttX2NvbW1hbmRCdWZmZXIgcHVzaERlYnVnR3JvdXA6Z3JvdXBMYWJlbF07CiB9CiAK
IHZvaWQgQ29tbWFuZEVuY29kZXI6OnJlc29sdmVRdWVyeVNldChjb25zdCBRdWVyeVNldCYgcXVl
cnlTZXQsIHVpbnQzMl90IGZpcnN0UXVlcnksIHVpbnQzMl90IHF1ZXJ5Q291bnQsIGNvbnN0IEJ1
ZmZlciYgZGVzdGluYXRpb24sIHVpbnQ2NF90IGRlc3RpbmF0aW9uT2Zmc2V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaAppbmRleCAwYTdiOGNjOWVlMTJlODQxM2Vj
ODc3NDNiZjVmNjVhOGYxZmNjMTI0Li5jZjViNTgwNmRlYTVmNGM5YTk3OGFmY2I2ZDZhMzc2MWFi
MjE3YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaApAQCAt
MjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2ltcG9ydCAiQ29tbWFuZHNNaXhpbi5o
IgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KICNpbXBv
cnQgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zNiw3ICszNyw3IEBAIGNsYXNzIEJ1ZmZlcjsKIGNs
YXNzIENvbXB1dGVQaXBlbGluZTsKIGNsYXNzIFF1ZXJ5U2V0OwogCi1jbGFzcyBDb21wdXRlUGFz
c0VuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDb21wdXRlUGFzc0VuY29kZXI+IHsKK2NsYXNz
IENvbXB1dGVQYXNzRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPENvbXB1dGVQYXNzRW5jb2Rl
cj4sIHB1YmxpYyBDb21tYW5kc01peGluIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKGlkPE1U
TENvbXB1dGVDb21tYW5kRW5jb2Rlcj4gY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQpAQCAtNjEsNyAr
NjIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDb21wdXRlUGFzc0VuY29kZXIoaWQ8TVRM
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyPik7CiAKKyAgICBib29sIHZhbGlkYXRlUG9wRGVidWdHcm91
cCgpIGNvbnN0OworCiAgICAgaWQ8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBtX2NvbXB1dGVD
b21tYW5kRW5jb2RlciB7IG5pbCB9OworCisgICAgdWludDY0X3QgbV9kZWJ1Z0dyb3VwU3RhY2tT
aXplIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW0KaW5kZXggYmI2OWY4OWU4NTMwNDljMmE5MjM1NTg4
ZDdlMzE0N2U2NzQ2MjM2YS4uZmRmZjU5ODllYTI0ZDNkYjE1MTA2ZjQ3MDg1MDFjNzAzZGM3OWUz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQYXNzRW5jb2Rlci5tbQpAQCAtNzAs
MTYgKzcwLDU0IEBAIHZvaWQgQ29tcHV0ZVBhc3NFbmNvZGVyOjplbmRQaXBlbGluZVN0YXRpc3Rp
Y3NRdWVyeSgpCiAKIHZvaWQgQ29tcHV0ZVBhc3NFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihT
dHJpbmcmJiBtYXJrZXJMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0obWFya2VyTGFiZWwpOwor
ICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RvbS1ncHVkZWJ1Z2NvbW1h
bmRzbWl4aW4taW5zZXJ0ZGVidWdtYXJrZXIKKworICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVy
IHN0YXRlIG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJl
cGFyZVRoZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBbbV9jb21wdXRl
Q29tbWFuZEVuY29kZXIgaW5zZXJ0RGVidWdTaWducG9zdDptYXJrZXJMYWJlbF07Cit9CisKK2Jv
b2wgQ29tcHV0ZVBhc3NFbmNvZGVyOjp2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSBjb25zdAorewor
ICAgIC8vICJ0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXSBtdXN0IG5vdCBiZSBlbXB0eS4iCisg
ICAgaWYgKCFtX2RlYnVnR3JvdXBTdGFja1NpemUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIENvbXB1dGVQYXNzRW5jb2Rlcjo6cG9wRGVidWdH
cm91cCgpCiB7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdw
dWRlYnVnY29tbWFuZHNtaXhpbi1wb3BkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUg
ZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBp
ZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
IklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUgdW5tZXQiCisgICAgaWYg
KCF2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSkgeworICAgICAgICAvLyBGSVhNRTogIm1ha2UgdGhp
cyBpbnZhbGlkLCBhbmQgc3RvcC4iCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAi
UG9wIGFuIGVudHJ5IG9mZiBvZiB0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXS4iCisgICAgLS1t
X2RlYnVnR3JvdXBTdGFja1NpemU7CisgICAgW21fY29tcHV0ZUNvbW1hbmRFbmNvZGVyIHBvcERl
YnVnR3JvdXBdOwogfQogCiB2b2lkIENvbXB1dGVQYXNzRW5jb2Rlcjo6cHVzaERlYnVnR3JvdXAo
U3RyaW5nJiYgZ3JvdXBMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZ3JvdXBMYWJlbCk7Cisg
ICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWRlYnVnY29tbWFu
ZHNtaXhpbi1wdXNoZGVidWdncm91cAorCisgICAgLy8gIlByZXBhcmUgdGhlIGVuY29kZXIgc3Rh
dGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYgKCFwcmVwYXJl
VGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJQdXNoIGdyb3Vw
TGFiZWwgb250byB0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXS4iCisgICAgKyttX2RlYnVnR3Jv
dXBTdGFja1NpemU7CisgICAgW21fY29tcHV0ZUNvbW1hbmRFbmNvZGVyIHB1c2hEZWJ1Z0dyb3Vw
Omdyb3VwTGFiZWxdOwogfQogCiB2b2lkIENvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3Vw
KHVpbnQzMl90IGdyb3VwSW5kZXgsIGNvbnN0IEJpbmRHcm91cCYgZ3JvdXAsIHVpbnQzMl90IGR5
bmFtaWNPZmZzZXRDb3VudCwgY29uc3QgdWludDMyX3QqIGR5bmFtaWNPZmZzZXRzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5oIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5oCmluZGV4IGUxZWIzNWViZTRkMzRl
ZGNhZDhiMjc3ZTViNmE2MTk1ZjBjODJiZjguLmNmOGRjYjI5M2VjNzE5MWM3YjdjZTdjMjA2YjM1
MmVlMmMwYzZhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRs
ZUVuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVy
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbXBvcnQgIkNvbW1hbmRz
TWl4aW4uaCIKICNpbXBvcnQgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+
CiAjaW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBCdWZm
ZXI7CiBjbGFzcyBSZW5kZXJCdW5kbGU7CiBjbGFzcyBSZW5kZXJQaXBlbGluZTsKIAotY2xhc3Mg
UmVuZGVyQnVuZGxlRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlckJ1bmRsZUVuY29k
ZXI+IHsKK2NsYXNzIFJlbmRlckJ1bmRsZUVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5k
ZXJCdW5kbGVFbmNvZGVyPiwgcHVibGljIENvbW1hbmRzTWl4aW4gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rl
cj4gY3JlYXRlKGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVm
ZmVyKQpAQCAtNjQsNyArNjUsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSZW5kZXJCdW5k
bGVFbmNvZGVyKGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4pOwogCisgICAgYm9vbCB2YWxp
ZGF0ZVBvcERlYnVnR3JvdXAoKSBjb25zdDsKKwogICAgIGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1
ZmZlcj4gbV9pbmRpcmVjdENvbW1hbmRCdWZmZXIgeyBuaWwgfTsKKworICAgIHVpbnQ2NF90IG1f
ZGVidWdHcm91cFN0YWNrU2l6ZSB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5tbSBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIubW0KaW5kZXggYjc1YzZm
NTdmNTJlNzE5NTYzZTViY2E1NzRjN2NkZTg2NTRkMTM2Zi4uNzMzOWJmOWMxZGU2NDE5MGY5ODE2
OWUxYjI5ODA4ODAyNDUyN2Y5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVu
ZGVyQnVuZGxlRW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5k
bGVFbmNvZGVyLm1tCkBAIC04MywxOSArODMsNTYgQEAgUmVmUHRyPFJlbmRlckJ1bmRsZT4gUmVu
ZGVyQnVuZGxlRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG8K
ICAgICByZXR1cm4gUmVuZGVyQnVuZGxlOjpjcmVhdGUobmlsKTsKIH0KIAotdm9pZCBSZW5kZXJC
dW5kbGVFbmNvZGVyOjppbnNlcnREZWJ1Z01hcmtlcihTdHJpbmcmJiBtYXJrZXJMYWJlbCkKK3Zv
aWQgUmVuZGVyQnVuZGxlRW5jb2Rlcjo6aW5zZXJ0RGVidWdNYXJrZXIoU3RyaW5nJiYpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKG1hcmtlckxhYmVsKTsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRo
dWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLWluc2VydGRlYnVnbWFya2Vy
CisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJZiBpdCByZXR1
cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3RhdGUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gTVRMSW5kaXJlY3RDb21tYW5kQnVmZmVycyBkb24ndCBz
dXBwb3J0IGRlYnVnIGNvbW1hbmRzLgorfQorCitib29sIFJlbmRlckJ1bmRsZUVuY29kZXI6OnZh
bGlkYXRlUG9wRGVidWdHcm91cCgpIGNvbnN0Cit7CisgICAgLy8gInRoaXMuW1tkZWJ1Z19ncm91
cF9zdGFja11dIG11c3Qgbm90IGJlIGVtcHR5LiIKKyAgICBpZiAoIW1fZGVidWdHcm91cFN0YWNr
U2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZv
aWQgUmVuZGVyQnVuZGxlRW5jb2Rlcjo6cG9wRGVidWdHcm91cCgpCiB7CisgICAgLy8gaHR0cHM6
Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWRlYnVnY29tbWFuZHNtaXhpbi1wb3Bk
ZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlzLiBJ
ZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVyU3Rh
dGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5n
IHJlcXVpcmVtZW50cyBhcmUgdW5tZXQiCisgICAgaWYgKCF2YWxpZGF0ZVBvcERlYnVnR3JvdXAo
KSkgeworICAgICAgICAvLyBGSVhNRTogIm1ha2UgdGhpcyBpbnZhbGlkLCBhbmQgc3RvcC4iCisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICAvLyAiUG9wIGFuIGVudHJ5IG9mZiBvZiB0aGlz
LltbZGVidWdfZ3JvdXBfc3RhY2tdXS4iCisgICAgLS1tX2RlYnVnR3JvdXBTdGFja1NpemU7Cisg
ICAgLy8gTVRMSW5kaXJlY3RDb21tYW5kQnVmZmVycyBkb24ndCBzdXBwb3J0IGRlYnVnIGNvbW1h
bmRzLgogfQogCi12b2lkIFJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3VwKFN0cmlu
ZyYmIGdyb3VwTGFiZWwpCit2b2lkIFJlbmRlckJ1bmRsZUVuY29kZXI6OnB1c2hEZWJ1Z0dyb3Vw
KFN0cmluZyYmKQogewotICAgIFVOVVNFRF9QQVJBTShncm91cExhYmVsKTsKKyAgICAvLyBodHRw
czovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLXB1
c2hkZWJ1Z2dyb3VwCisKKyAgICAvLyAiUHJlcGFyZSB0aGUgZW5jb2RlciBzdGF0ZSBvZiB0aGlz
LiBJZiBpdCByZXR1cm5zIGZhbHNlLCBzdG9wLiIKKyAgICBpZiAoIXByZXBhcmVUaGVFbmNvZGVy
U3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gIlB1c2ggZ3JvdXBMYWJlbCBvbnRv
IHRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11dLiIKKyAgICArK21fZGVidWdHcm91cFN0YWNrU2l6
ZTsKKyAgICAvLyBNVExJbmRpcmVjdENvbW1hbmRCdWZmZXJzIGRvbid0IHN1cHBvcnQgZGVidWcg
Y29tbWFuZHMuCiB9CiAKIHZvaWQgUmVuZGVyQnVuZGxlRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVp
bnQzMl90IGdyb3VwSW5kZXgsIGNvbnN0IEJpbmRHcm91cCYgZ3JvdXAsIHVpbnQzMl90IGR5bmFt
aWNPZmZzZXRDb3VudCwgY29uc3QgdWludDMyX3QqIGR5bmFtaWNPZmZzZXRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggYjdhNWQ3YTRmZmJkYTRlNThiNDM1
MDI3YzM5YmVkOGI3Nzc1ZmZkMi4uMWE2ZDZmZWQwYWU4NzYwMDRkNjM3MTg4ZDQ1ZWY5NWU2NDlh
ZTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIu
aAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW1wb3J0ICJDb21tYW5kc01peGluLmgiCiAj
aW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgY2xhc3MgUXVlcnlTZXQ7CiBjbGFz
cyBSZW5kZXJCdW5kbGU7CiBjbGFzcyBSZW5kZXJQaXBlbGluZTsKIAotY2xhc3MgUmVuZGVyUGFz
c0VuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5kZXJQYXNzRW5jb2Rlcj4geworY2xhc3Mg
UmVuZGVyUGFzc0VuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5kZXJQYXNzRW5jb2Rlcj4s
IHB1YmxpYyBDb21tYW5kc01peGluIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoaWQ8TVRMUmVu
ZGVyQ29tbWFuZEVuY29kZXI+IHJlbmRlckNvbW1hbmRFbmNvZGVyKQpAQCAtNzQsNyArNzUsMTEg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSZW5kZXJQYXNzRW5jb2RlcihpZDxNVExSZW5kZXJD
b21tYW5kRW5jb2Rlcj4pOwogCisgICAgYm9vbCB2YWxpZGF0ZVBvcERlYnVnR3JvdXAoKSBjb25z
dDsKKwogICAgIGlkPE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiBtX3JlbmRlckNvbW1hbmRFbmNv
ZGVyIHsgbmlsIH07CisKKyAgICB1aW50NjRfdCBtX2RlYnVnR3JvdXBTdGFja1NpemUgeyAwIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVy
UGFzc0VuY29kZXIubW0KaW5kZXggOTk1ODNlMjI1NDFhNzhlNTczOTdjMDg0MWM2YzliMGVhNzEy
NDY1MS4uYjNmY2ZkOTAzYzEyNjNhNjAyZjA2ZTllMGQ2OTRkNjI0NDJhNmU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0KKysrIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0KQEAgLTEwNCwxNyArMTA0LDU0IEBA
IHZvaWQgUmVuZGVyUGFzc0VuY29kZXI6OmV4ZWN1dGVCdW5kbGVzKFZlY3RvcjxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPGNvbnN0IFJlbmRlCiAKIHZvaWQgUmVuZGVyUGFzc0VuY29kZXI6Omluc2Vy
dERlYnVnTWFya2VyKFN0cmluZyYmIG1hcmtlckxhYmVsKQogewotICAgIFVOVVNFRF9QQVJBTSht
YXJrZXJMYWJlbCk7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9t
LWdwdWRlYnVnY29tbWFuZHNtaXhpbi1pbnNlcnRkZWJ1Z21hcmtlcgorCisgICAgLy8gIlByZXBh
cmUgdGhlIGVuY29kZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4i
CisgICAgaWYgKCFwcmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFttX3JlbmRlckNvbW1hbmRFbmNvZGVyIGluc2VydERlYnVnU2lnbnBvc3Q6bWFya2VyTGFi
ZWxdOworfQorCitib29sIFJlbmRlclBhc3NFbmNvZGVyOjp2YWxpZGF0ZVBvcERlYnVnR3JvdXAo
KSBjb25zdAoreworICAgIC8vICJ0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXSBtdXN0IG5vdCBi
ZSBlbXB0eS4iCisgICAgaWYgKCFtX2RlYnVnR3JvdXBTdGFja1NpemUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbmRlclBhc3NFbmNvZGVy
Ojpwb3BEZWJ1Z0dyb3VwKCkKIHsKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1
d2ViLyNkb20tZ3B1ZGVidWdjb21tYW5kc21peGluLXBvcGRlYnVnZ3JvdXAKKworICAgIC8vICJQ
cmVwYXJlIHRoZSBlbmNvZGVyIHN0YXRlIG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0
b3AuIgorICAgIGlmICghcHJlcGFyZVRoZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGFyZSB1bm1l
dCIKKyAgICBpZiAoIXZhbGlkYXRlUG9wRGVidWdHcm91cCgpKSB7CisgICAgICAgIC8vIEZJWE1F
OiAibWFrZSB0aGlzIGludmFsaWQsIGFuZCBzdG9wLiIKKyAgICAgICAgcmV0dXJuOworICAgIH0K
IAorICAgIC8vICJQb3AgYW4gZW50cnkgb2ZmIG9mIHRoaXMuW1tkZWJ1Z19ncm91cF9zdGFja11d
LiIKKyAgICAtLW1fZGVidWdHcm91cFN0YWNrU2l6ZTsKKyAgICBbbV9yZW5kZXJDb21tYW5kRW5j
b2RlciBwb3BEZWJ1Z0dyb3VwXTsKIH0KIAogdm9pZCBSZW5kZXJQYXNzRW5jb2Rlcjo6cHVzaERl
YnVnR3JvdXAoU3RyaW5nJiYgZ3JvdXBMYWJlbCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZ3JvdXBM
YWJlbCk7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWRl
YnVnY29tbWFuZHNtaXhpbi1wdXNoZGVidWdncm91cAorCisgICAgLy8gIlByZXBhcmUgdGhlIGVu
Y29kZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYg
KCFwcmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJQ
dXNoIGdyb3VwTGFiZWwgb250byB0aGlzLltbZGVidWdfZ3JvdXBfc3RhY2tdXS4iCisgICAgKytt
X2RlYnVnR3JvdXBTdGFja1NpemU7CisgICAgW21fcmVuZGVyQ29tbWFuZEVuY29kZXIgcHVzaERl
YnVnR3JvdXA6Z3JvdXBMYWJlbF07CiB9CiAKIHZvaWQgUmVuZGVyUGFzc0VuY29kZXI6OnNldEJp
bmRHcm91cCh1aW50MzJfdCBncm91cEluZGV4LCBjb25zdCBCaW5kR3JvdXAmIGdyb3VwLCB1aW50
MzJfdCBkeW5hbWljT2Zmc2V0Q291bnQsIGNvbnN0IHVpbnQzMl90KiBkeW5hbWljT2Zmc2V0cykK
</data>

          </attachment>
      

    </bug>

</bugzilla>