<?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>67115</bug_id>
          
          <creation_ts>2011-08-29 01:43:48 -0700</creation_ts>
          <short_desc>WebSocket: Receive binary message as Blob</short_desc>
          <delta_ts>2011-08-29 20:38:03 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65249</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>458130</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-29 01:43:48 -0700</bug_when>
    <thetext>Part of bug 65249.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458144</commentid>
    <comment_count>1</comment_count>
      <attachid>105478</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-29 02:25:51 -0700</bug_when>
    <thetext>Created attachment 105478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458651</commentid>
    <comment_count>2</comment_count>
      <attachid>105478</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-29 19:24:15 -0700</bug_when>
    <thetext>Comment on attachment 105478
Patch

Looks ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458671</commentid>
    <comment_count>3</comment_count>
      <attachid>105478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 20:37:58 -0700</bug_when>
    <thetext>Comment on attachment 105478
Patch

Clearing flags on attachment: 105478

Committed r94041: &lt;http://trac.webkit.org/changeset/94041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458672</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 20:38:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105478</attachid>
            <date>2011-08-29 02:25:51 -0700</date>
            <delta_ts>2011-08-29 20:37:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67115-20110829182550.patch</filename>
            <type>text/plain</type>
            <size>40278</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5MzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZThkZTM1ZDc0MDNmY2Y3ZGYyMDg1
OWE4NjkzNDc3NTMyNGJmNDkyLi43ZDVkNWVjYWIyZmRkMjBhOTE5OTRiZjJmNWI4NjhjNjgxNjNh
OTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMjkgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBSZWNlaXZlIGJpbmFyeSBt
ZXNzYWdlIGFzIEJsb2IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY3MTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JpbmFyeS1mcmFtZXNfd3No
LnB5OiBBZGRlZC4gVXNlZCBmcm9tIHJlY2VpdmUtYmxvYi5odG1sLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1iaW5hcnktZnJhbWVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9mcmFnbWVudGVkLWJpbmFyeS1mcmFtZXMuaHRtbDoKKyAgICAgICAgQWRkZWQuIFRoZSBjb250
ZW50IG9mIHRoaXMgdGVzdCBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHJlY2VpdmUtYmxvYi5odG1s
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1i
aW5hcnktZnJhbWVzX3dzaC5weTogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9yZWNlaXZlLWJsb2ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3JlY2VpdmUtYmxvYi5odG1sOgorICAg
ICAgICBBZGRlZC4gSXQgaXMgYSBiaXQgY29tcGxpY2F0ZWQgdG8gdmFsaWRhdGUgdGhlIGNvbnRl
bnQgb2YgYSBCbG9iLCBiZWNhdXNlIGEgQmxvYiBtdXN0IGJlIHJlYWQKKyAgICAgICAgYXN5bmNo
cm9ub3VzbHkuIEZpbGVSZWFkZXIgaXMgdXNlZCB0byByZWFkIGEgYmxvYiBhcyBhbiBBcnJheUJ1
ZmZlciwgZWFjaCBieXRlIG9mIHdoaWNoIGlzCisgICAgICAgIGNvbXBhcmVkIHdpdGggdGhlIGV4
cGVjdGVkIHJlc3VsdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3dvcmtlcnMvcmVjZWl2ZS1ibG9iLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3JlY2VpdmUtYmxvYi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMv
cmVzb3VyY2VzL2JpbmFyeS1mcmFtZXNfd3NoLnB5OgorICAgICAgICBBZGRlZC4gU2FtZSBhcyBh
Ym92ZSBiaW5hcnktZnJhbWVzX3dzaC5weS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3JlY2VpdmUtYmxvYi5qczogQWRkZWQuCisK
IDIwMTEtMDgtMjYgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gVXBkYXRlIHRlc3RzIGV4cGVjdGF0aW9ucyBkdWUgdG8gcjkzOTA5IGFuZCBy
OTM5MTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2JpbmFyeS1mcmFtZXNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9iaW5hcnktZnJhbWVzX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTZkMGUx
ODkwYjg3MTViODZlZTlhOWU5YmFjZDE5MTNlODY3ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9iaW5hcnktZnJhbWVzX3dz
aC5weQpAQCAtMCwwICsxLDE4IEBACitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Citmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCisKKworZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHBhc3MKKworCitkZWYgd2ViX3NvY2tl
dF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIG1lc3NhZ2VzX3RvX3NlbmQgPSBbJ0hlbGxv
LCB3b3JsZCEnLCAnJywgYWxsX2Rpc3RpbmN0X2J5dGVzKCldCisgICAgZm9yIG1lc3NhZ2UgaW4g
bWVzc2FnZXNfdG9fc2VuZDoKKyAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVzZSBiZXR0ZXIgQVBJ
IHRvIHNlbmQgYmluYXJ5IG1lc3NhZ2VzIHdoZW4gcHl3ZWJzb2NrZXQgc3VwcG9ydHMgaXQuCisg
ICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5PUENPREVfQklOQVJZ
LCBsZW4obWVzc2FnZSksIDEsIDAsIDAsIDAsIDApCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShoZWFkZXIgKyBtZXNzYWdlKQorCisKK2RlZiBhbGxfZGlzdGluY3RfYnl0ZXMoKToK
KyAgICByZXR1cm4gJycuam9pbihbY2hyKGkpIGZvciBpIGluIHhyYW5nZSgyNTYpXSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21l
bnRlZC1iaW5hcnktZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1iaW5hcnktZnJhbWVzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NDBiYmY2MmU0ODE0MjBmZWY4OGM0YmQ4ZDg4Mjk0YmNhZDY1OGJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9mcmFnbWVudGVkLWJpbmFyeS1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYg
QEAKK1dlYlNvY2tldDogUmVjZWl2ZSBmcmFnbWVudGVkIGJpbmFyeSBtZXNzYWdlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIHdzLmJpbmFyeVR5cGUgaXMgImJsb2IiCitQ
QVNTIHJlY2VpdmVkTWVzc2FnZXMubGVuZ3RoIGlzIDQKK0NoZWNraW5nIG1lc3NhZ2UgIzAuCitQ
QVNTIHJlc3BvbnNlVHlwZSBpcyAiW29iamVjdCBCbG9iXSIKK1BBU1MgYWN0dWFsQXJyYXkubGVu
Z3RoIGlzIDEzCitQQVNTIFBhc3NlZDogTWVzc2FnZSAjMC4KK0NoZWNraW5nIG1lc3NhZ2UgIzEu
CitQQVNTIHJlc3BvbnNlVHlwZSBpcyAiW29iamVjdCBCbG9iXSIKK1BBU1MgYWN0dWFsQXJyYXku
bGVuZ3RoIGlzIDEzCitQQVNTIFBhc3NlZDogTWVzc2FnZSAjMS4KK0NoZWNraW5nIG1lc3NhZ2Ug
IzIuCitQQVNTIHJlc3BvbnNlVHlwZSBpcyAiW29iamVjdCBCbG9iXSIKK1BBU1MgYWN0dWFsQXJy
YXkubGVuZ3RoIGlzIDAKK1BBU1MgUGFzc2VkOiBNZXNzYWdlICMyLgorQ2hlY2tpbmcgbWVzc2Fn
ZSAjMy4KK1BBU1MgcmVzcG9uc2VUeXBlIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyBhY3R1YWxB
cnJheS5sZW5ndGggaXMgMjU2CitQQVNTIFBhc3NlZDogTWVzc2FnZSAjMy4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ZyYWdtZW50ZWQtYmluYXJ5
LWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9mcmFnbWVudGVkLWJpbmFyeS1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjRkN2ZlMjFhNGZj
MTQ3YjA4YjVmYWQ4NGVmMzM5MTk0NmVlY2IwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9mcmFnbWVudGVkLWJpbmFyeS1mcmFt
ZXMuaHRtbApAQCAtMCwwICsxLDEwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiV2ViU29ja2V0OiBSZWNlaXZlIGZyYWdtZW50ZWQgYmluYXJ5
IG1lc3NhZ2VzLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOwor
CitmdW5jdGlvbiBjcmVhdGVIZWxsb1dvcmxkVmFsdWUoKQoreworICAgIHZhciBoZWxsbyA9ICJI
ZWxsbywgd29ybGQhIjsKKyAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheShoZWxsby5sZW5n
dGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVsbG8ubGVuZ3RoOyArK2kpCisgICAgICAg
IGFycmF5W2ldID0gaGVsbG8uY2hhckNvZGVBdChpKTsKKyAgICByZXR1cm4gYXJyYXkuYnVmZmVy
OworfQorCitmdW5jdGlvbiBjcmVhdGVFbXB0eVZhbHVlKCkKK3sKKyAgICByZXR1cm4gbmV3IEFy
cmF5QnVmZmVyKDApOworfQorCisvLyBDcmVhdGUgYW4gQXJyYXlCdWZmZXIgY29udGFpbmluZyBh
bGwgZGlzdGluY3QgYnl0ZXMgKCJceDAwIiB0byAiXHhGRiIpLgorZnVuY3Rpb24gY3JlYXRlQWxs
Qnl0ZXNWYWx1ZSgpCit7CisgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKQorICAgICAgICBhcnJheVtpXSA9IGk7Cisg
ICAgcmV0dXJuIGFycmF5LmJ1ZmZlcjsKK30KKwordmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6
Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9mcmFnbWVudGVkLWJpbmFyeS1m
cmFtZXMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid3MuYmluYXJ5VHlwZSIsICJibG9iIik7
CisKK3ZhciBjbG9zZUV2ZW50OwordmFyIHJlY2VpdmVkTWVzc2FnZXMgPSBbXTsKK3ZhciBleHBl
Y3RlZFZhbHVlcyA9IFtjcmVhdGVIZWxsb1dvcmxkVmFsdWUoKSwgY3JlYXRlSGVsbG9Xb3JsZFZh
bHVlKCksIGNyZWF0ZUVtcHR5VmFsdWUoKSwgY3JlYXRlQWxsQnl0ZXNWYWx1ZSgpXTsKKword3Mu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgcmVjZWl2ZWRNZXNzYWdlcy5wdXNo
KGV2ZW50LmRhdGEpOworfTsKKword3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAg
IGNsb3NlRXZlbnQgPSBldmVudDsKKworICAgIHNob3VsZEV2YWx1YXRlVG8oInJlY2VpdmVkTWVz
c2FnZXMubGVuZ3RoIiwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoKTsKKyAgICBjaGVjaygwKTsKK307
CisKK3ZhciByZXNwb25zZVR5cGU7CisKK2Z1bmN0aW9uIGNoZWNrKGluZGV4KQoreworICAgIGlm
IChpbmRleCA9PSBleHBlY3RlZFZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiQ2hlY2tpbmcgbWVzc2Fn
ZSAjIiArIGluZGV4ICsgIi4iKTsKKyAgICByZXNwb25zZVR5cGUgPSAnJyArIHJlY2VpdmVkTWVz
c2FnZXNbaW5kZXhdOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzcG9uc2VUeXBlIiwg
IltvYmplY3QgQmxvYl0iKTsKKyAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAg
ICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIocmVjZWl2ZWRNZXNzYWdlc1tpbmRleF0pOworICAg
IHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGNoZWNrQXJy
YXlCdWZmZXIoaW5kZXgsIHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkVmFsdWVzW2luZGV4XSk7Cisg
ICAgICAgIGNoZWNrKGluZGV4ICsgMSk7CisgICAgfTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRvIHJlYWQg
YmxvYjogZXJyb3IgY29kZSA9ICIgKyByZWFkZXIuZXJyb3IuY29kZSk7CisgICAgICAgIGNoZWNr
KGluZGV4ICsgMSk7CisgICAgfTsKK30KKwordmFyIGFjdHVhbEFycmF5OwordmFyIGV4cGVjdGVk
QXJyYXk7CisKK2Z1bmN0aW9uIGNoZWNrQXJyYXlCdWZmZXIodGVzdEluZGV4LCBhY3R1YWwsIGV4
cGVjdGVkKQoreworICAgIGFjdHVhbEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYWN0dWFsKTsKKyAg
ICBleHBlY3RlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZXhwZWN0ZWQpOworICAgIHNob3VsZEV2
YWx1YXRlVG8oImFjdHVhbEFycmF5Lmxlbmd0aCIsIGV4cGVjdGVkQXJyYXkubGVuZ3RoKTsKKyAg
ICAvLyBQcmludCBvbmx5IHRoZSBmaXJzdCBtaXNtYXRjaGVkIGJ5dGUgaW4gb3JkZXIgbm90IHRv
IGZsb29kIGNvbnNvbGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZEFycmF5Lmxl
bmd0aDsgKytpKSB7CisgICAgICAgIGlmIChhY3R1YWxBcnJheVtpXSAhPSBleHBlY3RlZEFycmF5
W2ldKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJWYWx1ZSBtaXNtYXRjaDogYWN0dWFsQXJy
YXlbIiArIGkgKyAiXSA9ICIgKyBhY3R1YWxBcnJheVtpXSArICIsIGV4cGVjdGVkQXJyYXlbIiAr
IGkgKyAiXSA9ICIgKyBleHBlY3RlZEFycmF5W2ldKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICB0ZXN0UGFzc2VkKCJQYXNzZWQ6IE1lc3NhZ2UgIyIgKyB0ZXN0
SW5kZXggKyAiLiIpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ZyYWdtZW50ZWQtYmluYXJ5LWZy
YW1lc193c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2ZyYWdtZW50ZWQtYmluYXJ5LWZyYW1lc193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY5MTc5OWQ2ZTA0
MmM5ZjAyN2E4YmU2MzA2ODQxMGIxYzU4MTI2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1iaW5hcnktZnJh
bWVzX3dzaC5weQpAQCAtMCwwICsxLDI2IEBACitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
Y29tbW9uCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCisKKworZGVmIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHBhc3MKKworCitkZWYgd2Vi
X3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIG1lc3NhZ2VzX3RvX3NlbmQgPSBb
WydIZWxsbywgJywgJ3dvcmxkISddLAorICAgICAgICAgICAgICAgICAgICAgICAgWycnLCAnSGVs
bG8sICcsICcnLCAnd29ybGQhJywgJyddLAorICAgICAgICAgICAgICAgICAgICAgICAgWycnLCAn
JywgJyddLAorICAgICAgICAgICAgICAgICAgICAgICAgW2NocihpKSBmb3IgaSBpbiB4cmFuZ2Uo
MjU2KV1dCisgICAgZm9yIG1lc3NhZ2VfbGlzdCBpbiBtZXNzYWdlc190b19zZW5kOgorICAgICAg
ICBmb3IgaW5kZXgsIG1lc3NhZ2UgaW4gZW51bWVyYXRlKG1lc3NhZ2VfbGlzdCk6CisgICAgICAg
ICAgICAjIEZJWE1FOiBTaG91bGQgdXNlIGJldHRlciBBUEkgdG8gc2VuZCBiaW5hcnkgbWVzc2Fn
ZXMgd2hlbiBweXdlYnNvY2tldCBzdXBwb3J0cyBpdC4KKyAgICAgICAgICAgIGlmIGluZGV4ID09
IDA6CisgICAgICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT04KKyAgICAgICAgICAgIGlmIGluZGV4IDwgbGVuKG1lc3NhZ2VfbGlzdCkgLSAxOgor
ICAgICAgICAgICAgICAgIGZpbmFsID0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBmaW5hbCA9IDEKKyAgICAgICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVy
KG9wY29kZSwgbGVuKG1lc3NhZ2UpLCBmaW5hbCwgMCwgMCwgMCwgMCkKKyAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0ZShoZWFkZXIgKyBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9yZWNlaXZlLWJsb2ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9y
ZWNlaXZlLWJsb2ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMzdlODg2ODA5NjIxNThiMDRj
ZWMxMWNmMWI3ZWM2ZTExMWZlZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3JlY2VpdmUtYmxvYi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMiBAQAorV2ViU29ja2V0OiBSZWNlaXZlIEJsb2JzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKK1BBU1Mgd3MuYmluYXJ5VHlwZSBpcyAiYmxvYiIKK1BBU1MgcmVjZWl2
ZWRNZXNzYWdlcy5sZW5ndGggaXMgMworQ2hlY2tpbmcgbWVzc2FnZSAjMC4KK1BBU1MgcmVzcG9u
c2VUeXBlIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyBhY3R1YWxBcnJheS5sZW5ndGggaXMgMTMK
K1BBU1MgUGFzc2VkOiBNZXNzYWdlICMwLgorQ2hlY2tpbmcgbWVzc2FnZSAjMS4KK1BBU1MgcmVz
cG9uc2VUeXBlIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyBhY3R1YWxBcnJheS5sZW5ndGggaXMg
MAorUEFTUyBQYXNzZWQ6IE1lc3NhZ2UgIzEuCitDaGVja2luZyBtZXNzYWdlICMyLgorUEFTUyBy
ZXNwb25zZVR5cGUgaXMgIltvYmplY3QgQmxvYl0iCitQQVNTIGFjdHVhbEFycmF5Lmxlbmd0aCBp
cyAyNTYKK1BBU1MgUGFzc2VkOiBNZXNzYWdlICMyLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvcmVjZWl2ZS1ibG9iLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3JlY2VpdmUtYmxvYi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiMGNmNmQ1ZDVhYWRlYzdkYjYyOTgwMDQ1YTg5MzdlNzcxNWZjN2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Jl
Y2VpdmUtYmxvYi5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJXZWJTb2NrZXQ6IFJlY2VpdmUgQmxvYnMuIik7
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK2Z1bmN0aW9uIGNy
ZWF0ZUhlbGxvV29ybGRWYWx1ZSgpCit7CisgICAgdmFyIGhlbGxvID0gIkhlbGxvLCB3b3JsZCEi
OworICAgIHZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5KGhlbGxvLmxlbmd0aCk7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBoZWxsby5sZW5ndGg7ICsraSkKKyAgICAgICAgYXJyYXlbaV0gPSBo
ZWxsby5jaGFyQ29kZUF0KGkpOworICAgIHJldHVybiBhcnJheS5idWZmZXI7Cit9CisKK2Z1bmN0
aW9uIGNyZWF0ZUVtcHR5VmFsdWUoKQoreworICAgIHJldHVybiBuZXcgQXJyYXlCdWZmZXIoMCk7
Cit9CisKKy8vIENyZWF0ZSBhbiBBcnJheUJ1ZmZlciBjb250YWluaW5nIGFsbCBkaXN0aW5jdCBi
eXRlcyAoIlx4MDAiIHRvICJceEZGIikuCitmdW5jdGlvbiBjcmVhdGVBbGxCeXRlc1ZhbHVlKCkK
K3sKKyAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSgyNTYpOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMjU2OyArK2kpCisgICAgICAgIGFycmF5W2ldID0gaTsKKyAgICByZXR1cm4gYXJy
YXkuYnVmZmVyOworfQorCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4
ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JpbmFyeS1mcmFtZXMiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygid3MuYmluYXJ5VHlwZSIsICJibG9iIik7CisKK3ZhciBjbG9zZUV2ZW50OwordmFy
IHJlY2VpdmVkTWVzc2FnZXMgPSBbXTsKK3ZhciBleHBlY3RlZFZhbHVlcyA9IFtjcmVhdGVIZWxs
b1dvcmxkVmFsdWUoKSwgY3JlYXRlRW1wdHlWYWx1ZSgpLCBjcmVhdGVBbGxCeXRlc1ZhbHVlKCld
OworCit3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICByZWNlaXZlZE1lc3Nh
Z2VzLnB1c2goZXZlbnQuZGF0YSk7Cit9OworCit3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQp
Cit7CisgICAgY2xvc2VFdmVudCA9IGV2ZW50OworCisgICAgc2hvdWxkRXZhbHVhdGVUbygicmVj
ZWl2ZWRNZXNzYWdlcy5sZW5ndGgiLCBleHBlY3RlZFZhbHVlcy5sZW5ndGgpOworICAgIGNoZWNr
KDApOworfTsKKwordmFyIHJlc3BvbnNlVHlwZTsKKworZnVuY3Rpb24gY2hlY2soaW5kZXgpCit7
CisgICAgaWYgKGluZGV4ID09IGV4cGVjdGVkVmFsdWVzLmxlbmd0aCkgeworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRlYnVnKCJDaGVja2lu
ZyBtZXNzYWdlICMiICsgaW5kZXggKyAiLiIpOworICAgIHJlc3BvbnNlVHlwZSA9ICcnICsgcmVj
ZWl2ZWRNZXNzYWdlc1tpbmRleF07CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXNwb25z
ZVR5cGUiLCAiW29iamVjdCBCbG9iXSIpOworICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRl
cigpOworICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihyZWNlaXZlZE1lc3NhZ2VzW2luZGV4
XSk7CisgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAg
Y2hlY2tBcnJheUJ1ZmZlcihpbmRleCwgcmVhZGVyLnJlc3VsdCwgZXhwZWN0ZWRWYWx1ZXNbaW5k
ZXhdKTsKKyAgICAgICAgY2hlY2soaW5kZXggKyAxKTsKKyAgICB9OworICAgIHJlYWRlci5vbmVy
cm9yID0gZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsZWQg
dG8gcmVhZCBibG9iOiBlcnJvciBjb2RlID0gIiArIHJlYWRlci5lcnJvci5jb2RlKTsKKyAgICAg
ICAgY2hlY2soaW5kZXggKyAxKTsKKyAgICB9OworfQorCit2YXIgYWN0dWFsQXJyYXk7Cit2YXIg
ZXhwZWN0ZWRBcnJheTsKKworZnVuY3Rpb24gY2hlY2tBcnJheUJ1ZmZlcih0ZXN0SW5kZXgsIGFj
dHVhbCwgZXhwZWN0ZWQpCit7CisgICAgYWN0dWFsQXJyYXkgPSBuZXcgVWludDhBcnJheShhY3R1
YWwpOworICAgIGV4cGVjdGVkQXJyYXkgPSBuZXcgVWludDhBcnJheShleHBlY3RlZCk7CisgICAg
c2hvdWxkRXZhbHVhdGVUbygiYWN0dWFsQXJyYXkubGVuZ3RoIiwgZXhwZWN0ZWRBcnJheS5sZW5n
dGgpOworICAgIC8vIFByaW50IG9ubHkgdGhlIGZpcnN0IG1pc21hdGNoZWQgYnl0ZSBpbiBvcmRl
ciBub3QgdG8gZmxvb2QgY29uc29sZS4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVk
QXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKGFjdHVhbEFycmF5W2ldICE9IGV4cGVj
dGVkQXJyYXlbaV0pIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlZhbHVlIG1pc21hdGNoOiBh
Y3R1YWxBcnJheVsiICsgaSArICJdID0gIiArIGFjdHVhbEFycmF5W2ldICsgIiwgZXhwZWN0ZWRB
cnJheVsiICsgaSArICJdID0gIiArIGV4cGVjdGVkQXJyYXlbaV0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorICAgIHRlc3RQYXNzZWQoIlBhc3NlZDogTWVzc2FnZSAj
IiArIHRlc3RJbmRleCArICIuIik7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZWNl
aXZlLWJsb2ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS93b3JrZXJzL3JlY2VpdmUtYmxvYi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTNkYjMxY2Q3ZDdlYWRiYjczZTE3YzI3ZWM3NmZkYTZhZDliZjc4OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9y
ZWNlaXZlLWJsb2ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1dlYlNvY2tldDogUmVj
ZWl2ZSBCbG9icyBpbiBXZWIgV29ya2Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CitQQVNTIFBBU1M6IHdzLmJpbmFyeVR5cGUgaXMgImJsb2IiCitQQVNTIFBBU1M6IHJlY2VpdmVk
TWVzc2FnZXMubGVuZ3RoIGlzIDMKK0lORk86IENoZWNraW5nIG1lc3NhZ2UgIzAuCitQQVNTIFBB
U1M6IHJlc3BvbnNlVHlwZSBpcyAiW29iamVjdCBCbG9iXSIKK1BBU1MgUEFTUzogYWN0dWFsQXJy
YXkubGVuZ3RoIGlzIDEzCitQQVNTIFBBU1M6IFBhc3NlZDogTWVzc2FnZSAjMC4KK0lORk86IENo
ZWNraW5nIG1lc3NhZ2UgIzEuCitQQVNTIFBBU1M6IHJlc3BvbnNlVHlwZSBpcyAiW29iamVjdCBC
bG9iXSIKK1BBU1MgUEFTUzogYWN0dWFsQXJyYXkubGVuZ3RoIGlzIDAKK1BBU1MgUEFTUzogUGFz
c2VkOiBNZXNzYWdlICMxLgorSU5GTzogQ2hlY2tpbmcgbWVzc2FnZSAjMi4KK1BBU1MgUEFTUzog
cmVzcG9uc2VUeXBlIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyBQQVNTOiBhY3R1YWxBcnJheS5s
ZW5ndGggaXMgMjU2CitQQVNTIFBBU1M6IFBhc3NlZDogTWVzc2FnZSAjMi4KK0RPTkUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVj
ZWl2ZS1ibG9iLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3dvcmtlcnMvcmVjZWl2ZS1ibG9iLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ3MDljMDJiY2QzZjU5
MzdlNGY2YTA0MDQ2YzY5ZGZmNWZkMzdjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZWNlaXZlLWJsb2IuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oIldlYlNvY2tldDogUmVj
ZWl2ZSBCbG9icyBpbiBXZWIgV29ya2Vycy4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAwKTsKKworZnVuY3Rpb24gc3RhcnRzV2l0aChzdHIsIHByZWZpeCkKK3sKKyAg
ICByZXR1cm4gc3RyLmluZGV4T2YocHJlZml4KSA9PSAwOworfQorCit2YXIgd29ya2VyID0gbmV3
IFdvcmtlcigicmVzb3VyY2VzL3JlY2VpdmUtYmxvYi5qcyIpOword29ya2VyLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uIChldmVudCkKK3sKKyAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CisgICAg
aWYgKHN0YXJ0c1dpdGgobWVzc2FnZSwgIlBBU1MiKSkKKyAgICAgICAgdGVzdFBhc3NlZChtZXNz
YWdlKTsKKyAgICBlbHNlIGlmIChzdGFydHNXaXRoKG1lc3NhZ2UsICJGQUlMIikpCisgICAgICAg
IHRlc3RGYWlsZWQobWVzc2FnZSkKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKG1lc3NhZ2UpOwor
ICAgIGlmIChtZXNzYWdlID09PSAiRE9ORSIpCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9iaW5hcnktZnJhbWVzX3dz
aC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vy
cy9yZXNvdXJjZXMvYmluYXJ5LWZyYW1lc193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU2ZDBlMTg5MGI4
NzE1Yjg2ZWU5YTllOWJhY2QxOTEzZTg2N2ZkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvYmlu
YXJ5LWZyYW1lc193c2gucHkKQEAgLTAsMCArMSwxOCBAQAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQorCisKK2Rl
ZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKwor
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICBtZXNzYWdlc190b19z
ZW5kID0gWydIZWxsbywgd29ybGQhJywgJycsIGFsbF9kaXN0aW5jdF9ieXRlcygpXQorICAgIGZv
ciBtZXNzYWdlIGluIG1lc3NhZ2VzX3RvX3NlbmQ6CisgICAgICAgICMgRklYTUU6IFNob3VsZCB1
c2UgYmV0dGVyIEFQSSB0byBzZW5kIGJpbmFyeSBtZXNzYWdlcyB3aGVuIHB5d2Vic29ja2V0IHN1
cHBvcnRzIGl0LgorICAgICAgICBoZWFkZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcihjb21tb24u
T1BDT0RFX0JJTkFSWSwgbGVuKG1lc3NhZ2UpLCAxLCAwLCAwLCAwLCAwKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGUoaGVhZGVyICsgbWVzc2FnZSkKKworCitkZWYgYWxsX2Rpc3Rp
bmN0X2J5dGVzKCk6CisgICAgcmV0dXJuICcnLmpvaW4oW2NocihpKSBmb3IgaSBpbiB4cmFuZ2Uo
MjU2KV0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3JlY2VpdmUtYmxvYi5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvcmVjZWl2ZS1i
bG9iLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZjNTgzNTM0MGQ4MjZkM2FkNzYwZjM5OWE5Y2FmNTBlYmFiNDQ2
OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3JlY2VpdmUtYmxvYi5qcwpAQCAtMCwwICsxLDkw
IEBACitmdW5jdGlvbiBjcmVhdGVIZWxsb1dvcmxkVmFsdWUoKQoreworICAgIHZhciBoZWxsbyA9
ICJIZWxsbywgd29ybGQhIjsKKyAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheShoZWxsby5s
ZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVsbG8ubGVuZ3RoOyArK2kpCisgICAg
ICAgIGFycmF5W2ldID0gaGVsbG8uY2hhckNvZGVBdChpKTsKKyAgICByZXR1cm4gYXJyYXkuYnVm
ZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVFbXB0eVZhbHVlKCkKK3sKKyAgICByZXR1cm4gbmV3
IEFycmF5QnVmZmVyKDApOworfQorCisvLyBDcmVhdGUgYW4gQXJyYXlCdWZmZXIgY29udGFpbmlu
ZyBhbGwgZGlzdGluY3QgYnl0ZXMgKCJceDAwIiB0byAiXHhGRiIpLgorZnVuY3Rpb24gY3JlYXRl
QWxsQnl0ZXNWYWx1ZSgpCit7CisgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKQorICAgICAgICBhcnJheVtpXSA9IGk7
CisgICAgcmV0dXJuIGFycmF5LmJ1ZmZlcjsKK30KKwordmFyIHdzID0gbmV3IFdlYlNvY2tldCgi
d3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNl
cy9iaW5hcnktZnJhbWVzIik7CitpZiAod3MuYmluYXJ5VHlwZSA9PT0gImJsb2IiKQorICAgIHBv
c3RNZXNzYWdlKCJQQVNTOiB3cy5iaW5hcnlUeXBlIGlzIFwiYmxvYlwiIik7CitlbHNlCisgICAg
cG9zdE1lc3NhZ2UoIkZBSUw6IHdzLmJpbmFyeVR5cGUgc2hvdWxkIGJlIFwiYmxvYlwiIGJ1dCB3
YXMgXCIiICsgd3MuYmluYXJ5VHlwZSArICJcIiIpOworCit2YXIgcmVjZWl2ZWRNZXNzYWdlcyA9
IFtdOwordmFyIGV4cGVjdGVkVmFsdWVzID0gW2NyZWF0ZUhlbGxvV29ybGRWYWx1ZSgpLCBjcmVh
dGVFbXB0eVZhbHVlKCksIGNyZWF0ZUFsbEJ5dGVzVmFsdWUoKV07CisKK3dzLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHJlY2VpdmVkTWVzc2FnZXMucHVzaChldmVudC5kYXRh
KTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihjbG9zZUV2ZW50KQoreworICAgIGlmIChy
ZWNlaXZlZE1lc3NhZ2VzLmxlbmd0aCA9PT0gZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoKQorICAgICAg
ICBwb3N0TWVzc2FnZSgiUEFTUzogcmVjZWl2ZWRNZXNzYWdlcy5sZW5ndGggaXMgIiArIGV4cGVj
dGVkVmFsdWVzLmxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDog
cmVjZWl2ZWRNZXNzYWdlcy5sZW5ndGggc2hvdWxkIGJlICIgKyBleHBlY3RlZFZhbHVlcy5sZW5n
dGggKyAiIGJ1dCB3YXMgIiArIHJlY2VpdmVkTWVzc2FnZXMubGVuZ3RoKTsKKyAgICBjaGVjaygw
KTsKK307CisKK2Z1bmN0aW9uIGNoZWNrKGluZGV4KQoreworICAgIGlmIChpbmRleCA9PSBleHBl
Y3RlZFZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkRPTkUiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc3RNZXNzYWdlKCJJTkZPOiBDaGVja2luZyBtZXNz
YWdlICMiICsgaW5kZXggKyAiLiIpOworICAgIHZhciByZXNwb25zZVR5cGUgPSAnJyArIHJlY2Vp
dmVkTWVzc2FnZXNbaW5kZXhdOworICAgIGlmIChyZXNwb25zZVR5cGUgPT09ICJbb2JqZWN0IEJs
b2JdIikKKyAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IHJlc3BvbnNlVHlwZSBpcyBcIltvYmpl
Y3QgQmxvYl1cIiIpOworICAgIGVsc2UKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IHJlc3Bv
bnNlVHlwZSBzaG91bGQgYmUgXCJbb2JqZWN0IEJsb2JdXCIgYnV0IHdhcyBcIiIgKyByZXNwb25z
ZVR5cGUgKyAiXCIiKTsKKyAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICBy
ZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIocmVjZWl2ZWRNZXNzYWdlc1tpbmRleF0pOworICAgIHJl
YWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGNoZWNrQXJyYXlC
dWZmZXIoaW5kZXgsIHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkVmFsdWVzW2luZGV4XSk7CisgICAg
ICAgIGNoZWNrKGluZGV4ICsgMSk7CisgICAgfTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IEZhaWxlZCB0byBy
ZWFkIGJsb2I6IGVycm9yIGNvZGUgPSAiICsgcmVhZGVyLmVycm9yLmNvZGUpOworICAgICAgICBj
aGVjayhpbmRleCArIDEpOworICAgIH07Cit9CisKK2Z1bmN0aW9uIGNoZWNrQXJyYXlCdWZmZXIo
dGVzdEluZGV4LCBhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIHZhciBhY3R1YWxBcnJheSA9IG5l
dyBVaW50OEFycmF5KGFjdHVhbCk7CisgICAgdmFyIGV4cGVjdGVkQXJyYXkgPSBuZXcgVWludDhB
cnJheShleHBlY3RlZCk7CisgICAgaWYgKGFjdHVhbEFycmF5Lmxlbmd0aCA9PT0gZXhwZWN0ZWRB
cnJheS5sZW5ndGgpCisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBhY3R1YWxBcnJheS5sZW5n
dGggaXMgIiArIGV4cGVjdGVkQXJyYXkubGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAgIHBvc3RN
ZXNzYWdlKCJGQUlMOiBhY3R1YWxBcnJheS5sZW5ndGggc2hvdWxkIGJlICIgKyBleHBlY3RlZEFy
cmF5Lmxlbmd0aCArICIgYnV0IHdhcyAiICsgYWN0dWFsQXJyYXkubGVuZ3RoKTsKKyAgICAvLyBQ
cmludCBvbmx5IHRoZSBmaXJzdCBtaXNtYXRjaGVkIGJ5dGUgaW4gb3JkZXIgbm90IHRvIGZsb29k
IGNvbnNvbGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZEFycmF5Lmxlbmd0aDsg
KytpKSB7CisgICAgICAgIGlmIChhY3R1YWxBcnJheVtpXSAhPSBleHBlY3RlZEFycmF5W2ldKSB7
CisgICAgICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogVmFsdWUgbWlzbWF0Y2g6IGFjdHVhbEFy
cmF5WyIgKyBpICsgIl0gPSAiICsgYWN0dWFsQXJyYXlbaV0gKyAiLCBleHBlY3RlZEFycmF5WyIg
KyBpICsgIl0gPSAiICsgZXhwZWN0ZWRBcnJheVtpXSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IFBhc3NlZDogTWVzc2FnZSAj
IiArIHRlc3RJbmRleCArICIuIik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNjZDk4YWU0YmJjMTY4ODEw
NDQ1OTVmNjFkMGJlYTkyNWQ1YjRmZi4uZWUwZTU0NWI0YWYwMDk2YTliMWIxNWM5YzFlZTIxOTQ5
NzRhYjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDExLTA4LTI5ICBZdXRhIEtp
dGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNvY2tldDogUmVjZWl2
ZSBiaW5hcnkgbWVzc2FnZSBhcyBCbG9iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzExNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgV2ViU29ja2V0Q2hhbm5lbCBiZSBhYmxlIHRvIHJlY2VpdmUg
V2ViU29ja2V0IGJpbmFyeSBtZXNzYWdlcyBhbmQgZGVsaXZlciB0aGVtIHZpYQorICAgICAgICBk
aWRSZWNlaXZlQmluYXJ5RGF0YSgpIGNhbGxiYWNrIG9mIFdlYlNvY2tldENoYW5uZWxDbGllbnQu
CisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21l
bnRlZC1iaW5hcnktZnJhbWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvcmVjZWl2ZS1ibG9iLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZWNlaXZlLWJsb2IuaHRtbAorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRhdGEpOiBDb252ZXJ0IEJsb2IgdG8gSlNWYWx1ZS4KKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6IENvbnZl
cnQgQmxvYiB0byB2ODo6VmFsdWUuCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6CisgICAgICAgICog
ZG9tL01lc3NhZ2VFdmVudC5oOgorICAgICAgICBBZGRlZCBEYXRhVHlwZUJsb2IgYW5kIEJsb2It
cmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmRhdGFBc0Jsb2IpOgorICAgICAg
ICAqIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlQmluYXJ5RGF0YUNhbGxi
YWNrKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEpOgorICAgICAgICBJ
ZiBiaW5hcnlUeXBlIGF0dHJpYnV0ZSBpcyAiYmxvYiIsIGNvbnN0cnVjdCBhIEJsb2IgdXNpbmcg
QmxvYkRhdGEgZmlsbGVkIHdpdGggdGhlIGdpdmVuCisgICAgICAgIGJpbmFyeSBtZXNzYWdlLgor
ICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIENyZWF0ZSBjb250aW51b3VzRnJhbWVEYXRhIGFzIE93
blB0cjw+IHJhdGhlciB0aGFuIHN0YWNrLWFsbG9jYXRlZCB2YWx1ZSBzbyB3ZSBjYW4gZWFzaWx5
CisgICAgICAgIHBhc3MgaXQgdG8gZGlkUmVjZWl2ZUJpbmFyeURhdGEoKSBjYWxsYmFjay4KKyAg
ICAgICAgU2F2ZSB0aGUgY29udGVudCBvZiBhIGZyYWdtZW50ZWQgbWVzc2FnZSBldmVuIGlmIGl0
IGlzIGEgYmluYXJ5IG9wY29kZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWxDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQ6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndvcmtlckNvbnRleHRE
aWRSZWNlaXZlQmluYXJ5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEpOgorICAgICAgICBQ
YXNzIGJpbmFyeURhdGEgYXMgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPiB0byBkZWxpdmVyIHRo
ZSB2YWx1ZSBlZmZpY2llbnRseSAod2l0aG91dAorICAgICAgICBjb3B5aW5nIHRoZSBjb250ZW50
KSBhY3Jvc3MgdGhyZWFkcy4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMTEtMDgtMjYgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFBvc3NpYmxlIGxlYWsgb2YgTGF5
ZXJSZW5kZXJlckNocm9taXVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggOGI2YzE1NDFlODNkZDllYmMxYjkzZDIxZGUy
YmQ4NjlmMTcyMTk4Ni4uZGE5MTE1NGJiYjljNWY0OTYyZTEzMDMyM2FhM2MwYWRmZjM2MzJmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTTWVzc2FnZUV2ZW50LmgiCiAKKyNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnRU
YXJnZXQuaCIKQEAgLTYwLDYgKzYxLDEwIEBAIEpTVmFsdWUgSlNNZXNzYWdlRXZlbnQ6OmRhdGEo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVN0
cmluZzoKICAgICAgICAgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgZXZlbnQtPmRhdGFBc1N0cmlu
ZygpKTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lc3NhZ2VFdmVudDo6RGF0YVR5cGVC
bG9iOgorICAgICAgICByZXN1bHQgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBldmVudC0+
ZGF0YUFzQmxvYigpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLy8gU2F2ZSB0aGUg
cmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAKaW5kZXggYTFhZmM4MTgzYjdlZDAwZTQ4Y2QyNTE2YmZmZDUzOGM0
ODFiY2RkMy4uNzVjN2I1N2QwOTY2MTI2MzA4MzAwYWYxY2I3MjljNjg4OGI3MThlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJsb2Iu
aCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlY4TWVzc2FnZVBvcnQuaCIK
ICNpbmNsdWRlICJWOE1lc3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC02MSw2ICs2MiwxMCBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbgogICAgICAgICByZXN1bHQgPSB2ODo6U3RyaW5nOjpOZXcoZnJv
bVdlYkNvcmVTdHJpbmcoc3RyaW5nVmFsdWUpLCBzdHJpbmdWYWx1ZS5sZW5ndGgoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZUJsb2I6
CisgICAgICAgIHJlc3VsdCA9IHRvVjgoZXZlbnQtPmRhdGFBc0Jsb2IoKSk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGF0YSBhdHRyaWJ1dGUgc28gaXQg
cmV0dXJucyB0aGUgY2FjaGVkIHJlc3VsdCBpbiBmdXR1cmUgaW52b2NhdGlvbnMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuY3BwCmluZGV4IDhkNGU4ZjA4NjQxNGM2OTczNzFlMmUzOTkwYWQy
MmYwMDY1ZTY2NmQuLjM0MzJkNmYzNDU1MWYyNGQwNmEyODljZTFjMjY1NDQzZWY0YTA4ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCkBAIC01OSw2ICs1OSwxNSBAQCBNZXNzYWdl
RXZlbnQ6Ok1lc3NhZ2VFdmVudChjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiB9CiAKK01lc3NhZ2VF
dmVudDo6TWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8QmxvYj4gZGF0YSkKKyAgICA6IEV2ZW50KGV2
ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YVR5cGUo
RGF0YVR5cGVCbG9iKQorICAgICwgbV9kYXRhQXNCbG9iKGRhdGEpCisgICAgLCBtX29yaWdpbigi
IikKKyAgICAsIG1fbGFzdEV2ZW50SWQoIiIpCit7Cit9CisKIE1lc3NhZ2VFdmVudDo6fk1lc3Nh
Z2VFdmVudCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKaW5kZXggM2E5MGIxZTNh
YmNkYTI1ODExZjY2NTBhZmNkOTYyOWU1M2E2OWRiMi4uM2ViMmM0ZjExZWUxNTQ0MzQ4MDUzZTc2
NjNjNWZiMzY3MzVkMjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2lmbmRlZiBNZXNzYWdlRXZlbnRfaAogI2RlZmluZSBNZXNzYWdlRXZlbnRfaAog
CisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKQEAgLTUxLDYgKzUyLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBNZXNzYWdlRXZlbnQoZGF0YSkpOwogICAgICAgICB9CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NSZWZQdHI8QmxvYj4gZGF0YSkKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSkpOwor
ICAgICAgICB9CiAgICAgICAgIHZpcnR1YWwgfk1lc3NhZ2VFdmVudCgpOwogCiAgICAgICAgIHZv
aWQgaW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBk
YXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9N
V2luZG93KiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4pOwpAQCAtNzIsMjAg
Kzc3LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBlbnVtIERhdGFUeXBlIHsK
ICAgICAgICAgICAgIERhdGFUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlLAotICAgICAgICAgICAg
RGF0YVR5cGVTdHJpbmcKKyAgICAgICAgICAgIERhdGFUeXBlU3RyaW5nLAorICAgICAgICAgICAg
RGF0YVR5cGVCbG9iCiAgICAgICAgIH07CiAgICAgICAgIERhdGFUeXBlIGRhdGFUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhVHlwZTsgfQogICAgICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IGRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmdldCgpOyB9CiAgICAgICAgIFN0cmluZyBkYXRhQXNTdHJpbmco
KSBjb25zdCB7IHJldHVybiBtX2RhdGFBc1N0cmluZzsgfQorICAgICAgICBCbG9iKiBkYXRhQXNC
bG9iKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhQXNCbG9iLmdldCgpOyB9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBNZXNzYWdlRXZlbnQoKTsKICAgICAgICAgTWVzc2FnZUV2ZW50KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29u
c3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFz
c093blB0cjxNZXNzYWdlUG9ydEFycmF5Pik7CiAgICAgICAgIGV4cGxpY2l0IE1lc3NhZ2VFdmVu
dChjb25zdCBTdHJpbmcmIGRhdGEpOworICAgICAgICBleHBsaWNpdCBNZXNzYWdlRXZlbnQoUGFz
c1JlZlB0cjxCbG9iPiBkYXRhKTsKIAogICAgICAgICBEYXRhVHlwZSBtX2RhdGFUeXBlOwogICAg
ICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX2RhdGFBc1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKICAgICAgICAgU3RyaW5nIG1fZGF0YUFzU3RyaW5nOworICAgICAgICBSZWZQdHI8
QmxvYj4gbV9kYXRhQXNCbG9iOwogICAgICAgICBTdHJpbmcgbV9vcmlnaW47CiAgICAgICAgIFN0
cmluZyBtX2xhc3RFdmVudElkOwogICAgICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3NvdXJjZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAppbmRleCAyM2Y0NWFkYTBh
YWNiY2YzNTE5YWYxOThlNjVkMGFkNmExN2YyMTY3Li5kMWI5NzI5MjcxM2I2ZGQ1ZjNlOTg5YzJj
MDQ4ODM4MGVmNGJjODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIu
Y3BwCkBAIC0xMzIsNiArMTMyLDEzIEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lCiAgICAgICAg
IHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9y
PGNoYXI+ID4gYmluYXJ5RGF0YSkKK3sKKyAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoY3JlYXRl
Q2FsbGJhY2tUYXNrKCZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcyks
IGJpbmFyeURhdGEpKTsKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVu
ZGluZ1Rhc2tzKCk7Cit9CisKIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKQogewogICAgIG1fcGVuZGluZ1Rhc2tz
LmFwcGVuZChjcmVhdGVDYWxsYmFja1Rhc2soJlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlQ2FsbGJhY2ssIEFsbG93Q3Jvc3NU
aHJlYWRBY2Nlc3ModGhpcykpKTsKQEAgLTE4MCw2ICsxODcsMTMgQEAgdm9pZCBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2so
U2NyaXB0RXgKICAgICAgICAgd3JhcHBlci0+bV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKG1l
c3NhZ2UpOwogfQogCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIHdyYXBwZXIs
IFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4gYmluYXJ5RGF0YSkKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKGNvbnRleHQsICFjb250ZXh0KTsKKyAgICBpZiAod3JhcHBlci0+bV9jbGllbnQpCisgICAg
ICAgIHdyYXBwZXItPm1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShiaW5hcnlEYXRhKTsK
K30KKwogdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFN0
YXJ0Q2xvc2luZ0hhbmRzaGFrZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciogd3JhcHBlcikKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsICFjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IGJjZWE5ZDZjYmNiZTdhNzk0MzBlZWJhOGVmODQyYTU4
MzM5OTEyMmIuLjg5MTdmODNmN2M4MGRmMGZmYjBlNTdhNjEzN2U0NjZhNjFmNzJhYjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAg
LTcyLDYgKzczLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDb25uZWN0KCk7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQgZGlk
UmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPik7CiAgICAgdm9pZCBk
aWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxv
bmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3Np
bmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvbik7CiAKQEAgLTg0LDYgKzg2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cHJvY2Vzc1BlbmRpbmdUYXNrcygpOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbm5lY3RDYWxsYmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlQmluYXJ5RGF0YUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqLCBQYXNzT3duUHRyPFZlY3RvcjxjaGFyPiA+
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2VDYWxsYmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2xvc2VDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiwgdW5zaWdu
ZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudDo6
Q2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNv
bnN0IFN0cmluZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCmluZGV4IDEzOTI0OWE2NmYwNmE2MzgxY2QxZDZhMWE5ZjNiMTQwNmU3N2I3ODYuLjRmYTg3
MTlmNzNkMDFiNWYwNzljODEzMGViYjQ5ODBiM2YyN2M3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTM0LDYgKzM0LDggQEAKIAogI2luY2x1ZGUgIldlYlNv
Y2tldC5oIgogCisjaW5jbHVkZSAiQmxvYi5oIgorI2luY2x1ZGUgIkJsb2JEYXRhLmgiCiAjaW5j
bHVkZSAiQ2xvc2VFdmVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCkBAIC00OSw2ICs1MSw4IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTM5Niw2
ICs0MDAsMjYgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbXNnKQogICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUobXNnKSk7CiB9
CiAKK3ZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3Rv
cjxjaGFyPiA+IGJpbmFyeURhdGEpCit7CisgICAgc3dpdGNoIChtX2JpbmFyeVR5cGUpIHsKKyAg
ICBjYXNlIEJpbmFyeVR5cGVCbG9iOiB7CisgICAgICAgIHNpemVfdCBzaXplID0gYmluYXJ5RGF0
YS0+c2l6ZSgpOworICAgICAgICBSZWZQdHI8UmF3RGF0YT4gcmF3RGF0YSA9IFJhd0RhdGE6OmNy
ZWF0ZSgpOworICAgICAgICBiaW5hcnlEYXRhLT5zd2FwKCpyYXdEYXRhLT5tdXRhYmxlRGF0YSgp
KTsKKyAgICAgICAgT3duUHRyPEJsb2JEYXRhPiBibG9iRGF0YSA9IEJsb2JEYXRhOjpjcmVhdGUo
KTsKKyAgICAgICAgYmxvYkRhdGEtPmFwcGVuZERhdGEocmF3RGF0YS5yZWxlYXNlKCksIDAsIEJs
b2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpOworICAgICAgICBSZWZQdHI8QmxvYj4gYmxvYiA9IEJs
b2I6OmNyZWF0ZShibG9iRGF0YS5yZWxlYXNlKCksIHNpemUpOworICAgICAgICBkaXNwYXRjaEV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKGJsb2IucmVsZWFzZSgpKSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIGNhc2UgQmluYXJ5VHlwZUFycmF5QnVmZmVyOgorICAgICAgICBtX2No
YW5uZWwtPmZhaWwoIkNhbm5vdCByZWNlaXZlIFdlYlNvY2tldCBiaW5hcnkgZGF0YSBhcyBBcnJh
eUJ1ZmZlciB5ZXQuIik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29j
a2V0ICVwIGRpZFJlY2VpdmVFcnJvck1lc3NhZ2UiLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5oCmluZGV4IGY4ZWIzM2I0ZmE0NDYxMDYzYTU1OGJlNWJmZGQ1ZmQyMTQ5
M2ZjMDEuLjU2ZTIwMDZjMDEzNzE4ZmUxNDg4ZDcyM2M1MWUwOThhNDIzYTFmYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoK
ICAgICAvLyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbm5l
Y3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0
cjxWZWN0b3I8Y2hhcj4gPik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91
bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2Rl
LCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1NjI4NGU1OTI5YmU1NWExMmQ5MmNjNjY2MzVlYjA2
MWRmNDc2MGZkLi4xNWNmNDE0OTA2MTlhOTczYmM0MDU0ZTAzYTZkOTgyNTk3MGM2ZjM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTUy
LDYgKzUyLDggQEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1h
bGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTU2OSw5ICs1NzEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNv
bnRpbnVhdGlvbiBmcmFtZS4iKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQotICAgICAgICAvLyBUaHJvdyBhd2F5IGNvbnRlbnQgb2YgYSBiaW5hcnkgbWVzc2FnZSBiZWNh
dXNlIGJpbmFyeSBtZXNzYWdlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuCi0gICAgICAgIGlmICht
X2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBPcENvZGVUZXh0KQotICAgICAgICAgICAgbV9jb250
aW51b3VzRnJhbWVEYXRhLmFwcGVuZChmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3Ro
KTsKKyAgICAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLmFwcGVuZChmcmFtZS5wYXlsb2FkLCBm
cmFtZS5wYXlsb2FkTGVuZ3RoKTsKICAgICAgICAgc2tpcEJ1ZmZlcihmcmFtZS5mcmFtZUVuZCAt
IG1fYnVmZmVyKTsKICAgICAgICAgaWYgKGZyYW1lLmZpbmFsKSB7CiAgICAgICAgICAgICAvLyBv
bm1lc3NhZ2UgaGFuZGxlciBtYXkgZXZlbnR1YWxseSBjYWxsIHRoZSBvdGhlciBtZXRob2RzIG9m
IHRoaXMgY2hhbm5lbCwKQEAgLTU3OSwyMyArNTc5LDIxIEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5l
bDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBtZW1i
ZXIgdmFyaWFibGVzIGFyZSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUgYmVmb3JlCiAgICAgICAgICAg
ICAvLyB0aGUgaGFuZGxlciBpcyBpbnZva2VkLgogICAgICAgICAgICAgLy8gVmVjdG9yPGNoYXI+
Ojpzd2FwKCkgaXMgdXNlZCBoZXJlIHRvIGNsZWFyIG1fY29udGludW91c0ZyYW1lRGF0YS4KLSAg
ICAgICAgICAgIFZlY3RvcjxjaGFyPiBjb250aW51b3VzRnJhbWVEYXRhOwotICAgICAgICAgICAg
bV9jb250aW51b3VzRnJhbWVEYXRhLnN3YXAoY29udGludW91c0ZyYW1lRGF0YSk7CisgICAgICAg
ICAgICBPd25QdHI8VmVjdG9yPGNoYXI+ID4gY29udGludW91c0ZyYW1lRGF0YSA9IGFkb3B0UHRy
KG5ldyBWZWN0b3I8Y2hhcj4pOworICAgICAgICAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLnN3
YXAoKmNvbnRpbnVvdXNGcmFtZURhdGEpOwogICAgICAgICAgICAgbV9oYXNDb250aW51b3VzRnJh
bWUgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBP
cENvZGVUZXh0KSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7Ci0gICAgICAgICAg
ICAgICAgaWYgKGNvbnRpbnVvdXNGcmFtZURhdGEuc2l6ZSgpKQotICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gU3RyaW5nOjpmcm9tVVRGOChjb250aW51b3VzRnJhbWVEYXRhLmRhdGEoKSwg
Y29udGludW91c0ZyYW1lRGF0YS5zaXplKCkpOworICAgICAgICAgICAgICAgIGlmIChjb250aW51
b3VzRnJhbWVEYXRhLT5zaXplKCkpCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJp
bmc6OmZyb21VVEY4KGNvbnRpbnVvdXNGcmFtZURhdGEtPmRhdGEoKSwgY29udGludW91c0ZyYW1l
RGF0YS0+c2l6ZSgpKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2UgPSAiIjsKICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pc051bGwoKSkKICAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KG1fY29udGludW91c0ZyYW1lT3BDb2RlID09IE9wQ29kZUJpbmFyeSkgewotICAgICAgICAgICAg
ICAgIEFTU0VSVChtX2NvbnRpbnVvdXNGcmFtZURhdGEuaXNFbXB0eSgpKTsKLSAgICAgICAgICAg
ICAgICBmYWlsKCJSZWNlaXZlZCBhIGJpbmFyeSBmcmFtZSB3aGljaCBpcyBub3Qgc3VwcG9ydGVk
IHlldC4iKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jb250aW51
b3VzRnJhbWVPcENvZGUgPT0gT3BDb2RlQmluYXJ5KQorICAgICAgICAgICAgICAgIG1fY2xpZW50
LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShjb250aW51b3VzRnJhbWVEYXRhLnJlbGVhc2UoKSk7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKQEAgLTYyMSwxMyArNjE5LDE2IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IE9wQ29kZUJpbmFyeToKLSAgICAgICAgaWYgKGZyYW1lLmZpbmFsKQotICAgICAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgYSBiaW5hcnkgZnJhbWUgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCB5ZXQuIik7
Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoZnJhbWUuZmluYWwpIHsKKyAgICAgICAgICAg
IE93blB0cjxWZWN0b3I8Y2hhcj4gPiBiaW5hcnlEYXRhID0gYWRvcHRQdHIobmV3IFZlY3Rvcjxj
aGFyPihmcmFtZS5wYXlsb2FkTGVuZ3RoKSk7CisgICAgICAgICAgICBtZW1jcHkoYmluYXJ5RGF0
YS0+ZGF0YSgpLCBmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKKyAgICAgICAg
ICAgIHNraXBCdWZmZXIoZnJhbWUuZnJhbWVFbmQgLSBtX2J1ZmZlcik7CisgICAgICAgICAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEoYmluYXJ5RGF0YS5yZWxlYXNlKCkpOworICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV9oYXNDb250aW51b3VzRnJhbWUgPSB0cnVlOwog
ICAgICAgICAgICAgbV9jb250aW51b3VzRnJhbWVPcENvZGUgPSBPcENvZGVCaW5hcnk7CiAgICAg
ICAgICAgICBBU1NFUlQobV9jb250aW51b3VzRnJhbWVEYXRhLmlzRW1wdHkoKSk7Ci0gICAgICAg
ICAgICAvLyBEbyBub3Qgc3RvcmUgZGF0YSBvZiBhIGJpbmFyeSBtZXNzYWdlIHRvIG1fY29udGlu
dW91c0ZyYW1lRGF0YSB0byBzYXZlIG1lbW9yeS4KKyAgICAgICAgICAgIG1fY29udGludW91c0Zy
YW1lRGF0YS5hcHBlbmQoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCk7CiAgICAg
ICAgICAgICBza2lwQnVmZmVyKGZyYW1lLmZyYW1lRW5kIC0gbV9idWZmZXIpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWxDbGllbnQuaAppbmRleCBjMzhiMDVjODE0ZmIzYTMwNzA5YTEyZGMzMzY0MmU4
NTNhMWVhODE5Li40ODJjNDZlMWUyNTU4ZDIxNzQ2NjJiOTE1ZDEzMTIxMmMzMmFlMTQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aApAQCAtMzMsNiArMzMsMTAgQEAKIAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIAorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQgewpAQCAtNDAsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgfldlYlNvY2tldENoYW5uZWxDbGllbnQoKSB7IH0KICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPikgeyB9CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSB7IH0KICAgICAgICAgZW51bSBDbG9z
aW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDlkYWI4MTJmYzgwMTVmMzg5Zjc0MDhkMGRlYTdjYmVjZjk2Mjg0ZjMuLjU2Zjk3YWFk
MDBmN2E2NDE5NmM4ZmJjZjg1ZDFiZTUzYjQ4YTc0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwCkBAIC0yNTMsNiArMjUzLDE4IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzCiAgICAg
bV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJh
Y2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkUmVjZWl2ZU1lc3NhZ2UsIG1fd29ya2VyQ2xpZW50V3Jh
cHBlciwgbWVzc2FnZSksIG1fdGFza01vZGUpOwogfQogCitzdGF0aWMgdm9pZCB3b3JrZXJDb250
ZXh0RGlkUmVjZWl2ZUJpbmFyeURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtl
ckNsaWVudFdyYXBwZXIsIFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+ID4gYmluYXJ5RGF0YSkKK3sK
KyAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsK
KyAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlQmluYXJ5RGF0YShiaW5hcnlEYXRh
KTsKK30KKwordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlk
UmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4gPiBiaW5hcnlEYXRhKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFz
a0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0
RGlkUmVjZWl2ZUJpbmFyeURhdGEsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgYmluYXJ5RGF0YSks
IG1fdGFza01vZGUpOworfQorCiBzdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlkU3RhcnRDbG9z
aW5nSGFuZHNoYWtlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFw
cGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250
ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDBkYzM4YzMyZDdmMjc5ZTZhMjBh
MGM3ZDQzMzZjODhlZjQxYjI2NzcuLmE0OGE4YTE5ZDdjMjA4OGMxMmQ5YzE3NjIyYjIwMTUzNzI1
MTE0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwcml2
YXRlOgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hh
cj4gPik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBz
aG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>