<?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>165903</bug_id>
          
          <creation_ts>2016-12-15 10:29:18 -0800</creation_ts>
          <short_desc>Added missing override and final specifiers</short_desc>
          <delta_ts>2016-12-15 13:33:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Konstantin Tokarev">annulen</reporter>
          <assigned_to name="Konstantin Tokarev">annulen</assigned_to>
          <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1260172</commentid>
    <comment_count>0</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 10:29:18 -0800</bug_when>
    <thetext>Added missing override and final specifiers as detected by clang-tidy. &apos;final&apos; is used instead of override in final classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260173</commentid>
    <comment_count>1</comment_count>
      <attachid>297199</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 10:31:46 -0800</bug_when>
    <thetext>Created attachment 297199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260176</commentid>
    <comment_count>2</comment_count>
      <attachid>297200</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 10:40:47 -0800</bug_when>
    <thetext>Created attachment 297200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260219</commentid>
    <comment_count>3</comment_count>
      <attachid>297200</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-12-15 12:47:58 -0800</bug_when>
    <thetext>Comment on attachment 297200
Patch

Another thing that would be nice to do would be marking more classes final. Lots of these classes seem to be final. Any class that has no classes deriving from it should probably get marked that way. We can always remove it later if we want to derive a class from it.

And also, any function that is not overridden further could be marked final even if the class is not final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260232</commentid>
    <comment_count>4</comment_count>
      <attachid>297200</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 13:26:47 -0800</bug_when>
    <thetext>Comment on attachment 297200
Patch

Clearing flags on attachment: 297200

Committed r209871: &lt;http://trac.webkit.org/changeset/209871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260233</commentid>
    <comment_count>5</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 13:26:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260235</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-15 13:33:25 -0800</bug_when>
    <thetext>Yes, but such changes require more careful attitude, and have more potential of breaking build for some untested ports, so it&apos;s better to do them separately step by step</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297199</attachid>
            <date>2016-12-15 10:31:46 -0800</date>
            <delta_ts>2016-12-15 10:40:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165903-20161215213053.patch</filename>
            <type>text/plain</type>
            <size>83935</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzczZDI3Y2EyNjA3YWRhODkzNjQ2MmNhYzJiOGQ3MzAxYzAzMmJhLi4wM2Y3MzAzOWFiZmE0MTY2
M2VlY2E2YjMwNzI2MTdkNjkyNzkzNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5k
ZXgucnU+CisKKyAgICAgICAgQWRkZWQgbWlzc2luZyBvdmVycmlkZSBhbmQgZmluYWwgc3BlY2lm
aWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorCiAyMDE2LTEyLTE0ICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdhc20gc2hvdWxkIGRlY29kZSBjb25zdGFu
dHMgY29ycmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0ZDYzMTNmYjQ4ZDMxZDQy
ODcuLjI0ZWJhYThmNzY1MTY4MGJjNTI5NDQ5MTljOTJmYTQwYjRhNTMwMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTYtMTItMTUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgorCisgICAgICAgIEFkZGVkIG1pc3Npbmcgb3ZlcnJpZGUgYW5kIGZpbmFsIHNwZWNpZmll
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1J1bkxvb3AuaDoKKwogMjAxNi0xMi0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwOTc5NS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAzNjY1NWMyMzBiODljYTA0MjI3YzA0ZWY5M2JlNWM0NGY5MTYxMzFlLi4zYmYz
YzFkMzBjODIzYWY2ZDIyNTFmMDhkNzk4Zjg3YzgzOTk1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsODMgQEAKKzIwMTYtMTItMTUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgorCisgICAgICAgIEFkZGVkIG1pc3Npbmcgb3ZlcnJpZGUgYW5kIGZpbmFsIHNwZWNpZmll
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25z
dHJhaW5lZEVycm9yRXZlbnQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0
YS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaDoKKyAgICAgICAgKiBjc3MvU3R5
bGVSdWxlSW1wb3J0Lmg6CisgICAgICAgICogZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbmRlbnRP
dXRkZW50Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
OgorICAgICAgICAqIGVkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmg6CisgICAgICAg
ICogZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVt
b3ZlRm9ybWF0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1VubGlua0NvbW1hbmQuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFy
cmF5cy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
Lmg6CisgICAgICAgICogbG9hZGVyL1NpbmtEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9NdWx0aUNo
YW5uZWxSZXNhbXBsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBs
ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
U291cmNlUHJvdmlkZXJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURyb3BTaGFkb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNMYXRpbjEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VU
RjE2Lmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEY4Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVu
dC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAg
KiB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5oOgorICAgICAgICAqIHhtbC9YUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmg6
CisgICAgICAgICogeG1sL1hTTEltcG9ydFJ1bGUuaDoKKwogMjAxNi0xMi0xNSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyMDg5MDIpIE51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB3a0lzUHVibGljU3VmZml4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggNjRjYmRhNWZkOGNlMDQ0NWUyMWEyYjQyMzJhM2YyYmE0OGY3N2U3MC4uODhk
MDZmZDJmNmQyOTFmYzgzODg2NTBiNDM3MWNkNGFhYjVhOTkxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDE2LTEyLTE1ICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRl
eC5ydT4KKworICAgICAgICBBZGRlZCBtaXNzaW5nIG92ZXJyaWRlIGFuZCBmaW5hbCBzcGVjaWZp
ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU5
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1l
T2JqZWN0TWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
SW5DbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5oOgorCiAyMDE2LTEyLTE0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFw
cGxlLmNvbT4KIAogICAgICAgICBPbmx5IHNlbmQgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
U2F2ZVRvUGFnZUNhY2hlIG9uY2Ugd2hlbiBlbnRlcmluZyBwYWdlIGNhY2hlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CmluZGV4IGI3MWVlMGI2ZWEzMjA5YzFmNDllYWU0MjExZWE3YjUwMzM5ZmE1NGMuLjk2MWFmNzFh
MjAxNWJkMDRmMWY4ZmE2ZmQ0YmExYTllNzg4YTJhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTEzOSw3
ICsxMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAg
ICAgdmlydHVhbCBGb3JJbkNvbnRleHRUeXBlIHR5cGUoKSBjb25zdAorICAgICAgICBGb3JJbkNv
bnRleHRUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlRm9ySW5Db250ZXh0VHlwZTsKICAgICAgICAgfQpAQCAtMTYyLDcgKzE2
Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB2
aXJ0dWFsIEZvckluQ29udGV4dFR5cGUgdHlwZSgpIGNvbnN0CisgICAgICAgIEZvckluQ29udGV4
dFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biBJbmRleGVkRm9ySW5Db250ZXh0VHlwZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApp
bmRleCBlYzc5ZDgzMjA3ZTU0NWM4ZWIwNTM2ODdkNzlhZWUxMWJhOTU3MDJkLi40YTI5NDk0M2Rj
ODMzMTE1NjNiZWI5YTBlZGRlYzcyODUyNjczYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAt
MjAxLDcgKzIwMSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEVsZW1lbnRIYW5kbGVPd25lciA6IHB1
YmxpYyBXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxFbGVt
ZW50Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgICAgICByZXR1cm4gdmlzaXRvci5j
b250YWluc09wYXF1ZVJvb3QoZWxlbWVudC0+cm9vdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAppbmRleCBmYjQ1M2U4MmVmZGI3YzZlMWFjMGUwYTE0Mzg2M2IyZmIwNmI1NzUw
Li4yNDExMGFhMTYwMGQ5OWU5M2VlM2ZkYzU1YTcyNWUzM2E2NTE3MjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xNzUyLDcgKzE3NTIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBNb2R1bGVEZWNsYXJhdGlvbk5vZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9k
ZSB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1
bGVBbmFseXplciYpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzTW9kdWxlRGVjbGFyYXRp
b25Ob2RlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTW9kdWxlRGVj
bGFyYXRpb25Ob2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBNb2R1bGVEZWNsYXJhdGlvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RG
L3d0Zi9SdW5Mb29wLmgKaW5kZXggNTU1ZDQ0NzMxY2YzMDhiY2JkOWVlYmRmYmU2NWIyMWZkYWE1
OGVkZS4uZjZhMTE3NzE3OTI1NzhjNWUwNTBmODE0NjdiYTBhOGJhNGJlNmU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aApAQCAtMTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgp
OyB9CisgICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IChtX29iamVjdC0+Km1fZnVuY3Rp
b24pKCk7IH0KIAogICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0OwogICAgICAgICBU
aW1lckZpcmVkRnVuY3Rpb24gbV9mdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9PdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmgK
aW5kZXggN2U4ZmIxZTk4OWViNGUyYWY1NTYwOTYxOTBhYzA1OWZlOWNkZDhhMC4uOWM0ZjM5NjQw
NGI4Yzg2NTRiZGE1ZTc1MTdlMTIwMDQ3NjNhODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9PdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9PdmVyY29uc3RyYWluZWRFcnJvckV2
ZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIE92ZXJjb25zdHJh
aW5lZEVycm9yKiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0KLSAgICB2
aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgeyByZXR1cm4gT3Zl
cmNvbnN0cmFpbmVkRXJyb3JFdmVudEludGVyZmFjZVR5cGU7IH0KKyAgICBFdmVudEludGVyZmFj
ZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE92ZXJjb25zdHJhaW5l
ZEVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgT3Zl
cmNvbnN0cmFpbmVkRXJyb3JFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIE92ZXJjb25zdHJhaW5lZEVycm9yKiBlcnJvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCmluZGV4IGE2YmVmN2I3
NjI3ZGRmNTU3NTZmODA5MjMxOGM2MjI5NDZkN2IyMzQuLmQzMzI3YzkwMmZiY2Y3NjkyMjU3ZmI2
NzA1YjZiMDdlN2U1OWZlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxs
YmFja0RhdGEuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBj
bGFzcyBXZWFrT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewotICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgICAgICBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKICAgICB9OwogICAgIFdl
YWtPd25lciBtX3dlYWtPd25lcjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jYWxs
YmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5oCmluZGV4IDBlZWRjZTJiZmU5NjFiMDZiNGU3NDc0MGMwNzE1ODZiNjU3ZWZm
NTYuLjA0NDFmNTQ4YTZlYmFiZGQ4MzExYmIxNDI1YzM2ZjAzMjI5YjJlY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaApA
QCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICB2
aXJ0dWFsIH5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpOwogCi0gICAgICAgIHZpcnR1YWwgU3Ry
aW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7CisgICAgICAgIFN0
cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpIG92ZXJyaWRlOwog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNET01XaW5kb3cqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCmluZGV4IDVhMmRkMzRkM2VlYjAwNjQ3YzljYzc0
MTVkNGEwMjBjNGVmNDRhNDAuLmJhMDFjMGUwYmNlNzFhMGEwNTJjYzE5MWY4OGFhMjM4OTU2ZTFh
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaApAQCAt
NDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSlNFcnJvckhhbmRsZXIoSlND
OjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRy
aWJ1dGUsIERPTVdyYXBwZXJXb3JsZCYpOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKKyAgICB2b2lkIGhhbmRsZUV2ZW50KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopIGZpbmFsOwogfTsKIAogLy8gQ3JlYXRlcyBh
IEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBj
b250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGVJbXBvcnQuaAppbmRleCBhZGFlYzZjZTQyYjI5ZjhkNDg4NDY2OTVjNTIxODQw
N2FmZmFiNDIwLi4yNjRkNTcwYjQxODllNzUxODYxNDQyYTdhYTQ3MGMzMTE0ODE1MWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIElt
cG9ydGVkU3R5bGVTaGVldENsaWVudCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRTdHlsZVNoZWV0Q2xp
ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEltcG9ydGVkU3R5bGVTaGVldENsaWVudChTdHls
ZVJ1bGVJbXBvcnQqIG93bmVyUnVsZSkgOiBtX293bmVyUnVsZShvd25lclJ1bGUpIHsgfQogICAg
ICAgICB2aXJ0dWFsIH5JbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQoKSB7IH0KLSAgICAgICAgdmly
dHVhbCB2b2lkIHNldENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVl
dCogc2hlZXQpCisgICAgICAgIHZvaWQgc2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhy
ZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBDYWNo
ZWRDU1NTdHlsZVNoZWV0KiBzaGVldCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgbV9v
d25lclJ1bGUtPnNldENTU1N0eWxlU2hlZXQoaHJlZiwgYmFzZVVSTCwgY2hhcnNldCwgc2hlZXQp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQuaAppbmRleCAyNjcyZDEyZWVhOWNlYmJmOGU1YmFiMzllNjExM2NiMjA2NTZi
YmI0Li5hNjAzMmYyZTBmYzkxMGJlODhkYjA4NGI1MzFlNTAxZTY0YTYxMzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKQEAgLTcw
LDcgKzcwLDcgQEAgcHVibGljOgogICAgIGludCBsaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4g
bV9saW5lTnVtYmVyOyB9CiAgICAgaW50IGNvbHVtbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29sdW1uTnVtYmVyOyB9CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJm
YWNlKCkgY29uc3QgeyByZXR1cm4gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEludGVyZmFj
ZVR5cGU7IH0KKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAK
IHByaXZhdGU6CiAgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKaW5kZXggYjdlZjJlOTcwOThmYTI0MjI3
ZTk1OWI5OTA2ZGZmMWZlZjQ0N2ZhZS4uMzliOThkMGRjZjJiZDVlY2M2MTAzYjE4ZWRkMDJhZDBi
MmRmODc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaApA
QCAtMzYsMTMgKzM2LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q3JlYXRlTGlua0NvbW1hbmQoZG9jdW1lbnQsIGxpbmtVUkwpKTsKICAgICB9CiAKLSAgICBib29s
IGlzQ3JlYXRlTGlua0NvbW1hbmQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBp
c0NyZWF0ZUxpbmtDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBw
cml2YXRlOgogICAgIENyZWF0ZUxpbmtDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBs
aW5rVVJMKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCB7IHJldHVybiBFZGl0QWN0aW9uQ3JlYXRlTGlu
azsgfQorICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAgIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb25DcmVhdGVMaW5rOyB9
CiAKICAgICBTdHJpbmcgbV91cmw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA2ODYwZGY2MGZjZWRmOTUxY2MwMjQ2N2IwNTEz
ZGIyMTc0ZTNhODJlLi40ODQ2NzJmZjk0NzZhYzBjNGRkOGJhN2VlN2Q0ZjJlOTY4YWUyN2JhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApA
QCAtNDgsOSArNDgsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbik7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIAot
ICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0OworICAgIGJvb2wg
cHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5pdGlh
bGl6ZVN0YXJ0RW5kKFBvc2l0aW9uJiwgUG9zaXRpb24mKTsKICAgICB2b2lkIHNldFN0YXJ0aW5n
U2VsZWN0aW9uT25TbWFydERlbGV0ZShjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJik7
CkBAIC02Niw4ICs2Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWxjdWxhdGVUeXBpbmdTdHls
ZUFmdGVyRGVsZXRlKCk7CiAgICAgdm9pZCBjbGVhclRyYW5zaWVudFN0YXRlKCk7CiAgICAgdm9p
ZCBtYWtlU3R5bGluZ0VsZW1lbnRzRGlyZWN0Q2hpbGRyZW5PZkVkaXRhYmxlUm9vdFRvUHJldmVu
dFN0eWxlTG9zcygpOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9k
ZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZvaWQgcmVtb3Zl
Tm9kZShQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZv
aWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25l
ZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVSZWR1bmRhbnRCbG9ja3MoKTsKIAogICAgIC8v
IFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYWNjZXNzIHRvIG9yaWdpbmFsIHN0cmluZyBhZnRlciB0
aGUgY29ycmVjdGlvbiBoYXMgYmVlbiBkZWxldGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuaAppbmRleCBiOTY2MDI4YWQwZjE4NTNkMzY1NDdkZThlYzk5ZTdlODBl
NDY4YWUxLi4xM2MxODg3NzJhMTBlYTJlMzMyYjBhOWE2OWZmZDU3NzhmYTc3YjZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaApAQCAtMzQsNyArMzQsNyBAQCBj
bGFzcyBEaWN0YXRpb25Db21tYW5kIDogcHVibGljIFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZCB7
CiAgICAgZnJpZW5kIGNsYXNzIERpY3RhdGlvbkNvbW1hbmRMaW5lT3BlcmF0aW9uOwogcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGluc2VydFRleHQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNEaWN0YXRpb25Db21tYW5kKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNEaWN0YXRpb25Db21tYW5kKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogcHJpdmF0ZToKICAgICBzdGF0aWMgUmVmPERp
Y3RhdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRpdmVzKQog
ICAgIHsKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIERpY3RhdGlvbkNvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRl
cm5hdGl2ZT4mIGFsdGVybmF0aXZlcyk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KTsKKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5zZXJ0VGV4dFJ1
bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluZUxlbmd0aCk7CiAg
ICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAppbmRleCBhOWVmNmZlYzQ5NjY1NjdiYjY5ZWE4MzhmNjQ3ZThmOGE4ZTlhNzQxLi5jNDMy
YjkxY2RmMmU0ZGE4ZjEyY2IwODc3OTU5Y2MzMzY5ZDlhMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIENy
ZWF0ZUFuZEFwcGx5KGNvbnN0IFJlZlB0cjxGcmFtZT4gZnJhbWUpOwogICAgIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogQ2xlYXJUZXh0Q29t
bWFuZDo6Q2xlYXJUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuaAppbmRleCAwOTc2YTJhZTZlMWNjMGQwODYy
NzZjM2I5OGU2Yjk3YTVlZDFhZGU1Li40MmU0NTcxYTRlMzM4OTYwMzhmN2MzMzYxNjEzNmZmNWNl
ZTNlNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
b3JtYXRCbG9ja0NvbW1hbmQoZG9jdW1lbnQsIHRhZ05hbWUpKTsKICAgICB9CiAgICAgCi0gICAg
dmlydHVhbCBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKICAgICBzdGF0aWMgRWxlbWVudCogZWxlbWVudEZvckZvcm1hdEJsb2NrQ29t
bWFuZChSYW5nZSopOwogICAgIGJvb2wgZGlkQXBwbHkoKSBjb25zdCB7IHJldHVybiBtX2RpZEFw
cGx5OyB9CkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRm9ybWF0Qmxv
Y2tDb21tYW5kKERvY3VtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7CiAKLSAg
ICB2b2lkIGZvcm1hdFNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxl
Y3Rpb24sIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24pOwotICAgIHZvaWQg
Zm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBj
b25zdCBQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYpOwotICAgIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIEVkaXRBY3Rpb25Gb3JtYXRC
bG9jazsgfQorICAgIHZvaWQgZm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
c3RhcnRPZlNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbikg
b3ZlcnJpZGU7CisgICAgdm9pZCBmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNv
bnN0IFBvc2l0aW9uJiBlbmQsIGNvbnN0IFBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbiwgUmVmUHRy
PEVsZW1lbnQ+Jikgb3ZlcnJpZGU7CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkZvcm1hdEJsb2NrOyB9CiAKICAgICBib29s
IG1fZGlkQXBwbHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRl
bnRPdXRkZW50Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50
Q29tbWFuZC5oCmluZGV4IDc1NTRhNmU4ZDJmMzk1NWNiM2M1ZmExNzY3YTQ5M2MzYWQyMDc2ZmEu
LmI2MzU2Yjg2MGM2MjcwMTMyZTJmZmQ5NDViY2IwODE5ZTJhYWE3YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKQEAgLTM4LDEyICszOCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluZGVudE91dGRlbnRDb21t
YW5kKGRvY3VtZW50LCB0eXBlLCBtYXJnaW5JblBpeGVscykpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCiBwcml2YXRlOgogICAgIEluZGVudE91dGRlbnRDb21tYW5kKERvY3VtZW50JiwgRUlu
ZGVudFR5cGUsIGludCBtYXJnaW5JblBpeGVscyk7CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZU9mQWN0aW9uID09IEluZGVudCA/
IEVkaXRBY3Rpb25JbmRlbnQgOiBFZGl0QWN0aW9uT3V0ZGVudDsgfQorICAgIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHlwZU9mQWN0aW9uID09
IEluZGVudCA/IEVkaXRBY3Rpb25JbmRlbnQgOiBFZGl0QWN0aW9uT3V0ZGVudDsgfQogCiAgICAg
dm9pZCBpbmRlbnRSZWdpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CiAgICAgdm9pZCBvdXRkZW50UmVnaW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwpAQCAtNTEsOCArNTEsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgdHJ5SW5kZW50aW5nQXNMaXN0SXRlbShjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0
aW9uJik7CiAgICAgdm9pZCBpbmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBQb3NpdGlvbiYsIGNv
bnN0IFBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+Jik7CiAKLSAgICB2b2lkIGZvcm1hdFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3Rpb24sIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24pOwotICAgIHZvaWQgZm9ybWF0UmFuZ2UoY29uc3Qg
UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25zdCBQb3NpdGlvbiYgZW5k
T2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwor
ICAgIHZvaWQgZm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZlNl
bGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbikgb3ZlcnJpZGU7
CisgICAgdm9pZCBmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0
aW9uJiBlbmQsIGNvbnN0IFBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbiwgUmVmUHRyPEVsZW1lbnQ+
JiBibG9ja3F1b3RlRm9yTmV4dEluZGVudCkgb3ZlcnJpZGU7CiAKICAgICBFSW5kZW50VHlwZSBt
X3R5cGVPZkFjdGlvbjsKICAgICBpbnQgbV9tYXJnaW5JblBpeGVsczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmgKaW5kZXggNmZjNjEwODg2N2Q3
MmYwZTcxNjFjZGQ3YTIzNTRkMDk3MzYzMmY0Yi4uMmIzZDFiZmE3NmMxOGEyMGIzNjY3OGI2NmEy
MDkxMGI1MTEwOGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5l
QnJlYWtDb21tYW5kLmgKQEAgLTM5LDkgKzM5LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpOworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Q7CisgICAgYm9vbCBwcmVzZXJ2
ZXNUeXBpbmdTdHlsZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0
ZXJQb3NpdGlvbihOb2RlKiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVC
ZWZvcmVQb3NpdGlvbihOb2RlKiwgY29uc3QgUG9zaXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKaW5k
ZXggMzRjMDJhZDYyYTc4OTM1ZmU1NjkxMjZhNWM5MGUxZWY1NTNiMDQ2ZC4uNWVmZGQ1MzBkOTkx
YTZlN2U2MjkwODYyYTRkNjE4OWE1NTQ4ZTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKQEAgLTQxLDcg
KzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kKERvY3VtZW50JiwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBw
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9uKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCk7CisgICAgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGNhbGN1bGF0ZVN0eWxlQmVmb3JlSW5zZXJ0aW9uKGNvbnN0IFBvc2l0aW9uJik7CiAgICAg
dm9pZCBhcHBseVN0eWxlQWZ0ZXJJbnNlcnRpb24oTm9kZSogb3JpZ2luYWxFbmNsb3NpbmdCbG9j
ayk7CkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KE5vZGUqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBwcmVz
ZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0OworICAgIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1fc3R5bGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExl
dmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5o
CmluZGV4IGNkMzMzMWJmNWNiMmI3OGIxZmVjMzgxYWViZjMzYzBjNWNkYTA5OGYuLmNjMDZjZjRk
ZTg4OTlkMjlhYTVmMGM2M2I2ZDcwZTk5ZTZmY2MzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaApAQCAtNDEsNyArNDEsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBpbnNlcnRTaWJsaW5nTm9kZVJhbmdlQWZ0ZXIoTm9kZSogc3Rh
cnROb2RlLCBOb2RlKiBlbmROb2RlLCBOb2RlKiByZWZOb2RlKTsKIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdDsgICAgCisgICAgYm9vbCBw
cmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogLy8gSW5jcmVhc2VT
ZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kIG1vdmVzIHRoZSBzZWxlY3RlZCBsaXN0IGl0ZW1zIG9u
ZSBsZXZlbCBkZWVwZXIuCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgSW5j
cmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kKERvY3VtZW50JiwgVHlwZSk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogCiAg
ICAgVHlwZSBtX2xpc3RUeXBlOwogICAgIFJlZlB0cjxOb2RlPiBtX2xpc3RFbGVtZW50OwpAQCAt
ODMsNyArODMsNyBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgRGVjcmVhc2VTZWxlY3Rpb25M
aXN0TGV2ZWxDb21tYW5kKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
OworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oCmlu
ZGV4IDNiNmUxMTgxZjc0NTVkYWQ0MWQ0MjBmMTJkMmQ4ZjRhODliMGQ2MGYuLjhiM2MzMzhiMTYy
MjNhZDJkMzlkNmY0ZmQ1N2VjMzIyODQ1MzgwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBNb3ZlU2VsZWN0aW9uQ29tbWFuZChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+LCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc21hcnRJbnNlcnQsIGJvb2wgc21hcnREZWxldGUp
OwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0OworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAg
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hv
dWxkRGlzcGF0Y2hJbnB1dEV2ZW50cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fZnJhZ21lbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5oCmluZGV4IGU3YjI3MmUzOGY4ZmVk
MDc3OGIwNGFiMDI5NDVlOGY5ZTE5OTEwN2MuLmE0OTNiM2FiZjczMzkyN2E1ZGNiMjk1MjdlNTQx
MjkxNmZlZWFiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9y
bWF0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29t
bWFuZC5oCkBAIC0zOSw4ICszOSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
UmVtb3ZlRm9ybWF0Q29tbWFuZChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsgfQorICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IEVkaXRBY3Rpb25VbnNwZWNpZmllZDsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4IDFlZDM2YTdjOTdiZTdmMDA2NmE0NzVhODZjMjMy
ZjAzNmU4NDc1ZDMuLjA3ZWEwODhiYWM0M2JhZDA4YWRmMWVlYzM1MDA4ZDQyZDg3MmMyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFj
dGlvbik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKICAgICBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oCmluZGV4IGNmOWQ0NjdkZTkyOTMxMWVmZDYwY2Q5NWQ4NjJjYWU3M2U0YWRkZGUuLjNkMmY0
MTllYzdhMTYyYmQ4ZjkyMWYwYzc5NzY4ZjllNTNmMTMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgaW5wdXRFdmVudERhdGEoKSBjb25zdCBmaW5hbDsKICAgICBS
ZWZQdHI8RGF0YVRyYW5zZmVyPiBpbnB1dEV2ZW50RGF0YVRyYW5zZmVyKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCB3aWxsQXBwbHlDb21tYW5kKCkgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKTsKKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKIAogICAgIGNsYXNzIEluc2Vy
dGVkTm9kZXMgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NpbXBs
aWZ5TWFya3VwQ29tbWFuZC5oCmluZGV4IDhjMTg0M2EyZTFhM2JlYzQ2YWYzZDg3ZjkyNTc4Nzgw
NmIzMGY4YmQuLjJkODI1N2E0NTVkMWQ5NjQ1MmUyNzhjZmEzNzBkYmJkY2Y2YTE4Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuaApAQCAtMzks
NyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNpbXBsaWZ5TWFya3VwQ29tbWFuZChE
b2N1bWVudCYsIE5vZGUqIGZpcnN0Tm9kZSwgTm9kZSogbm9kZUFmdGVyTGFzdCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IGludCBwcnVuZVN1YnNlcXVlbnRBbmNlc3RvcnNUb1JlbW92ZShWZWN0b3I8UmVmUHRyPE5vZGU+
PiYgbm9kZXNUb1JlbW92ZSwgc2l6ZV90IHN0YXJ0Tm9kZUluZGV4KTsKIAogICAgIFJlZlB0cjxO
b2RlPiBtX2ZpcnN0Tm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bs
aXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgKaW5kZXggMzJhYTdl
OGI3Mzg2NjdkNTExMzA3ZGVhMmQzY2YyMDcxN2UzMGU3OC4uNWU2OWUxMmYwODI5OWU5YjUxZTll
ZmRiOTY0N2Q1ZGUzMDRkMjFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgKQEAgLTM5
LDcgKzM5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTcGxpdFRleHROb2RlQ29udGFpbmlu
Z0VsZW1lbnRDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIGludCBvZmZzZXQpOwogCi0gICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKIAogICAg
IFJlZlB0cjxUZXh0PiBtX3RleHQ7CiAgICAgaW50IG1fb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1VubGlua0NvbW1hbmQuaAppbmRleCAzNDQ5NmIxMmJkMDUzMjA3OTZjN2U4ZWE3ZDIwMTEw
YmE1ZTMwZTcyLi4xN2M1MGE5YTM0NWM1ZWQ5Y2NhNGVjYmNiOWQ1MjAxMmI0OTkzNzYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaApAQCAtMzksOCArMzksOCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVubGlua0NvbW1hbmQoRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdCB7IHJldHVybiBFZGl0QWN0aW9uVW5saW5rOyB9CisgICAgdm9pZCBk
b0FwcGx5KCkgb3ZlcnJpZGU7CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvblVubGluazsgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVy
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaAppbmRl
eCBhYzQ5YjFkYjZmYjhlZjkzMDBhYjc1NWYxZDk4ZGRlZGVmZTA5YjJiLi41ZjRlNzNlZDgyMGEw
YTA2ZGNmNjNkNTEzMjlhY2VhZjFlZTRiMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuaApAQCAtNjgsMTAgKzY4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
bmNlbCgpOwogCiAgICAgLy8gVGhyZWFkYWJsZUxvYWRlckNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50KTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nLCBkb3VibGUp
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZywgZG91
YmxlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92
ZXJyaWRlOwogCiAgICAgU3RyaW5nIHN0cmluZ1Jlc3VsdCgpOwogICAgIFJlZlB0cjxKU0M6OkFy
cmF5QnVmZmVyPiBhcnJheUJ1ZmZlclJlc3VsdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgKaW5kZXggY2QxNmMyM2JkYjlj
ZmRhNDEwMWJlYWQ2ZTk3ZDQ0ODBjMTIzNjJiZS4uZDQxMzgyNzdmY2FiZmM2MGJjZWQxYjRhZGNm
OTMyNTNiNWM5YWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5H
TEVJbnN0YW5jZWRBcnJheXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdM
RUluc3RhbmNlZEFycmF5cy5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBBTkdMRUluc3RhbmNlZEFycmF5cyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAgICAg
dmlydHVhbCB+QU5HTEVJbnN0YW5jZWRBcnJheXMoKTsKIAotICAgIHZpcnR1YWwgRXh0ZW5zaW9u
TmFtZSBnZXROYW1lKCkgY29uc3Q7CisgICAgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qg
ZmluYWw7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCAzZjA3ZGRlZWFkMWJmOWM3YjdkZjdiMGM2ODhj
YzhiZTcyMDczYzE1Li4yOTBhYjhkM2Q3MGYzMzdhODYzNWEyMzE2Mjc2ZDkxZGM0M2Q0YWE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYs
IFZBT1R5cGUpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1w
bChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlID0gMDsKICAg
ICAKICAgICBWQU9UeXBlIG1fdHlwZTsKICAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuaAppbmRleCBmNzM5Mjk3MGYwMDVhOTViNmEyNDYy
MWNhM2NjMWYzODUzZDA2ZTA1Li5mNzBmMjhjYmM5NDYxNmQyMzJjMzQwYjNjYjU0ZjZmZGMwYjkw
NjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCkBAIC0zOCw4ICszOCw4IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTaW5rRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwm
KTsKLSAgICAKLSAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7
CisKKyAgICBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIGZpbmFsOwogfTsKIAog
fTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmgKaW5kZXggZWY3ZDZhMjA2MTNjYWM5ZjJiZmMyNTRj
YzJjMDljNzNkNjQwNmU1MS4uY2EyMDAwMzc5YmRmNDEyZjRlNDEyNGVhZjIxYWJhNjZhMTVlMzRi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxB
cmNoaXZlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxB
cmNoaXZlLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBN
SFRNTEFyY2hpdmUgOiBwdWJsaWMgQXJjaGl2ZSB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBUeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBNSFRNTDsgfQorICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIE1IVE1MOyB9CiAKICAgICBzdGF0aWMgUmVmPE1IVE1MQXJjaGl2ZT4g
Y3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZlB0cjxNSFRNTEFyY2hpdmU+IGNyZWF0ZShjb25zdCBV
UkwmLCBTaGFyZWRCdWZmZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA5ZTUzMjc1MDY1OGZmNGU4OTY3
MmIwYTcyNmVkZjVhNjcyMjU5MDBkLi45MDE2NTEzMDgyOWNmNjc5OThlZTdmMjQ0NzRjODY4ODc1
OGZhMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9w
ZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC00NjEsNyArNDYxLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0
eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmlt
YXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwg
Y29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIChkc3QtPiptX3NldHRlcikoYmxlbmRGdW5jKGFuaW0sIChhLT4qUHJvcGVy
dHlXcmFwcGVyR2V0dGVyPFQ+OjptX2dldHRlcikoKSwgKGItPipQcm9wZXJ0eVdyYXBwZXJHZXR0
ZXI8VD46Om1fZ2V0dGVyKSgpLCBwcm9ncmVzcykpOwogICAgIH0KQEAgLTQ4MCw3ICs0ODAsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSog
YSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2b2lk
IGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0
IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBj
b25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgKGRzdC0+Km1fc2V0dGVyKShibGVuZEZ1bmMo
YW5pbSwgKGEtPipQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8VCo+OjptX2dldHRlcikoKSwgKGItPipQ
cm9wZXJ0eVdyYXBwZXJHZXR0ZXI8VCo+OjptX2dldHRlcikoKSwgcHJvZ3Jlc3MpKTsKICAgICB9
CkBAIC00OTksNyArNDk5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwg
Y29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jl
c3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5k
ZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIs
IGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIChkc3QtPipt
X3NldHRlcikoYmxlbmRGdW5jKGFuaW0sIChhLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPGNvbnN0
IFQmPjo6bV9nZXR0ZXIpKCksIChiLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPGNvbnN0IFQmPjo6
bV9nZXR0ZXIpKCksIHByb2dyZXNzKSk7CiAgICAgfQpAQCAtOTk4LDcgKzk5OCw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIEZpbGxMYXllciogZHN0LCBjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZp
bGxMYXllciogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3Qg
QW5pbWF0aW9uQmFzZSogYW5pbSwgRmlsbExheWVyKiBkc3QsIGNvbnN0IEZpbGxMYXllciogYSwg
Y29uc3QgRmlsbExheWVyKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICAoZHN0LT4qbV9zZXR0ZXIpKGJsZW5kRnVuYyhhbmltLCAoYS0+KkZpbGxMYXll
clByb3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBUJj46Om1fZ2V0dGVyKSgpLCAoYi0+KkZpbGxM
YXllclByb3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBUJj46Om1fZ2V0dGVyKSgpLCBwcm9ncmVz
cykpOwogICAgIH0KQEAgLTEwMTcsNyArMTAxNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIEZpbGxM
YXllciogZHN0LCBjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYiwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgRmlsbExheWVyKiBkc3QsIGNvbnN0IEZpbGxMYXllciogYSwgY29uc3QgRmlsbExheWVyKiBi
LCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICAoZHN0LT4q
bV9zZXR0ZXIpKGJsZW5kRnVuYyhhbmltLCAoYS0+KkZpbGxMYXllclByb3BlcnR5V3JhcHBlckdl
dHRlcjxUKj46Om1fZ2V0dGVyKSgpLCAoYi0+KkZpbGxMYXllclByb3BlcnR5V3JhcHBlckdldHRl
cjxUKj46Om1fZ2V0dGVyKSgpLCBwcm9ncmVzcykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCmluZGV4
IGRiZjQzNjkzMWIzNDczZjAyNWFjYzYzMDI4MTFiYmYwYmFlMzcxMmUuLjg5OWE4MTQwNWI1OWU2
MWE0N2U5YzhiMjU2YjE1NzIwNjAxMGQ5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBwcm92aWRlSW5wdXQoKSB3aWxsIGJlIGNhbGxlZCBvbmNl
IGZvciBlYWNoIGNoYW5uZWwsIHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IGNoYW5uZWwuCiAgICAg
Ly8gRWFjaCB0aW1lIGl0J3MgY2FsbGVkLCBpdCB3aWxsIHByb3ZpZGUgdGhlIG5leHQgY2hhbm5l
bCBvZiBkYXRhLgotICAgIHZpcnR1YWwgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywg
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKKyAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyog
YnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgYm9v
bCBpc0J1c0dvb2QgPSBidXMgJiYgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMTsKICAgICAg
ICAgQVNTRVJUKGlzQnVzR29vZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1NpbmNSZXNhbXBsZXIuY3BwCmluZGV4IDlhOWM1NDY3N2FkZDk4ZWFlODYzMzdkZGZkMzc2NzI0
ZTNmYmI0YTkuLmM0Y2NlODY2YmQzZjRkNDZmNTk3NTU5OGNhNWY3YjQ3ZDI2ZDg5NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCkBAIC0x
NTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICAvLyBDb25zdW1lcyBzYW1w
bGVzIGZyb20gdGhlIGluLW1lbW9yeSBidWZmZXIuCi0gICAgdmlydHVhbCB2b2lkIHByb3ZpZGVJ
bnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQorICAgIHZvaWQgcHJv
dmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRl
CiAgICAgewogICAgICAgICBBU1NFUlQobV9zb3VyY2UgJiYgYnVzKTsKICAgICAgICAgaWYgKCFt
X3NvdXJjZSB8fCAhYnVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5k
ZXggZmEwNjYyMjVmNTJmMDRlMDAyNGMyNDAxNjAwYWM4NDZhYzI1MzNmMS4uM2I4OWZlYmM2Mjdh
NDc2NTg2ZDJjMzM4ZDJmMmY1NTk3OWFjOTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5oCkBAIC0zNCwxMSArMzQsMTEgQEAgcHVibGljOgogICAgIEF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAg
dmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpOwogCi0gICAgdmlydHVhbCB2b2lk
IHN0YXJ0KCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIHN0YXJ0KCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGlzUGxheWluZygp
IHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9Ci0gICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogICAgIGdib29sZWFuIGhhbmRsZU1l
c3NhZ2UoR3N0TWVzc2FnZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVh
bWVyLmgKaW5kZXggNzBlNjdjMzJmMDZkNDNjOWM5NjIyMDk0YTcxZDQ2OGZjOGQwYTM4NS4uNWI2
NDgwZjNhNDNiYzU0OWQ5MmE3YmI0MDQxYTI3ZDMzZjNmMDVjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5oCkBAIC00MCw4ICs0MCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY29uZmlndXJlQXVkaW9CaW4oR3N0RWxlbWVudCogYXVkaW9CaW4sIEdzdEVsZW1l
bnQqIHRlZVByZWRlY2Vzc29yKTsKIAotICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwg
c2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgdm9pZCBzZXRDbGllbnQoQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudCopOworICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwgc2l6ZV90
IGZyYW1lc1RvUHJvY2Vzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRDbGllbnQoQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudCopIG92ZXJyaWRlOwogICAgIGNvbnN0IEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICB2b2lk
IGhhbmRsZU5ld0RlaW50ZXJsZWF2ZVBhZChHc3RQYWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNw
cAppbmRleCA4YTVkNmEyNzBkYzgxMzhmODZiMDc5MWY5MzlkZWUyZGJiYzc0N2JmLi5kMDZkM2Ey
ZGUwNmQzMDdjYTA2NDQ1MzNmZmNhOTJhZjc3OWI3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24u
Y3BwCkBAIC0zNiwxMCArMzYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTnVsbFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uIDogcHVibGljIFRleHRUcmFja1JlcHJlc2VudGF0aW9uIHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgeyB9Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50U2NhbGUoZmxvYXQpIHsgfQotICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHMoKSBj
b25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2b2lkIHVwZGF0ZSgpIG92ZXJyaWRlIHsg
fQorICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBvdmVycmlkZSB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpIG92ZXJyaWRlIHsgfQor
ICAgIEludFJlY3QgYm91bmRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50UmVjdCgpOyB9
CiB9OwogCiAjaWYgIShQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
aW5kZXggYTcwZmQ2ZDFlNDFkYzA3ZWEyMDQyYjEwYjUzMWY4M2I5MmExOWQ0Mi4uODE1OGQzZDI4
MDE4N2UzNjI0YzdmMWM1MDFjYmU4OWQ5M2IxZTU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc3RkOjpv
cHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNv
bnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9v
bCBpc0RyYXdpbmdJdGVtKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNEcmF3
aW5nSXRlbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0ZDo6b3B0
aW9uYWw8RmxvYXRSZWN0PiBtX2V4dGVudDsgLy8gSW4gYmFzZSBjb29yZGluYXRlcywgdGFraW5n
IHNoYWRvd3MgYW5kIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggMzRkYmNk
YmFjODk1MzcxODNhMDMxMjdmYzM3ZTMxN2QwMWIwNjM1Zi4uMWM1MGE3N2VhYTZhNzViNThjZGNk
NTA1Mzk5NGEwMTQyYjFlZTI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKQEAgLTQwLDEwICs0MCwxMCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKICAg
ICB2b2lkIHBsYXRmb3JtQXBwbHlORU9OKHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlBLCB1
bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QiwgdW5zaWduZWQgY2hhciogZHN0UGl4ZWxBcnJh
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbG9yQXJyYXlMZW5ndGgp
OwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0Owor
ICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBp
bmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZFQmxlbmQoRmlsdGVy
JiwgQmxlbmRNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5kZXggNTVlZmNjODkxNTNkMTdhNjQzYWFk
NzUwM2M1Y2E3NTExY2RkZTFiNi4uMzZkM2EyNDM3NjllNDRiMTE3ZWI2MmE4OGM4ZTc3OGZhYWFi
ODZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKQEAgLTQ3LDEwICs0NywxMCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CisgICAgdm9pZCBwbGF0Zm9ybUFw
cGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwg
aW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBz
dGF0aWMgaW5saW5lIHZvaWQgY2FsY3VsYXRlU2F0dXJhdGVDb21wb25lbnRzKGZsb2F0KiBjb21w
b25lbnRzLCBmbG9hdCB2YWx1ZSk7CiAgICAgc3RhdGljIGlubGluZSB2b2lkIGNhbGN1bGF0ZUh1
ZVJvdGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbXBvbmVudFRyYW5zZmVyLmgKaW5kZXggYTM0ZjQ5OTY5OWJkNWViZTBhOTI3ZjA4MGE1MDA2
NzMzZmViOWMwMi4uNjYxOTc1NWYwNDBjMzFiYmRjMTNmYTkxZDFkNjJhMzY0ZjNhOWIyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
bmVudFRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKQEAgLTc3LDEwICs3NywxMCBAQCBwdWJsaWM6CiAg
ICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBhbHBoYUZ1bmN0aW9uKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRBbHBoYUZ1bmN0aW9uKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0Owor
ICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBp
bmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZFQ29tcG9uZW50VHJh
bnNmZXIoRmlsdGVyJiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywg
Y29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVN
YXRyaXguaAppbmRleCAwNWQ2NGFhMWUxOWMyNTkyYTdlMDJkMGIwN2FkYzIwMjBjMWVjN2VmLi4w
MDE0MWZhNDU0Nzk1MTg2OWMyMzExNDZjNWI1ODVkNGYzMGVlM2EyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVN
YXRyaXguaApAQCAtNjgsMTIgKzY4LDEyIEBAIHB1YmxpYzoKICAgICBib29sIHByZXNlcnZlQWxw
aGEoKSBjb25zdDsKICAgICBib29sIHNldFByZXNlcnZlQWxwaGEoYm9vbCk7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAo
KTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQg
ZHVtcCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFp
bnRSZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVj
dFJlY3QoKSkpOyB9CisgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJy
aWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0
KCkpKTsgfQogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCmluZGV4IDkzNzRkN2Fk
YWU4ZTk5NmFiMTBhMjBkOWQ2NmM2M2ZjODcwNzgzM2EuLjVmZTJiZTlmNGE1ZTdmMmRlODYzYzBm
YTU5YzNhYTY1ZjQ2YTdlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKQEAgLTUyLDkgKzUy
LDkgQEAgcHVibGljOgogICAgIGNvbnN0IExpZ2h0U291cmNlKiBsaWdodFNvdXJjZSgpIGNvbnN0
OwogICAgIHZvaWQgc2V0TGlnaHRTb3VyY2UoUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4pOwogCi0g
ICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIGR1bXAoKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwg
aW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgRkVEaWZmdXNlTGlnaHRpbmcoRmlsdGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCwg
ZmxvYXQsIGZsb2F0LCBmbG9hdCwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93
LmgKaW5kZXggOWE1YzQ5MTdiNjI5MmRjMGJkMzk2NDBiMzNhMDVlZTFkYmY2MDFhMS4uMzZjOWQ3
NGI1YmUzNTA2YjFjYTI1MDFlMTdhNDFmNzkwN2UwODZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCkBAIC00
OCwxMiArNDgsMTIgQEAgcHVibGljOgogICAgIGZsb2F0IHNoYWRvd09wYWNpdHkoKSBjb25zdCB7
IHJldHVybiBtX3NoYWRvd09wYWNpdHk7IH0KICAgICB2b2lkIHNldFNoYWRvd09wYWNpdHkoZmxv
YXQgc2hhZG93T3BhY2l0eSkgeyBtX3NoYWRvd09wYWNpdHkgPSBzaGFkb3dPcGFjaXR5OyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2
b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCk7CisgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0
aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBGRURyb3BTaGFkb3coRmlsdGVyJiwgZmxvYXQsIGZs
b2F0LCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CmluZGV4IGNlMjMyOGMzODFhOTVmNjU4MTY4OWE4NWU3Zjk5ZDJmNzg0NmE1MDEuLjA3NDhhMjIz
ZDY0MTAzN2FkOTQ0NThlZmExMTZlYTYzN2QyYTAyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAg
LTQxLDE0ICs0MSwxNCBAQCBwdWJsaWM6CiAgICAgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRFZGdlTW9kZShFZGdlTW9kZVR5cGUpOwogCi0gICAgdmlydHVhbCB2
b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7Cisg
ICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpOworICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKICAg
ICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVLZXJuZWxTaXplKGNvbnN0IEZpbHRlciYsIGNvbnN0
IEZsb2F0UG9pbnQmIHN0ZERldmlhdGlvbik7CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRl
VW5zY2FsZWRLZXJuZWxTaXplKGNvbnN0IEZsb2F0UG9pbnQmIHN0ZERldmlhdGlvbik7CiAKLSAg
ICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYs
IGludCBpbmRlbnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIHN0YXRpYyBjb25zdCBpbnQgc19taW5pbWFsUmVjdERpbWVuc2lvbiA9IDEwMCAq
IDEwMDsgLy8gRW1waXJpY2FsIGRhdGEgbGltaXQgZm9yIHBhcmFsbGVsIGpvYnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgK
aW5kZXggMGQxYzc0NDBlMzhmNjI3YjdhMzEwYWM0NmVmYWNhN2FkZWUwY2VlZS4uYmFmYmY0N2M0
NWVmNDgwMzI3ODBhYjlhZTM5YmMyNmMwMTBiZTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTQzLDkgKzQz
LDkgQEAgc3RydWN0IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uOwogCiBjbGFzcyBGRUxp
Z2h0aW5nIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lk
IHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QoKSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVj
dCgpKSk7IH0KKyAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUg
eyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkp
OyB9CiAKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWluaW1hbFJlY3REaW1l
bnNpb24gPSAxMDAgKiAxMDA7IC8vIEVtcGlyaWNhbCBkYXRhIGxpbWl0IGZvciBwYXJhbGxlbCBq
b2JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
ZXJnZS5oCmluZGV4IDkyOWExM2I2NjllZDY5NGViNWU0YjBkYWMzY2JiYTEwYzg3NDBhN2UuLjYy
MGYyMjA1ZTA3NjIzNDE0YTE5OGUyYTc1NmQ3NGYxZTY4ZjRkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0zMSwxMCAr
MzEsMTAgQEAgY2xhc3MgRkVNZXJnZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8RkVNZXJnZT4gY3JlYXRlKEZpbHRlciYpOwogCi0gICAgdmlydHVhbCB2
b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7Cisg
ICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRkVNZXJnZShGaWx0ZXImKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5o
CmluZGV4IGU0NjM3YmZhZTM5MWI0ZmUyYjY2OTMyYjkzMjk3MjViODFhNTY2NzcuLjA1MGZjNzNk
NTBmMWZiMDgxOWJhYTQ1N2YwZDg1ODEwMzEyMmQ5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtNDYs
MTIgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICBmbG9hdCByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4g
bV9yYWRpdXNZOyB9CiAgICAgYm9vbCBzZXRSYWRpdXNZKGZsb2F0KTsKIAotICAgIHZpcnR1YWwg
dm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwor
ICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1w
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QoKTsKKyAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVh
bSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgc3RydWN0IFBhaW50aW5nRGF0YSB7CiAgICAgICAgIFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQ
aXhlbEFycmF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5oCmluZGV4IGJiNjJjNzgwODcyOWE2YTJkNGY1MGVlNzZiMmJkOTgxNmU3
ZWFmMTUuLmYxOTZkNDllM2QwNjBiNWQ2ZmNmMDNkMjYyYjY1NzBmMTBjODQzMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgK
QEAgLTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiAgICAgZmxvYXQgZHkoKSBjb25zdDsKICAgICB2
b2lkIHNldER5KGZsb2F0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNv
ZnR3YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAg
dmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7CisgICAgdm9pZCBkZXRl
cm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBj
b25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0m
LCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBGRU9mZnNl
dChGaWx0ZXImLCBmbG9hdCBkeCwgZmxvYXQgZHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgK
aW5kZXggOWQ2NzcyMmQyMGQ1Y2YyOTlhZjJmZmEzODkxZGU5OWMzMzBhMGM2Zi4uZTA0ZjQ0MzZh
YTY4MjI4MTdjZDY5YTY1MTQxMzVjNjhkNTc2NWEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGlu
Zy5oCkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBMaWdodFNvdXJjZSogbGln
aHRTb3VyY2UoKSBjb25zdDsKICAgICB2b2lkIHNldExpZ2h0U291cmNlKFBhc3NSZWZQdHI8TGln
aHRTb3VyY2U+KTsKIAotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CisgICAgdm9pZCBkdW1wKCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZFU3BlY3VsYXJMaWdodGluZyhGaWx0ZXImLCBjb25z
dCBDb2xvciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRVRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUaWxlLmgKaW5kZXggYjI4MDA3Njc0YWRlNTg4ODhkODVmNjYyNzNkMDM5ZWNkMWUw
NDc5Zi4uYzI2NGNlZmE0N2ViMTY4NDNkNGE0NGQzMWRiMDU3ZDVkZWMxM2VmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0z
MSwxNCArMzEsMTQgQEAgY2xhc3MgRkVUaWxlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxGRVRpbGU+IGNyZWF0ZShGaWx0ZXImKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgp
OworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
dW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWlu
dFJlY3QoKSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0
UmVjdCgpKSk7IH0KKyAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJp
ZGUgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3Qo
KSkpOyB9CiAKLSAgICB2aXJ0dWFsIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgp
IGNvbnN0IHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVUaWxlOyB9CisgICAgRmlsdGVyRWZmZWN0
VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVyRWZm
ZWN0VHlwZVRpbGU7IH0KIAotICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29u
c3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRkVUaWxlKEZpbHRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKaW5kZXggY2I0YWVhNDllZWE0MWJiNzBmMjZjYmJkMjhmNDlmMGYyYzJhNjIyZi4uNDk4N2Uz
ZDk3NzU1ZDY4ZTkzMTk0NjM4OWI3MDY5NThjZWU5OWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC01
OSwxMiArNTksMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZmlsbFJlZ2lvbldvcmtl
cih2b2lkKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwg
dm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIHsgc2V0QWJzb2x1dGVQYWludFJlY3Qo
ZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQorICAgIHZvaWQgZGV0ZXJtaW5l
QWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xv
c2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KIAotICAgIHZpcnR1YWwgVGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29u
c3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwg
aW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0IGludCBzX2Jsb2NrU2l6ZSA9IDI1NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAppbmRleCBjYWI1NmFiM2NkYmMz
NDg3MzNjYWRmYjYwODcyNzg4ODRkMTQxZjE1Li5kZWVmMzI0MjdjMDgwM2JlZmVlZDRhM2Q1NThh
NzZlYjMyZDY0ZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCkBAIC0zMSwxNCArMzEsMTQgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZWZmZWN0TmFtZSgpOwogCi0gICAgdmly
dHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1w
KCk7CisgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGR1bXAoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBh
aW50UmVjdCgpOworICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgRmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29u
c3QgeyByZXR1cm4gRmlsdGVyRWZmZWN0VHlwZVNvdXJjZUlucHV0OyB9CisgICAgRmlsdGVyRWZm
ZWN0VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVy
RWZmZWN0VHlwZVNvdXJjZUlucHV0OyB9CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAg
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUFs
cGhhKEZpbHRlckVmZmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAppbmRleCAzOTY5ZmM2YzI4ODVjZGIz
MWFlOWFkNmVmOTViMDNlOWU2NmQ4YzhiLi4zZmZkMjQ5MWI5YTNjNzE3YWUyMGFiOTI5NmEyODA5
NDQ5Yzc4NDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaApAQCAtMzIsMTQgKzMyLDE0IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGVmZmVjdE5hbWUoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVt
cCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQ
YWludFJlY3QoKTsKKyAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dDsgfQorICAgIEZpbHRlckVm
ZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZpbHRl
ckVmZmVjdFR5cGVTb3VyY2VJbnB1dDsgfQogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAg
ICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5k
ZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBTb3VyY2VHcmFwaGljKEZp
bHRlciYgZmlsdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCmluZGV4IDdkNzIyMWFkMjg3ODQ4
YTE4YTU4NzI0ZTRiNmM0NGZhOTczOWFkNDkuLmE4MWU1Yjg3ZjY0YzNmMWQ3NzQ2MjRiMThhZDVh
NGQ2MzBlNjM3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKQEAgLTQxLDI1ICs0MSwyNSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RXh0ZW5zaW9uczNET3BlbkdMKCk7CiAKICAgICAvLyBF
eHRlbnNpb25zM0QgbWV0aG9kcy4KLSAgICB2aXJ0dWFsIHZvaWQgYmxpdEZyYW1lYnVmZmVyKGxv
bmcgc3JjWDAsIGxvbmcgc3JjWTAsIGxvbmcgc3JjWDEsIGxvbmcgc3JjWTEsIGxvbmcgZHN0WDAs
IGxvbmcgZHN0WTAsIGxvbmcgZHN0WDEsIGxvbmcgZHN0WTEsIHVuc2lnbmVkIGxvbmcgbWFzaywg
dW5zaWduZWQgbG9uZyBmaWx0ZXIpOwotICAgIHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9y
YWdlTXVsdGlzYW1wbGUodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgc2FtcGxl
cywgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5z
aWduZWQgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKGxvbmcgc3JjWDAs
IGxvbmcgc3JjWTAsIGxvbmcgc3JjWDEsIGxvbmcgc3JjWTEsIGxvbmcgZHN0WDAsIGxvbmcgZHN0
WTAsIGxvbmcgZHN0WDEsIGxvbmcgZHN0WTEsIHVuc2lnbmVkIGxvbmcgbWFzaywgdW5zaWduZWQg
bG9uZyBmaWx0ZXIpIG92ZXJyaWRlOworICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRp
c2FtcGxlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIHNhbXBsZXMsIHVuc2ln
bmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxv
bmcgaGVpZ2h0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVh
dGVWZXJ0ZXhBcnJheU9FUygpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RXZlbnRNYXJr
ZXJFWFQoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1c2hHcm91cE1hcmtlckVY
VChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9p
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0Mz
RGVudW0qKTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVZlcnRleEFycmF5T0VTKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSBv
dmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIHZvaWQgaW5zZXJ0RXZlbnRNYXJrZXJFWFQoY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBwdXNoR3JvdXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBwb3BHcm91cE1hcmtlckVYVCh2b2lkKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUs
IEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNE
c2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIGxvbmcgbG9uZyBvZmZzZXQsIEdDM0RzaXplaSBw
cmltY291bnQpOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKTsKKyAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQo
R0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkg
cHJpbWNvdW50KSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIGxvbmcgbG9uZyBvZmZz
ZXQsIEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmli
RGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNFeHRlbnNpb24oY29uc3QgV1RGOjpT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBnZXRFeHRlbnNpb25zKCk7CisgICAgYm9vbCBz
dXBwb3J0c0V4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAgIFN0cmlu
ZyBnZXRFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAjaWYgKFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMQ29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgKaW5kZXggYTlkMmNjY2JjYTEyZmZkNTQz
YzFkZWNlNmQwNmZjOTY2NTA2MzNkNC4uN2M2MTRmYjQwMzM1OGVhNDA0NTZkODQ2MmNmOGRjNWJj
M2E0ZWIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaApAQCAtMzksMzMg
KzM5LDMzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5FeHRlbnNpb25zM0RPcGVuR0xDb21tb24o
KTsKIAogICAgIC8vIEV4dGVuc2lvbnMzRCBtZXRob2RzLgotICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0cyhjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRW5hYmxlZChjb25z
dCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKKyAgICBib29sIHN1
cHBvcnRzKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5zdXJlRW5hYmxlZChj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIGlzRW5hYmxlZChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKKyAgICBpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVZlcnRleEFycmF5T0VTKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2Jq
ZWN0KSA9IDA7Ci0gICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVZlcnRleEFy
cmF5T0VTKCkgb3ZlcnJpZGUgPSAwOworICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm0zRE9iamVjdCkgb3ZlcnJpZGUgPSAwOworICAgIEdDM0Rib29sZWFuIGlzVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGUgPSAwOworICAgIHZvaWQgYmluZFZlcnRl
eEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlID0gMDsKIAotICAgIHZpcnR1YWwg
dm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0IEdDM0RlbnVtKikgPSAwOworICAg
IHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopIG92ZXJyaWRl
ID0gMDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdM
RShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJj
ZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgLy8gRVhUIFJvYnVzdG5l
c3MgLSB1c2VzIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQotICAgIHZpcnR1YWwgdm9pZCBy
ZWFkblBpeGVsc0VYVChpbnQgeCwgaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgYnVmU2l6ZSwg
dm9pZCAqZGF0YSk7Ci0gICAgdmlydHVhbCB2b2lkIGdldG5Vbmlmb3JtZnZFWFQoR0MzRHVpbnQg
cHJvZ3JhbSwgaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgZmxvYXQgKnBhcmFtcyk7
Ci0gICAgdmlydHVhbCB2b2lkIGdldG5Vbmlmb3JtaXZFWFQoR0MzRHVpbnQgcHJvZ3JhbSwgaW50
IGxvY2F0aW9uLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgaW50ICpwYXJhbXMpOwotCi0gICAgdmlydHVh
bCBib29sIGlzTlZJRElBKCkgeyByZXR1cm4gbV9pc05WSURJQTsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc0FNRCgpIHsgcmV0dXJuIG1faXNBTUQ7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNJbnRlbCgp
IHsgcmV0dXJuIG1faXNJbnRlbDsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdpbmF0aW9uKCkg
eyByZXR1cm4gbV9pc0ltYWdpbmF0aW9uOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgdmVuZG9yKCkg
eyByZXR1cm4gbV92ZW5kb3I7IH0KLQotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0J1aWx0SW5G
dW5jdGlvbkVtdWxhdGlvbigpIHsgcmV0dXJuIG1fcmVxdWlyZXNCdWlsdEluRnVuY3Rpb25FbXVs
YXRpb247IH0KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1
cmVTaXplKCkgeyByZXR1cm4gbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemU7
IH0KKyAgICB2b2lkIHJlYWRuUGl4ZWxzRVhUKGludCB4LCBpbnQgeSwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEdDM0Rz
aXplaSBidWZTaXplLCB2b2lkICpkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldG5Vbmlmb3Jt
ZnZFWFQoR0MzRHVpbnQgcHJvZ3JhbSwgaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWkgYnVmU2l6ZSwg
ZmxvYXQgKnBhcmFtcykgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRuVW5pZm9ybWl2RVhUKEdDM0R1
aW50IHByb2dyYW0sIGludCBsb2NhdGlvbiwgR0MzRHNpemVpIGJ1ZlNpemUsIGludCAqcGFyYW1z
KSBvdmVycmlkZTsKKworICAgIGJvb2wgaXNOVklESUEoKSBvdmVycmlkZSB7IHJldHVybiBtX2lz
TlZJRElBOyB9CisgICAgYm9vbCBpc0FNRCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNBTUQ7IH0K
KyAgICBib29sIGlzSW50ZWwoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzSW50ZWw7IH0KKyAgICBi
b29sIGlzSW1hZ2luYXRpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2lzSW1hZ2luYXRpb247IH0K
KyAgICBTdHJpbmcgdmVuZG9yKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV92ZW5kb3I7IH0KKworICAg
IGJvb2wgcmVxdWlyZXNCdWlsdEluRnVuY3Rpb25FbXVsYXRpb24oKSBvdmVycmlkZSB7IHJldHVy
biBtX3JlcXVpcmVzQnVpbHRJbkZ1bmN0aW9uRW11bGF0aW9uOyB9CisgICAgYm9vbCByZXF1aXJl
c1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemUoKSBvdmVycmlkZSB7IHJldHVybiBtX3JlcXVp
cmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZnJp
ZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlLmgKaW5kZXggY2YwYjA3ZDU2YWViMGJmNjc4ZjE5YzcwYTU4NWE0MWZjN2QzYTFi
YS4uZjQyYWRlZmE3ZjNiNTQyNGEwNmMxNGIzNGRlNTM1YzhlZmNkYjAyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CiBjbGFzcyBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlIDogcHVibGljIFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyLCBwdWJsaWMgUmVmQ291bnRlZDxUZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8Qml0bWFwVGV4dHVyZT4g
dGV4dHVyZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBw
ZXIoVGV4dHVyZU1hcHBlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQpID0gMDsKKyAgICB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1
cmVNYXBwZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0KSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdSZXBhaW50Q291bnRl
cihUZXh0dXJlTWFwcGVyJiwgaW50IC8qIHJlcGFpbnRDb3VudCAqLywgY29uc3QgQ29sb3ImLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIHsgfQogICAgIHZp
cnR1YWwgflRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlh
U291cmNlT3dyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAppbmRleCAwMWIyYjdlYTNiMGRiYTY5NWEwMzFj
MzQyN2U4ZTAyZDY3MGEzNzY0Li4xYmY1MTI4ZTgxZDk1MGFlNmFlZjQyNTEwZmZhNzViN2VlNDZl
NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaApAQCAt
NzIsOCArNzIsOCBAQCBSZWFsdGltZU1lZGlhU291cmNlT3dyKGNvbnN0IFN0cmluZyYgaWQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgUwogICAgICAgICBzZXRNdXRlZChm
YWxzZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
IH0KLSAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRTZXR0aW5nczsgfQorICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1cnJlbnRT
ZXR0aW5nczsgfQogCiAgICAgT3dyTWVkaWFTb3VyY2UqIG1lZGlhU291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZWRpYVNvdXJjZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCA4Y2VlYjE5YWI4MTQyNmNmYWU0
OTRjMDE1NThmYjRjOWM5Y2ZjNzc2Li5iMTM5ODc3Mjk5ZWJiMmUxNTAyYjdlYWJiZjZkY2U1NDQ2
ZjMwYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmgKQEAgLTYwLDEzICs2MCwxMyBAQCBwdWJsaWM6CiAgICAgaW50IG51
bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwogCiAgICAgLy8gR2VvbG9j
YXRpb25DbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBk
YXRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwot
ICAgIHZpcnR1YWwgR2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVhbCB2
b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKik7CisgICAgdm9pZCBnZW9s
b2NhdGlvbkRlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRF
bmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7CisgICAgR2VvbG9jYXRpb25Qb3NpdGlv
biogbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihH
ZW9sb2NhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3Qo
R2VvbG9jYXRpb24qKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFzeW5jVXBkYXRl
Q29udHJvbGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0Q29kZWNJQ1UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNV
LmgKaW5kZXggOGY3ZDY3MzgxZDJkZTc3NTA0MjQxZjU3NjE3YTBjZmZmNTcyOTQwZC4uMGMxNzk4
YzliZjdhZTUzZWI3YzM3ZGU1ZjQyOGM0YjE3ZTc1ZDA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5oCkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB+VGV4dENvZGVjSUNVKCk7CiAKICAgICBwcml2YXRl
OgotICAgICAgICB2aXJ0dWFsIFN0cmluZyBkZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBsZW5n
dGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKTsKLSAgICAg
ICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVu
ZW5jb2RhYmxlSGFuZGxpbmcpOworICAgICAgICBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBz
aXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJv
cikgb3ZlcnJpZGU7CisgICAgICAgIENTdHJpbmcgZW5jb2RlKGNvbnN0IFVDaGFyKiwgc2l6ZV90
IGxlbmd0aCwgVW5lbmNvZGFibGVIYW5kbGluZykgb3ZlcnJpZGU7CiAKICAgICAgICAgdm9pZCBj
cmVhdGVJQ1VDb252ZXJ0ZXIoKSBjb25zdDsKICAgICAgICAgdm9pZCByZWxlYXNlSUNVQ29udmVy
dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlY0xhdGluMS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNM
YXRpbjEuaAppbmRleCAyZTM4NjJmZTIwNDQ2YjllMmQ2ODAzMDgyMTJiZTMwNWFhY2NmYjAxLi45
ZDA4YWEzZjU5NzRlOTYyYTE1NDFkMDNlZDc5ZGY5YmNhMmRlNDIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0xhdGluMS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjTGF0aW4xLmgKQEAgLTM1LDggKzM1LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckVuY29kaW5n
TmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFyKTsKICAgICAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0cmFyKTsKIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyBk
ZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9u
RXJyb3IsIGJvb2wmIHNhd0Vycm9yKTsKLSAgICAgICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShj
b25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpOworICAgICAg
ICBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBi
b29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikgb3ZlcnJpZGU7CisgICAgICAgIENTdHJp
bmcgZW5jb2RlKGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCwgVW5lbmNvZGFibGVIYW5kbGlu
Zykgb3ZlcnJpZGU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5oCmluZGV4IDU3ODMxYjBjOTlh
ZjY4MDNlMmRjZmMwYWRkNDQ3N2NlNzNiYTY5M2IuLjI4NzYwY2RlZTZkY2IyYThlZjZmYmM5NmI1
YTgyODlmMGZhMzI1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENvZGVjVVRGMTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
b2RlY1VURjE2LmgKQEAgLTM3LDggKzM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIFRleHRDb2RlY1VURjE2KGJvb2wgbGl0dGxlRW5kaWFuKSA6IG1fbGl0dGxlRW5kaWFuKGxp
dHRsZUVuZGlhbiksIG1faGF2ZUJ1ZmZlcmVkQnl0ZShmYWxzZSkgeyB9CiAKLSAgICAgICAgdmly
dHVhbCBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNo
LCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcik7Ci0gICAgICAgIHZpcnR1YWwgQ1N0
cmluZyBlbmNvZGUoY29uc3QgVUNoYXIqLCBzaXplX3QgbGVuZ3RoLCBVbmVuY29kYWJsZUhhbmRs
aW5nKTsKKyAgICAgICAgU3RyaW5nIGRlY29kZShjb25zdCBjaGFyKiwgc2l6ZV90IGxlbmd0aCwg
Ym9vbCBmbHVzaCwgYm9vbCBzdG9wT25FcnJvciwgYm9vbCYgc2F3RXJyb3IpIG92ZXJyaWRlOwor
ICAgICAgICBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5j
b2RhYmxlSGFuZGxpbmcpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBt
X2xpdHRsZUVuZGlhbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENvZGVjVVRGOC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNV
VEY4LmgKaW5kZXggOTQzMDVjZTE4ZjIzMDVjOGI2ZmE1OGViMWYxNWMzN2MyY2YzYzM0Yy4uNTkw
ZmQ1YzBkNWUzNWNmNTY4NTBiZGQyN2UyMzdjNzIxMzliYTdiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEY4LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEY4LmgKQEAgLTQyLDggKzQyLDggQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ29kZWNzKFRleHRDb2RlY1JlZ2lzdHJhcik7CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3Qg
bGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcik7Ci0g
ICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVu
ZW5jb2RhYmxlSGFuZGxpbmcpOworICAgIFN0cmluZyBkZWNvZGUoY29uc3QgY2hhciosIHNpemVf
dCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKSBv
dmVycmlkZTsKKyAgICBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgs
IFVuZW5jb2RhYmxlSGFuZGxpbmcpIG92ZXJyaWRlOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IENoYXJUeXBlPgogICAgIGJvb2wgaGFuZGxlUGFydGlhbFNlcXVlbmNlKENoYXJUeXBlKiYgZGVz
dGluYXRpb24sIGNvbnN0IHVpbnQ4X3QqJiBzb3VyY2UsIGNvbnN0IHVpbnQ4X3QqIGVuZCwgYm9v
bCBmbHVzaCwgYm9vbCBzdG9wT25FcnJvciwgYm9vbCYgc2F3RXJyb3IpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5oCmluZGV4IGFm
NjE0OWVjOTk3ZTllOGJlZTAyMDg1OGM5OGUzMmIzN2JlNjg1NTYuLjU4MjFjYTM3ODE1MTkxZWNi
MmEwYzU3OGZlMzIzZmQ4NTRhZDVlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckVuY29kaW5nTmFtZXMo
RW5jb2RpbmdOYW1lUmVnaXN0cmFyKTsKICAgICAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDb2Rl
Y3MoVGV4dENvZGVjUmVnaXN0cmFyKTsKIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyBkZWNvZGUo
Y29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9uRXJyb3Is
IGJvb2wmIHNhd0Vycm9yKTsKLSAgICAgICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShjb25zdCBV
Q2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpOworICAgICAgICBTdHJp
bmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0
b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikgb3ZlcnJpZGU7CisgICAgICAgIENTdHJpbmcgZW5j
b2RlKGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCwgVW5lbmNvZGFibGVIYW5kbGluZykgb3Zl
cnJpZGU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDMyNjQ3OWVkNzI2ODUzZmU3
MDI2ZTI5N2E5MzJkMzIzOWYyMWNhNGYuLmFmYWNmYmM4MzJmNWM5ZDc1MmI3ZTM0OWFlMjM4Mjcw
OWZmZjhkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5jcHAKQEAgLTQzLDggKzQzLDggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworICAgIGJvb2wg
aXNSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKICAgICBSZW5kZXJG
dWxsU2NyZWVuJiBtX293bmVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50
LmgKaW5kZXggMDljMmZjZTFlYTNmMGVhMjAwMDBlMzNkMDgxNTRjOTRjYmE4Y2MyMi4uYWMxOGFh
YzlmOGYzOGU1ZmZjODkyMmNmZWM3ZmE0MzYzNjY1ZjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAvLyBOZWVkZWQg
b25jZSB3ZSBzdXBwb3J0IGluaXQ8Ymxhbms+RXZlbnROUwogICAgIC8vIHZvaWQgaW5pdFN0b3Jh
Z2VFdmVudE5TKGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIGluIERPTVN0cmluZyB0eXBlQXJn
LCBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCBpbiBE
T01TdHJpbmcga2V5QXJnLCBpbiBET01TdHJpbmcgb2xkVmFsdWVBcmcsIGluIERPTVN0cmluZyBu
ZXdWYWx1ZUFyZywgaW4gRE9NU3RyaW5nIHVybEFyZywgU3RvcmFnZSBzdG9yYWdlQXJlYUFyZyk7
CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Q7Cisg
ICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBTdG9yYWdlRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKaW5kZXggZDZiOTlhZjU5YmViZjk2NTIwZjA3NTBmY2E0
M2U1MWExMTkxMjBmZi4uOWIwZDQyMDMyZTg4ZTBjMTBlMTlkYTdhYTliNTFiZGU3M2VmOWFlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgK
QEAgLTQ3MCw3ICs0NzAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBkZWxldGUgbV92YWx1
ZXM7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpID0gMDsKKyAgICB2
b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
Q2hhbmdlKExpc3RNb2RpZmljYXRpb24pCiAgICAgewogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRleCBiMTkyZTY3OTVjMDc1NGQwOTk5MzcxOWJjNzY3
ODA3ZmEyMmZmNTNjLi43ODY4NzRkY2EwMTE2OGMyZWM0YzQ3MGEyZDczNzBhMjZmYjIyY2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJv
cGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3Rh
dGljTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC04MiwyNCArODIsMjQgQEAgcHJvdGVjdGVkOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0CisgICAg
Ym9vbCBpc1JlYWRPbmx5KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBt
X3JvbGUgPT0gQW5pbVZhbFJvbGU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdENo
YW5nZSgpCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRl
eHRFbGVtZW50KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlz
dEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopCisgICAgYm9vbCBwcm9j
ZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIG5vLW9wIGZvciBzdGF0aWMgbGlzdHMKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWlu
Z0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYsIHVuc2lnbmVkKikKKyAgICBi
b29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYs
IHVuc2lnbmVkKikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggZjExMDZkNzJjOGFm
NzUzMDk5ODVmNzA1OGMyNWVlOTIxMjVlOTdiZC4uNWUyY2EwOWEwZGQ5ZmFmNDY4NTNlYmRhOTdj
OWY4MGYzMDU2NTFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1
ZSwgdXBkYXRlKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpIHsg
KG1fY29udGV4dEVsZW1lbnQuZ2V0KCktPiptX3VwZGF0ZSkoKTsgfQorICAgIHZvaWQgY29tbWl0
Q2hhbmdlKCkgZmluYWwgeyAobV9jb250ZXh0RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9
CiAKIHByaXZhdGU6CiAgICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50
JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaAppbmRleCA5ZDMy
YjNiNjYzMWQxN2IwYjZkNGQ3MDZhMTUyYzgzNWMzMzUyYjRlLi4wMjY0MjA3Yzg5NTY2YzIxZWYw
OWRjMWQ0ZDIxNGM1MThkZDAxY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0
aXZlWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRo
TlNSZXNvbHZlci5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5h
dGl2ZVhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlKFJlZlB0cjxOb2RlPiYmIG5vZGUpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTmF0aXZlWFBhdGhOU1Jlc29sdmVyKFdURk1vdmUobm9kZSkpKTsgfQog
ICAgIHZpcnR1YWwgfk5hdGl2ZVhQYXRoTlNSZXNvbHZlcigpOwogCi0gICAgdmlydHVhbCBTdHJp
bmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KTsKKyAgICBTdHJpbmcg
bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIoUmVmUHRyPE5vZGU+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
CmluZGV4IDc1NWIyYTcxYWFhZDAxMTA1MDY2YzZlYTgxMjIzYjUwZTVjMjk2ZmUuLmMwYWVkZGQy
ZGRlMTI5NDM1MDk0YjUyYTAxNTNhNzUyMjA5YmVmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVi
bGljOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGxv
YWRlZCgpOyB9CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIHRvdGFsKCk7IH0KIAotICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZh
Y2UoKSBjb25zdCB7IHJldHVybiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRJbnRlcmZhY2VU
eXBlOyB9CisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAK
IHByaXZhdGU6CiAgICAgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBsZW5ndGhDb21wdXRhYmxlLCB1bnNpZ25lZCBsb25nIGxvbmcgbG9h
ZGVkLCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oCmluZGV4IDk3MWJk
MjM0MmMwNTZiMTE1OGI0MDE5ZmIyYjNhYTI1MDM0ODRhOGQuLjc4MWQ2ZWNlNmU1NzUyMzE5ZjRj
NjNmYWQ0YTYwYTkyNGZlNDgzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oCkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtUHJvZ3Jl
c3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWxJblNlY29uZHM7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZmlyZWQoKTsKKyAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERl
ZmVycmVkRXZlbnRzKCk7CiAgICAgdm9pZCBmbHVzaFByb2dyZXNzRXZlbnQoKTsKICAgICB2b2lk
IGRpc3BhdGNoRXZlbnQoRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYXJpYWJs
ZVJlZmVyZW5jZS5oCmluZGV4IGI5NWIzNzNiMjMzYjZmNmUzNzA1NWJiMzQ3MTM4NzM4ZmJkMThj
YzQuLmRjNmU3NGVkYjM4YzJkYzFiYjUzNDA3YmMyNmU0YmZiZjI4NGVkMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoVmFyaWFibGVSZWZlcmVuY2UuaApAQCAtMzUsOCArMzUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHB1YmxpYzoKICAgICAgICAgICAgIGV4cGxpY2l0
IFZhcmlhYmxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgICAgIHByaXZhdGU6
Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Q7Ci0gICAgICAgICAg
ICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyByZXR1cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CisgICAgICAgICAgICBWYWx1ZSBl
dmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICAgICAgVmFsdWU6OlR5cGUgcmVzdWx0
VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBWYWx1
ZTo6TnVtYmVyVmFsdWU7IH0KICAgICAgICAgICAgIFN0cmluZyBtX25hbWU7CiAgICAgICAgIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5oCmluZGV4IDAzOTJlMTMyZWViNjNiMTJjZjhj
MTUxMWM1NTI3YmUyOGU4ZDdmM2QuLmYzZjlmZmUzOGQxMTc3NzdhMGYwYzk0MTQxNzFlNmNmMDdk
OWM5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuaApAQCAtNDgsNyArNDgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsb2FkU2hlZXQoKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJh
c2VVUkwsIGNvbnN0IFN0cmluZyYgc2hlZXQpOworICAgIHZvaWQgc2V0WFNMU3R5bGVTaGVldChj
b25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBzaGVl
dCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgWFNMU3R5bGVTaGVldCogbV9wYXJlbnRTdHlsZVNoZWV0
OwogICAgIFN0cmluZyBtX3N0ckhyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmgKaW5kZXggNjc3
YmFjMjFiZDJiZmFjOWYyMzhlZTI5MDg3NDBkOWMzMGIwZTA1Yy4uZTE4ZGM1NmFjMTk5ODM3NDE1
N2NlMWRiY2I3MzY0NmUyMjJlYWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuaApAQCAtNDIs
OCArNDIsOCBAQCBwcml2YXRlOgogICAgIFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkqKTsKIAogICAgIC8vIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9j
bHVlQ2xpZW50IGludGVyZmFjZS4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UG9zaXRpb25DaGFu
Z2VkKGludCwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpOwotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlFcnJvck9jY3VycmVkKGNvbnN0IGNoYXIqKTsKKyAgICB2b2lkIG5v
dGlmeVBvc2l0aW9uQ2hhbmdlZChpbnQsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwg
ZG91YmxlKSBvdmVycmlkZTsKKyAgICB2b2lkIG5vdGlmeUVycm9yT2NjdXJyZWQoY29uc3QgY2hh
ciopIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBt
X2dlb2xvY2F0aW9uTWFuYWdlcjsKICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblByb3ZpZGVyR2Vv
Y2x1ZSBtX3Byb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oCmluZGV4IDcwYmFjNWU1MjVhYjRkNTEx
MTZiOGIzOTcyNjJhZTJmYjg3MGE4MWMuLmY2ZjZlYzNiNDgwOTM4OTJjMWZkMGQyMzMxMDM5YTRk
ZDJhOTllNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkoV2ViRnJhbWVQcm94
eSosIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9CisgICAgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQVBJVHlwZTsgfQogCiAjaWYgREVMRUdBVEVfUkVGX0NPVU5USU5HX1RPX0NPQ09BCiAg
ICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKSB7IHJldHVybiBuZXdPYmplY3Qoc2l6
ZSwgQVBJVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaAppbmRleCAwNzE2NDRiMjUwNmJhZmVkOWM1NzU0Njgz
MjBlNDMwYjc0MWRkZjMwLi4zNzllZmQyMDQ4MGM2NTNhNGQwZTExNTVjYTg3OTljYWUwOTU4MGY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KFdlYkZyYW1lUHJveHkqLCB1aW50NjRfdCBsaXN0
ZW5lcklEKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlw
ZTsgfQorICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFQSVR5cGU7IH0K
IAogI2lmIERFTEVHQVRFX1JFRl9DT1VOVElOR19UT19DT0NPQQogICAgIHZvaWQqIG9wZXJhdG9y
IG5ldyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gbmV3T2JqZWN0KHNpemUsIEFQSVR5cGUpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAppbmRleCBmZGE3NTZjMjg3MTIyNTRkMGVhYzU1
YzgyY2I0YTVjOWM2MzM4MjczLi4xOGQ0MDM4MTYzZjI5N2Y3NTZkNzhkZTZmNTM2ZTY0NmUyNGQ4
ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJG
cmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVz
c2FnZXMKICAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IHBhZ2VJ
RCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmlu
Zz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBj
YWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBh
dGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAppbmRleCAzZTVjYzZmODY4YmQz
M2FmYTUzMzdhOWFkZTRkZjg4ZjdkMmUzNDkwLi4wZGQ1YTVkNzk0NzQyODk2ZThlMzhiNzZiNGFi
MzJhNjgwMDE3NTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RY
UGF0aE5TUmVzb2x2ZXIuaApAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dmlydHVhbCB+R09iamVjdFhQYXRoTlNSZXNvbHZlcigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxv
b2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7CisgICAgU3RyaW5nIGxvb2t1
cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgR09iamVjdFhQYXRoTlNSZXNvbHZlcihXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJl
c29sdmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hl
L1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggZmNjMGY0ZGRlOTRl
MTQ5Y2EwNDE0NDQ4MzBhYWRmZGQ2NzQxZTU2Mi4uZWY3NDZmZWU2ZWI4MjY3ZDk0NjVhNzVmYTAx
NTZiNjVjOGRlZWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oCkBAIC01NSw3
ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUFsbE1lZGlhS2V5RW50cmllcygpOwog
CiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIG1fbWVkaWFLZXlT
dG9yYWdlRGlyZWN0b3J5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAppbmRleCBm
YWRlNDFkZjU4ZDQ3OTgxZDMxNGM5YThmNDRhZDMxYTcwZmFlZWRlLi44NTUwOWFiNDk0MDk1YzZj
ZWEzNzJjMDhkMTFkOTU5NzExYzA5MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5o
CkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWFrSGFuZGxl
T3duZXIKLSAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCk7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVycmlkZTsKICAgICB2b2lkIGFkZFRvSW52YWxpZGF0
aW9uUXVldWUoTlBPYmplY3QqKTsKICAgICB2b2lkIGludmFsaWRhdGVRdWV1ZWRPYmplY3RzKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z0luQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsdWdJbkNsaWVudC5oCmluZGV4IDVlNzVhMDBmZmEzOWM1NTI3NTJkYzBjYThiM2Yz
ODZmYjljNTUxMzMuLjkzZjk2OThhOWZhMjY1NDJjZmMyMDFhZWUxMTk5YTdkMjkxMThhNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbHVnSW5DbGllbnQuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViUGx1Z0luQ2xpZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VE
ZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdpbihj
b25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2lu
KGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBwYWdl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2lu
KGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU3RhcnRGcm9tT3Jp
Z2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAK
ICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggYWVkMWI1OTlmOTQ5N2MwMDBhMGM2MjYxN2IxZWZl
YjU1MTczY2EyNy4uMmM2ZWVhN2YzM2M0OGIzYjU3ZWJlZDgwM2UxMGU1M2E4ZTcyNjA1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC01Miw3
ICs1Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dChXZWJGcmFtZSopOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CisgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbigpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAppbmRl
eCBmMzBhNDZhNmVhOTg5Mjc2YmRkZmI5MTgzZjhhNTU3YWYxYmQ3ZmVlLi43ZWMwZDVhZjgwZTIx
NGVjYWJmOGRkZDMzOGQyOGUzZTZkMDY1ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaApAQCAtNzMsMTAgKzczLDEwIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBQYWdlT3ZlcmxheTo6Q2xpZW50LgotICAgIHZpcnR1
YWwgdm9pZCB3aWxsTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBh
Z2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3Zlcmxh
eSYsIFdlYkNvcmU6OlBhZ2UqKTsKLSAgICB2aXJ0dWFsIGJvb2wgbW91c2VFdmVudChXZWJDb3Jl
OjpQYWdlT3ZlcmxheSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYpOwotICAg
IHZpcnR1YWwgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCk7CisgICAg
dm9pZCB3aWxsTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2Uq
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZE1vdmVUb1BhZ2UoV2ViQ29yZTo6UGFnZU92ZXJsYXkm
LCBXZWJDb3JlOjpQYWdlKikgb3ZlcnJpZGU7CisgICAgYm9vbCBtb3VzZUV2ZW50KFdlYkNvcmU6
OlBhZ2VPdmVybGF5JiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJp
ZGU7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcmVjdHNGb3JUZXh0TWF0Y2hlc0lu
UmVjdChXZWJDb3JlOjpJbnRSZWN0IGNsaXBSZWN0KTsKICAgICBib29sIHVwZGF0ZUZpbmRJbmRp
Y2F0b3IoV2ViQ29yZTo6RnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3Zlcmxh
eSwgYm9vbCBzaG91bGRBbmltYXRlID0gdHJ1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297200</attachid>
            <date>2016-12-15 10:40:47 -0800</date>
            <delta_ts>2016-12-15 13:26:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165903-20161215213953.patch</filename>
            <type>text/plain</type>
            <size>83851</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzczZDI3Y2EyNjA3YWRhODkzNjQ2MmNhYzJiOGQ3MzAxYzAzMmJhLi4wM2Y3MzAzOWFiZmE0MTY2
M2VlY2E2YjMwNzI2MTdkNjkyNzkzNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5k
ZXgucnU+CisKKyAgICAgICAgQWRkZWQgbWlzc2luZyBvdmVycmlkZSBhbmQgZmluYWwgc3BlY2lm
aWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorCiAyMDE2LTEyLTE0ICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdhc20gc2hvdWxkIGRlY29kZSBjb25zdGFu
dHMgY29ycmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IGMzZjI3ZGE2YWRjMGE5NTFkMjNkZDhlNDRjNmU2MGIzYTBlNjhm
NGEuLmU5YjA3YTY0OGIwMDEyYTU3NWUwYjQ0NWY0NDg2ODJjMjM1MGQ2MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTYtMTItMTUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgorCisgICAgICAgIEFkZGVkIG1pc3Npbmcgb3ZlcnJpZGUgYW5kIGZpbmFsIHNwZWNpZmll
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1J1bkxvb3AuaDoKKwogMjAxNi0xMi0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBPcHRpbWl6ZSBLcmFrZW4gc3RyaW5naWZ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOTNlYWE2YTRhNjJjMWNmZDM3MDY4MDdjMWM1YWYyYzAyYjkwNGM1OS4uZGM1YmJk
YTJjNTY4YmMyOTcyOTU2ZGE2OGI0Y2ZiNDQ2NTkyZjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgzIEBACisyMDE2LTEyLTE1ICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KKworICAgICAgICBBZGRlZCBtaXNzaW5nIG92ZXJyaWRlIGFuZCBmaW5hbCBzcGVjaWZpZXJz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU5MDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMgbmVlZGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9PdmVyY29uc3Ry
YWluZWRFcnJvckV2ZW50Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmg6CisgICAgICAgICogY3NzL1N0eWxl
UnVsZUltcG9ydC5oOgorICAgICAgICAqIGRvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
Lmg6CisgICAgICAgICogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKiBl
ZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5kZW50T3V0
ZGVudENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oOgorICAgICAgICAq
IGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZUZvcm1hdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmg6CisgICAg
ICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9VbmxpbmtDb21tYW5kLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxl
UmVhZGVyTG9hZGVyLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJh
eXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
OgorICAgICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvYXJj
aGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFu
bmVsUmVzYW1wbGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1Nv
dXJjZVByb3ZpZGVyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbXBvbmVudFRyYW5zZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpZmZ1c2VMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVM
aWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
VGV4dENvZGVjTGF0aW4xLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYx
Ni5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGOC5oOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnQu
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgICog
eG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUuaDoKKyAgICAgICAgKiB4bWwvWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOgor
ICAgICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmg6CisKIDIwMTYtMTItMTUgIEFuZHJlYXMgS2xp
bmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyBjbGVhciBSZW5kZXJMYXll
ciBiYWNraW5nIHN0b3JlcyB3aGVuIGdvaW5nIGludG8gcGFnZSBjYWNoZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAzYTFjYTg5MGZlOTAxZmM5YTZhMGU2ZDFkYmUxNmRiZjIwN2MzMjNiLi45ODBiYWUyOTQzZjMz
ZjQ3ZTA3OWJiZjBkZWE2YjJkMjU3ZjRkY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTYtMTItMTUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgorCisg
ICAgICAgIEFkZGVkIG1pc3Npbmcgb3ZlcnJpZGUgYW5kIGZpbmFsIHNwZWNpZmllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkwMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmg6CisKIDIwMTYtMTItMTUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIEFsd2F5cyBjbGVhciBSZW5kZXJMYXllciBiYWNraW5nIHN0b3JlcyB3aGVuIGdv
aW5nIGludG8gcGFnZSBjYWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCBiNzFlZTBiNmVhMzIwOWMxZjQ5
ZWFlNDIxMWVhN2I1MDMzOWZhNTRjLi45NjFhZjcxYTIwMTViZDA0ZjFmOGZhNmZkNGJhMWE5ZTc4
OGEyYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0xMzksNyArMTM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgRm9ySW5Db250ZXh0VHlw
ZSB0eXBlKCkgY29uc3QKKyAgICAgICAgRm9ySW5Db250ZXh0VHlwZSB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZUZvckluQ29udGV4
dFR5cGU7CiAgICAgICAgIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBGb3JJbkNvbnRleHRUeXBlIHR5
cGUoKSBjb25zdAorICAgICAgICBGb3JJbkNvbnRleHRUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlk
ZQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gSW5kZXhlZEZvckluQ29udGV4dFR5cGU7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggZWM3OWQ4MzIwN2U1NDVjOGViMDUz
Njg3ZDc5YWVlMTFiYTk1NzAyZC4uNGEyOTQ5NDNkYzgzMzExNTYzYmViOWEwZWRkZWM3Mjg1MjY3
M2M2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTIwMSw3ICsyMDEsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBFbGVtZW50SGFuZGxlT3duZXIgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSBqc0Nhc3Q8RWxlbWVudCo+KGhhbmRsZS5zbG90KCktPmFzQ2Vs
bCgpKTsKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KGVsZW1lbnQt
PnJvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggZmI0NTNlODJl
ZmRiN2M2ZTFhYzBlMGExNDM4NjNiMmZiMDZiNTc1MC4uMjQxMTBhYTE2MDBkOTllOTNlZTNmZGM1
NWE3MjVlMzNhNjUxNzI1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
MTc1Miw3ICsxNzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTW9kdWxlRGVjbGFy
YXRpb25Ob2RlIDogcHVibGljIFN0YXRlbWVudE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBpc01vZHVsZURlY2xhcmF0aW9uTm9kZSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgYm9vbCBpc01vZHVsZURlY2xhcmF0aW9uTm9kZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgTW9kdWxlRGVj
bGFyYXRpb25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDU1NWQ0
NDczMWNmMzA4YmNiZDllZWJkZmJlNjViMjFmZGFhNThlZGUuLmY2YTExNzcxNzkyNTc4YzVlMDUw
ZjgxNDY3YmEwYThiYTRiZTZlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBwdWJs
aWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJl
ZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorICAgICAgICB2b2lkIGZpcmVkKCkg
b3ZlcnJpZGUgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9CiAKICAgICAgICAgVGltZXJG
aXJlZENsYXNzKiBtX29iamVjdDsKICAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJj
b25zdHJhaW5lZEVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oCmluZGV4IDdlOGZiMWU5ODllYjRlMmFmNTU2
MDk2MTkwYWMwNTlmZTljZGQ4YTAuLjljNGYzOTY0MDRiOGM4NjU0YmRhNWU3NTE3ZTEyMDA0NzYz
YTgzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vT3Zl
cmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBPdmVyY29uc3RyYWluZWRFcnJvciogZXJyb3IoKSBjb25zdCB7
IHJldHVybiBtX2Vycm9yLmdldCgpOyB9Ci0gICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVu
dEludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnRJbnRl
cmZhY2VUeXBlOyB9CisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsg
fQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBP
dmVyY29uc3RyYWluZWRFcnJvciogZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDYWxsYmFja0RhdGEuaAppbmRleCBhNmJlZjdiNzYyN2RkZjU1NzU2ZjgwOTIzMThjNjIyOTQ2
ZDdiMjM0Li5kMzMyN2M5MDJmYmNmNzY5MjI1N2ZiNjcwNWI2YjA3ZTdlNTlmZWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKQEAgLTEwNSw3ICsxMDUs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgV2Vha093bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKLSAgICAgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImKTsKKyAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJikgb3ZlcnJpZGU7CiAgICAgfTsKICAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7CiAgICAg
SlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fY2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAppbmRleCAwZWVkY2Uy
YmZlOTYxYjA2YjRlNzQ3NDBjMDcxNTg2YjY1N2VmZjU2Li4wNDQxZjU0OGE2ZWJhYmRkODMxMWJi
MTQyNWMzNmYwMzIyOWIyZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAgdmlydHVhbCB+SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIoKTsKIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29u
c3QgU3RyaW5nJiBwcmVmaXgpOworICAgICAgICBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJKGNv
bnN0IFN0cmluZyYgcHJlZml4KSBvdmVycmlkZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
RE9NV2luZG93Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vy
cm9ySGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
aAppbmRleCA1YTJkZDM0ZDNlZWIwMDY0N2M5Y2M3NDE1ZDRhMDIwYzRlZjQ0YTQwLi5iYTAxYzBl
MGJjZTcxYTBhMDUyY2MxOTFmODhhYTIzODk1NmUxYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIEpTRXJyb3JIYW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6
OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2
ZW50Kik7CisgICAgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZl
bnQqKSBmaW5hbDsKIH07CiAKIC8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25l
cnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBs
ZW1lbnRhdGlvbiBiZWNhdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgKaW5kZXgg
YWRhZWM2Y2U0MmIyOWY4ZDQ4ODQ2Njk1YzUyMTg0MDdhZmZhYjQyMC4uMjY0ZDU3MGI0MTg5ZTc1
MTg2MTQ0MmE3YWE0NzBjMzExNDgxNTFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZUltcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBv
cnQuaApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQgZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkU3R5bGVTaGVldENsaWVudCB7CiAgICAgcHVibGljOgogICAgICAg
ICBJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQoU3R5bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUpIDog
bV9vd25lclJ1bGUob3duZXJSdWxlKSB7IH0KICAgICAgICAgdmlydHVhbCB+SW1wb3J0ZWRTdHls
ZVNoZWV0Q2xpZW50KCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDU1NTdHlsZVNoZWV0
KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIHNoZWV0KQorICAgICAgICB2b2lkIHNl
dENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogc2hlZXQpIGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJSdWxlLT5zZXRDU1NTdHlsZVNoZWV0
KGhyZWYsIGJhc2VVUkwsIGNoYXJzZXQsIHNoZWV0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKaW5kZXggMjY3MmQx
MmVlYTljZWJiZjhlNWJhYjM5ZTYxMTNjYjIwNjU2YmJiNC4uYTYwMzJmMmUwZmM5MTBiZTg4ZGIw
ODRiNTMxZTUwMWU2NGE2MTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBp
bnQgbGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bWJlcjsgfQogICAgIGludCBj
b2x1bW5OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbk51bWJlcjsgfQogCi0gICAgdmly
dHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbnRlcmZhY2VUeXBlOyB9CisgICAgRXZlbnRJbnRlcmZh
Y2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
cmVhdGVMaW5rQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29t
bWFuZC5oCmluZGV4IGI3ZWYyZTk3MDk4ZmEyNDIyN2U5NTliOTkwNmRmZjFmZWY0NDdmYWUuLjM5
Yjk4ZDBkY2YyYmQ1ZWNjNjEwM2IxOGVkZDAyYWQwYjJkZjg3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKQEAgLTM2LDEzICszNiwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyZWF0ZUxpbmtDb21tYW5kKGRvY3VtZW50
LCBsaW5rVVJMKSk7CiAgICAgfQogCi0gICAgYm9vbCBpc0NyZWF0ZUxpbmtDb21tYW5kKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNDcmVhdGVMaW5rQ29tbWFuZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBDcmVhdGVMaW5rQ29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbGlua1VSTCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZG9BcHBseSgpOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gRWRpdEFjdGlvbkNyZWF0ZUxpbms7IH0KKyAgICB2b2lkIGRvQXBwbHkoKSBv
dmVycmlkZTsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBFZGl0QWN0aW9uQ3JlYXRlTGluazsgfQogCiAgICAgU3RyaW5nIG1fdXJsOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKaW5k
ZXggNjg2MGRmNjBmY2VkZjk1MWNjMDI0NjdiMDUxM2RiMjE3NGUzYTgyZS4uNDg0NjcyZmY5NDc2
YWMwYzRkZDhiYTdlZTdkNGYyZTk2OGFlMjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJv
b2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVN
YXJrdXAsIEVkaXRBY3Rpb24pOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVz
VHlwaW5nU3R5bGUoKSBjb25zdDsKKyAgICBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXRpYWxpemVTdGFydEVuZChQb3NpdGlvbiYsIFBv
c2l0aW9uJik7CiAgICAgdm9pZCBzZXRTdGFydGluZ1NlbGVjdGlvbk9uU21hcnREZWxldGUoY29u
c3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYpOwpAQCAtNjYsOCArNjYsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgY2FsY3VsYXRlVHlwaW5nU3R5bGVBZnRlckRlbGV0ZSgpOwogICAgIHZvaWQg
Y2xlYXJUcmFuc2llbnRTdGF0ZSgpOwogICAgIHZvaWQgbWFrZVN0eWxpbmdFbGVtZW50c0RpcmVj
dENoaWxkcmVuT2ZFZGl0YWJsZVJvb3RUb1ByZXZlbnRTdHlsZUxvc3MoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwotICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKTsKKyAgICB2b2lkIHJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgPSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVt
b3ZlUmVkdW5kYW50QmxvY2tzKCk7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGFj
Y2VzcyB0byBvcmlnaW5hbCBzdHJpbmcgYWZ0ZXIgdGhlIGNvcnJlY3Rpb24gaGFzIGJlZW4gZGVs
ZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmgKaW5kZXggYjk2
NjAyOGFkMGYxODUzZDM2NTQ3ZGU4ZWM5OWU3ZTgwZTQ2OGFlMS4uMTNjMTg4NzcyYTEwZWEyZTMz
MmIwYTlhNjlmZmQ1Nzc4ZmE3N2I2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgRGljdGF0aW9uQ29tbWFuZCA6IHB1
YmxpYyBUZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQgewogICAgIGZyaWVuZCBjbGFzcyBEaWN0YXRp
b25Db21tYW5kTGluZU9wZXJhdGlvbjsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbnNlcnRU
ZXh0KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVy
bmF0aXZlPiYgYWx0ZXJuYXRpdmVzLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7Ci0gICAgdmly
dHVhbCBib29sIGlzRGljdGF0aW9uQ29tbWFuZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBib29sIGlzRGljdGF0aW9uQ29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIHByaXZhdGU6CiAgICAgc3RhdGljIFJlZjxEaWN0YXRpb25Db21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxEaWN0YXRp
b25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKICAgICB7CkBAIC00Myw3ICs0Myw3IEBAIHBy
aXZhdGU6CiAKICAgICBEaWN0YXRpb25Db21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpOwog
ICAgIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CisgICAgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxp
bmVTdGFydCwgc2l6ZV90IGxpbmVMZW5ndGgpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYTllZjZmZWM0OTY2NTY3
YmI2OWVhODM4ZjY0N2U4ZjhhOGU5YTc0MS4uYzQzMmI5MWNkZjJlNGRhOGYxMmNiMDg3Nzk1OWNj
MzM2OWQ5YTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ2LDcgKzE0Niw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBDcmVhdGVBbmRBcHBseShjb25zdCBSZWZQdHI8
RnJhbWU+IGZyYW1lKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIENsZWFyVGV4dENvbW1hbmQ6OkNsZWFyVGV4dENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3Jt
YXRCbG9ja0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmgKaW5kZXggMDk3NmEyYWU2ZTFjYzBkMDg2Mjc2YzNiOThlNmI5N2E1ZWQxYWRlNS4uNDJl
NDU3MWE0ZTMzODk2MDM4ZjdjMzM2MTYxMzZmZjVjZWUzZTc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9ybWF0QmxvY2tDb21tYW5kKGRvY3VtZW50
LCB0YWdOYW1lKSk7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBp
bmdTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHByZXNlcnZlc1R5cGlu
Z1N0eWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgc3RhdGljIEVs
ZW1lbnQqIGVsZW1lbnRGb3JGb3JtYXRCbG9ja0NvbW1hbmQoUmFuZ2UqKTsKICAgICBib29sIGRp
ZEFwcGx5KCkgY29uc3QgeyByZXR1cm4gbV9kaWRBcHBseTsgfQpAQCAtNTIsOSArNTIsOSBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIEZvcm1hdEJsb2NrQ29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOwogCi0gICAgdm9pZCBmb3JtYXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIGVuZE9mU2VsZWN0aW9uKTsKLSAgICB2b2lkIGZvcm1hdFJhbmdlKGNvbnN0IFBvc2l0aW9u
JiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgY29uc3QgUG9zaXRpb24mIGVuZE9mU2VsZWN0
aW9uLCBSZWZQdHI8RWxlbWVudD4mKTsKLSAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCB7IHJldHVybiBFZGl0QWN0aW9uRm9ybWF0QmxvY2s7IH0KKyAgICB2b2lkIGZvcm1hdFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3Rpb24sIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24pIG92ZXJyaWRlOworICAgIHZvaWQgZm9ybWF0
UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25zdCBQ
b3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYpIG92ZXJyaWRlOworICAg
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRB
Y3Rpb25Gb3JtYXRCbG9jazsgfQogCiAgICAgYm9vbCBtX2RpZEFwcGx5OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAppbmRleCA3NTU0YTZlOGQy
ZjM5NTVjYjNjNWZhMTc2N2E0OTNjM2FkMjA3NmZhLi5iNjM1NmI4NjBjNjI3MDEzMmUyZmZkOTQ1
YmNiMDgxOWUyYWFhN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVu
dE91dGRlbnRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRk
ZW50Q29tbWFuZC5oCkBAIC0zOCwxMiArMzgsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbmRlbnRPdXRkZW50Q29tbWFuZChkb2N1bWVudCwgdHlwZSwgbWFyZ2lu
SW5QaXhlbHMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5
bGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHls
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBJbmRl
bnRPdXRkZW50Q29tbWFuZChEb2N1bWVudCYsIEVJbmRlbnRUeXBlLCBpbnQgbWFyZ2luSW5QaXhl
bHMpOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX3R5cGVPZkFjdGlvbiA9PSBJbmRlbnQgPyBFZGl0QWN0aW9uSW5kZW50IDogRWRpdEFj
dGlvbk91dGRlbnQ7IH0KKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3R5cGVPZkFjdGlvbiA9PSBJbmRlbnQgPyBFZGl0QWN0aW9uSW5kZW50
IDogRWRpdEFjdGlvbk91dGRlbnQ7IH0KIAogICAgIHZvaWQgaW5kZW50UmVnaW9uKGNvbnN0IFZp
c2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgb3V0ZGVu
dFJlZ2lvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsK
QEAgLTUxLDggKzUxLDggQEAgcHJpdmF0ZToKICAgICBib29sIHRyeUluZGVudGluZ0FzTGlzdEl0
ZW0oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5kZW50SW50
b0Jsb2NrcXVvdGUoY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVt
ZW50PiYpOwogCi0gICAgdm9pZCBmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBzdGFydE9mU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZE9mU2VsZWN0aW9u
KTsKLSAgICB2b2lkIGZvcm1hdFJhbmdlKGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9z
aXRpb24mIGVuZCwgY29uc3QgUG9zaXRpb24mIGVuZE9mU2VsZWN0aW9uLCBSZWZQdHI8RWxlbWVu
dD4mIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKKyAgICB2b2lkIGZvcm1hdFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgZW5kT2ZTZWxlY3Rpb24pIG92ZXJyaWRlOworICAgIHZvaWQgZm9ybWF0UmFuZ2UoY29u
c3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25zdCBQb3NpdGlvbiYg
ZW5kT2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQp
IG92ZXJyaWRlOwogCiAgICAgRUluZGVudFR5cGUgbV90eXBlT2ZBY3Rpb247CiAgICAgaW50IG1f
bWFyZ2luSW5QaXhlbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dExpbmVCcmVha0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJy
ZWFrQ29tbWFuZC5oCmluZGV4IDZmYzYxMDg4NjdkNzJmMGU3MTYxY2RkN2EyMzU0ZDA5NzM2MzJm
NGIuLjJiM2QxYmZhNzZjMThhMjBiMzY2NzhiNjZhMjA5MTBiNTExMDhhMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCkBAIC0zOSw5ICsz
OSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW5zZXJ0TGluZUJyZWFrQ29t
bWFuZChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdT
dHlsZSgpIGNvbnN0OworICAgIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyUG9zaXRpb24oTm9kZSosIGNvbnN0IFBv
c2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlUG9zaXRpb24oTm9kZSosIGNvbnN0
IFBvc2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDM0YzAyYWQ2MmE3ODkzNWZlNTY5MTI2
YTVjOTBlMWVmNTUzYjA0NmQuLjVlZmRkNTMwZDk5MWE2ZTdlNjI5MDg2MmE0ZDYxODlhNTU0OGU0
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgdXNl
RGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVk
QXJlYSwgRWRpdEFjdGlvbik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZv
aWQgZG9BcHBseSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjYWxjdWxhdGVTdHlsZUJlZm9yZUlu
c2VydGlvbihjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgYXBwbHlTdHlsZUFmdGVySW5zZXJ0
aW9uKE5vZGUqIG9yaWdpbmFsRW5jbG9zaW5nQmxvY2spOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzaG91bGRVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChOb2RlKikg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdDsK
KyAgICBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBS
ZWZQdHI8RWRpdGluZ1N0eWxlPiBtX3N0eWxlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaAppbmRleCBjZDMzMzFiZjVjYjJiNzhiMWZl
YzM4MWFlYmYzM2MwYzVjZGEwOThmLi5jYzA2Y2Y0ZGU4ODk5ZDI5YWE1ZjBjNjNiNmQ3MGU5OWU2
ZmNjMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlv
bkxpc3RMZXZlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaW5zZXJ0
U2libGluZ05vZGVSYW5nZUFmdGVyKE5vZGUqIHN0YXJ0Tm9kZSwgTm9kZSogZW5kTm9kZSwgTm9k
ZSogcmVmTm9kZSk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHByZXNlcnZlc1R5cGlu
Z1N0eWxlKCkgY29uc3Q7ICAgIAorICAgIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIC8vIEluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZCBt
b3ZlcyB0aGUgc2VsZWN0ZWQgbGlzdCBpdGVtcyBvbmUgbGV2ZWwgZGVlcGVyLgpAQCAtNjMsNyAr
NjMsNyBAQCBwcml2YXRlOgogICAgIAogICAgIEluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29t
bWFuZChEb2N1bWVudCYsIFR5cGUpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAg
ICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKIAogICAgIFR5cGUgbV9saXN0VHlwZTsKICAgICBS
ZWZQdHI8Tm9kZT4gbV9saXN0RWxlbWVudDsKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKIAog
ICAgIGV4cGxpY2l0IERlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZChEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCAzYjZlMTE4MWY3NDU1ZGFkNDFkNDIw
ZjEyZDJkOGY0YTg5YjBkNjBmLi44YjNjMzM4YjE2MjIzYWQyZDM5ZDZmNGZkNTdlYzMyMjg0NTM4
MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5o
CkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTW92ZVNlbGVjdGlvbkNv
bW1hbmQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgY29uc3QgUG9zaXRpb24mLCBib29s
IHNtYXJ0SW5zZXJ0LCBib29sIHNtYXJ0RGVsZXRlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAg
ICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZERpc3BhdGNoSW5wdXRFdmVudHMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBtX2ZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVGb3JtYXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1h
dENvbW1hbmQuaAppbmRleCBlN2IyNzJlMzhmOGZlZDA3NzhiMDRhYjAyOTQ1ZThmOWUxOTkxMDdj
Li5hNDkzYjNhYmY3MzM5MjdhNWRjYjI5NTI3ZTU0MTI5MTZmZWVhYjg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaApAQCAtMzksOCArMzksOCBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW92ZUZvcm1hdENvbW1hbmQoRG9jdW1l
bnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCB7IHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7
IH0KKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAppbmRl
eCAxZWQzNmE3Yzk3YmU3ZjAwNjZhNDc1YTg2YzIzMmYwMzZlODQ3NWQzLi4wN2VhMDg4YmFjNDNi
YWQwOGFkZjFlZWMzNTAwOGQ0MmQ4NzJjMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCkBA
IC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCi0gICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKTsKKyAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxO
b2RlPiBtX25vZGU7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9z
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBjZjlkNDY3ZGU5MjkzMTFl
ZmQ2MGNkOTVkODYyY2FlNzNlNGFkZGRlLi4zZDJmNDE5ZWM3YTE2MmJkOGY5MjFmMGM3OTc2OGY5
ZTUzZjEzMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGlucHV0
RXZlbnREYXRhKCkgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gaW5wdXRF
dmVudERhdGFUcmFuc2ZlcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgd2lsbEFwcGx5Q29tbWFu
ZCgpIGZpbmFsOwotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CisgICAgdm9pZCBkb0FwcGx5
KCkgb3ZlcnJpZGU7CiAKICAgICBjbGFzcyBJbnNlcnRlZE5vZGVzIHsKICAgICBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuaAppbmRleCA4
YzE4NDNhMmUxYTNiZWM0NmFmM2Q4N2Y5MjU3ODc4MDZiMzBmOGJkLi4yZDgyNTdhNDU1ZDFkOTY0
NTJlMjc4Y2ZhMzcwZGJiZGNmNmExOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
U2ltcGxpZnlNYXJrdXBDb21tYW5kLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTaW1wbGlmeU1hcmt1cENvbW1hbmQoRG9jdW1lbnQmLCBOb2RlKiBmaXJzdE5vZGUs
IE5vZGUqIG5vZGVBZnRlckxhc3QpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAg
ICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICBpbnQgcHJ1bmVTdWJzZXF1ZW50QW5jZXN0
b3JzVG9SZW1vdmUoVmVjdG9yPFJlZlB0cjxOb2RlPj4mIG5vZGVzVG9SZW1vdmUsIHNpemVfdCBz
dGFydE5vZGVJbmRleCk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbV9maXJzdE5vZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVu
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5p
bmdFbGVtZW50Q29tbWFuZC5oCmluZGV4IDMyYWE3ZThiNzM4NjY3ZDUxMTMwN2RlYTJkM2NmMjA3
MTdlMzBlNzguLjVlNjllMTJmMDgyOTllOWI1MWU5ZWZkYjk2NDdkNWRlMzA0ZDIxZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVt
ZW50Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNv
bnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCBpbnQgb2Zmc2V0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CisgICAg
dm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8VGV4dD4gbV90ZXh0OwogICAg
IGludCBtX29mZnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5saW5r
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKaW5kZXgg
MzQ0OTZiMTJiZDA1MzIwNzk2YzdlOGVhN2QyMDExMGJhNWUzMGU3Mi4uMTdjNTBhOWEzNDVjNWVk
OWNjYTRlY2JjYjlkNTIwMTJiNDk5Mzc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9VbmxpbmtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtD
b21tYW5kLmgKQEAgLTM5LDggKzM5LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBVbmxpbmtDb21tYW5kKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
OwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
RWRpdEFjdGlvblVubGluazsgfQorICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAgIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rp
b25Vbmxpbms7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgKaW5kZXggYWM0OWIxZGI2ZmI4ZWY5MzAwYWI3NTVm
MWQ5OGRkZWRlZmUwOWIyYi4uNWY0ZTczZWQ4MjBhMGEwNmRjZjYzZDUxMzI5YWNlYWYxZWU0YjM0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgKQEAgLTY4LDEw
ICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAgIC8vIFRocmVhZGFi
bGVMb2FkZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWRpbmcodW5zaWduZWQgbG9uZywgZG91YmxlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcsIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBzdHJp
bmdSZXN1bHQoKTsKICAgICBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXJSZXN1
bHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xF
SW5zdGFuY2VkQXJyYXlzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdMRUluc3Rh
bmNlZEFycmF5cy5oCmluZGV4IGNkMTZjMjNiZGI5Y2ZkYTQxMDFiZWFkNmU5N2Q0NDgwYzEyMzYy
YmUuLmQ0MTM4Mjc3ZmNhYmZjNjBiY2VkMWI0YWRjZjkzMjUzYjVjOWFmNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaApAQCAtMzYs
NyArMzYsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgQU5HTEVJbnN0YW5jZWRBcnJheXMoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogICAgIHZpcnR1YWwgfkFOR0xFSW5zdGFuY2VkQXJy
YXlzKCk7CiAKLSAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworICAg
IEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5k
ZXggM2YwN2RkZWVhZDFiZjljN2I3ZGY3YjBjNjg4Y2M4YmU3MjA3M2MxNS4uMjkwYWI4ZDNkNzBm
MzM3YTg2MzVhMjMxNjI3NmQ5MWRjNDNkNGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC04NSw3ICs4
NSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7CiAgICAgCiAgICAgVkFPVHlwZSBtX3R5cGU7CiAg
ICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU2lua0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50
LmgKaW5kZXggZjczOTI5NzBmMDA1YTk1YjZhMjQ2MjFjYTNjYzFmMzg1M2QwNmUwNS4uZjcwZjI4
Y2JjOTQ2MTZkMjMyYzM0MGIzY2I1NGY2ZmRjMGI5MDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
aW5rRG9jdW1lbnQuaApAQCAtMzgsOCArMzgsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
U2lua0RvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7Ci0gICAgCi0gICAgdmlydHVhbCBSZWY8
RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpOworCisgICAgUmVmPERvY3VtZW50UGFyc2Vy
PiBjcmVhdGVQYXJzZXIoKSBmaW5hbDsKIH07CiAKIH07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hp
dmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5o
CmluZGV4IGVmN2Q2YTIwNjEzY2FjOWYyYmZjMjU0Y2MyYzA5YzczZDY0MDZlNTEuLmNhMjAwMDM3
OWJkZjQxMmY0ZTQxMjRlYWYyMWFiYTY2YTE1ZTM0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5oCkBAIC00Miw3ICs0Miw3IEBA
IGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3MgTUhUTUxBcmNoaXZlIDogcHVibGljIEFyY2hp
dmUgewogcHVibGljOgotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gTUhU
TUw7IH0KKyAgICBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNSFRNTDsgfQog
CiAgICAgc3RhdGljIFJlZjxNSFRNTEFyY2hpdmU+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBSZWZQ
dHI8TUhUTUxBcmNoaXZlPiBjcmVhdGUoY29uc3QgVVJMJiwgU2hhcmVkQnVmZmVyJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAKaW5kZXggOWU1MzI3NTA2NThmZjRlODk2NzJiMGE3MjZlZGY1YTY3MjI1OTAwZC4uOTAx
NjUxMzA4MjljZjY3OTk4ZWU3ZjI0NDc0Yzg2ODg3NThmYTFlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
NDYxLDcgKzQ2MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lk
IGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0
IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBj
b25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5
bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3Vi
bGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICAoZHN0LT4qbV9zZXR0
ZXIpKGJsZW5kRnVuYyhhbmltLCAoYS0+KlByb3BlcnR5V3JhcHBlckdldHRlcjxUPjo6bV9nZXR0
ZXIpKCksIChiLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPFQ+OjptX2dldHRlcikoKSwgcHJvZ3Jl
c3MpKTsKICAgICB9CkBAIC00ODAsNyArNDgwLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVy
U3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBk
b3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNl
KiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVu
ZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIChkc3QtPiptX3NldHRlcikoYmxlbmRGdW5jKGFuaW0sIChhLT4qUHJvcGVydHlXcmFwcGVy
R2V0dGVyPFQqPjo6bV9nZXR0ZXIpKCksIChiLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPFQqPjo6
bV9nZXR0ZXIpKCksIHByb2dyZXNzKSk7CiAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25z
dCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQo
Y29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92
ZXJyaWRlCiAgICAgewogICAgICAgICAoZHN0LT4qbV9zZXR0ZXIpKGJsZW5kRnVuYyhhbmltLCAo
YS0+KlByb3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBUJj46Om1fZ2V0dGVyKSgpLCAoYi0+KlBy
b3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBUJj46Om1fZ2V0dGVyKSgpLCBwcm9ncmVzcykpOwog
ICAgIH0KQEAgLTk5OCw3ICs5OTgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZp
cnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBGaWxsTGF5ZXIqIGRz
dCwgY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIsIGRvdWJsZSBwcm9ncmVz
cykgY29uc3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIEZpbGxM
YXllciogZHN0LCBjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYiwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgKGRzdC0+Km1fc2V0dGVy
KShibGVuZEZ1bmMoYW5pbSwgKGEtPipGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8Y29u
c3QgVCY+OjptX2dldHRlcikoKSwgKGItPipGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8
Y29uc3QgVCY+OjptX2dldHRlcikoKSwgcHJvZ3Jlc3MpKTsKICAgICB9CkBAIC0xMDE3LDcgKzEw
MTcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBGaWxsTGF5ZXIqIGRzdCwgY29uc3QgRmlsbExheWVy
KiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2b2lk
IGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIEZpbGxMYXllciogZHN0LCBjb25zdCBG
aWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdCBv
dmVycmlkZQogICAgIHsKICAgICAgICAgKGRzdC0+Km1fc2V0dGVyKShibGVuZEZ1bmMoYW5pbSwg
KGEtPipGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8VCo+OjptX2dldHRlcikoKSwgKGIt
PipGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8VCo+OjptX2dldHRlcikoKSwgcHJvZ3Jl
c3MpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9N
dWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
TXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcAppbmRleCBkYmY0MzY5MzFiMzQ3M2YwMjVhY2M2MzAy
ODExYmJmMGJhZTM3MTJlLi44OTlhODE0MDViNTllNjFhNDdlOWM4YjI1NmIxNTcyMDYwMTBkOWUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxS
ZXNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hh
bm5lbFJlc2FtcGxlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgLy8gcHJv
dmlkZUlucHV0KCkgd2lsbCBiZSBjYWxsZWQgb25jZSBmb3IgZWFjaCBjaGFubmVsLCBzdGFydGlu
ZyB3aXRoIHRoZSBmaXJzdCBjaGFubmVsLgogICAgIC8vIEVhY2ggdGltZSBpdCdzIGNhbGxlZCwg
aXQgd2lsbCBwcm92aWRlIHRoZSBuZXh0IGNoYW5uZWwgb2YgZGF0YS4KLSAgICB2aXJ0dWFsIHZv
aWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCisg
ICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGJvb2wgaXNCdXNHb29kID0gYnVzICYmIGJ1cy0+
bnVtYmVyT2ZDaGFubmVscygpID09IDE7CiAgICAgICAgIEFTU0VSVChpc0J1c0dvb2QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcAppbmRleCA5
YTljNTQ2NzdhZGQ5OGVhZTg2MzM3ZGRmZDM3NjcyNGUzZmJiNGE5Li5jNGNjZTg2NmJkM2Y0ZDQ2
ZjU5NzU1OThjYTVmN2I0N2QyNmQ4OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgCiAgICAgLy8gQ29uc3VtZXMgc2FtcGxlcyBmcm9tIHRoZSBpbi1tZW1vcnkgYnVm
ZmVyLgotICAgIHZpcnR1YWwgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKKyAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
c291cmNlICYmIGJ1cyk7CiAgICAgICAgIGlmICghbV9zb3VyY2UgfHwgIWJ1cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IGZhMDY2MjI1ZjUyZjA0ZTAwMjRjMjQw
MTYwMGFjODQ2YWMyNTMzZjEuLjNiODlmZWJjNjI3YTQ3NjU4NmQyYzMzOGQyZjJmNTU5NzlhYzky
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtMzQsMTEgKzM0
LDExIEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxs
YmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpOwotICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCk7CisgICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwogCi0gICAgYm9vbCBpc1BsYXlpbmcoKSB7IHJldHVybiBtX2lzUGxheWluZzsgfQot
ICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KKyAg
ICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAg
ZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrOyB9CiAKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJj
ZVByb3ZpZGVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5oCmluZGV4IDcwZTY3YzMyZjA2ZDQz
YzljOTYyMjA5NGE3MWQ0NjhmYzhkMGEzODUuLjViNjQ4MGYzYTQzYmM1NDlkOTJhN2JiNDA0MWEy
N2QzM2YzZjA1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIu
aApAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbmZpZ3VyZUF1ZGlvQmlu
KEdzdEVsZW1lbnQqIGF1ZGlvQmluLCBHc3RFbGVtZW50KiB0ZWVQcmVkZWNlc3Nvcik7CiAKLSAg
ICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwot
ICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKTsKKyAgICB2b2lk
IHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBvdmVycmlk
ZTsKICAgICBjb25zdCBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgdm9pZCBoYW5kbGVOZXdEZWludGVybGVhdmVQYWQo
R3N0UGFkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggOGE1ZDZhMjcwZGM4MTM4Zjg2
YjA3OTFmOTM5ZGVlMmRiYmM3NDdiZi4uZDA2ZDNhMmRlMDZkMzA3Y2EwNjQ0NTMzZmZjYTkyYWY3
NzliN2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMzYsMTAgKzM2LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA6IHB1
YmxpYyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TnVs
bFRleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZSgp
IHsgfQotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIHsgcmV0dXJu
IG51bGxwdHI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSB7IH0K
LSAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzKCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9
CisgICAgdm9pZCB1cGRhdGUoKSBvdmVycmlkZSB7IH0KKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZvaWQgc2V0Q29u
dGVudFNjYWxlKGZsb2F0KSBvdmVycmlkZSB7IH0KKyAgICBJbnRSZWN0IGJvdW5kcygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogfTsKIAogI2lmICEoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGE3MGZkNmQxZTQxZGMwN2VhMjA0
MmIxMGI1MzFmODNiOTJhMTlkNDIuLjgxNThkM2QyODAxODdlMzYyNGM3ZjFjNTAxY2JlODlkOTNi
MWU1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMTc1LDcgKzE3NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJv
dW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7
IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNEcmF3aW5nSXRlbSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzRHJhd2luZ0l0ZW0oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gbV9leHRlbnQ7
IC8vIEluIGJhc2UgY29vcmRpbmF0ZXMsIHRha2luZyBzaGFkb3dzIGFuZCB0cmFuc2Zvcm1zIGlu
dG8gYWNjb3VudC4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDM0ZGJjZGJhYzg5NTM3MTgzYTAzMTI3ZmMzN2UzMTdk
MDFiMDYzNWYuLjFjNTBhNzdlYWE2YTc1YjU4Y2RjZDUwNTM5OTRhMDE0MmIxZWUyNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
CkBAIC00MCwxMCArNDAsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY29sb3JBcnJheUxlbmd0aCk7CiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5TkVPTih1
bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwgdW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJh
eUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1BcHBseVNvZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsK
IAogcHJpdmF0ZToKICAgICBGRUJsZW5kKEZpbHRlciYsIEJsZW5kTW9kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXgu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5oCmluZGV4IDU1ZWZjYzg5MTUzZDE3YTY0M2FhZDc1MDNjNWNhNzUxMWNkZGUxYjYuLjM2ZDNh
MjQzNzY5ZTQ0YjExN2ViNjJhODhjOGU3NzhmYWFhYjg2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBA
IC00NywxMCArNDcsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
cygpIGNvbnN0OwogICAgIGJvb2wgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAg
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGlubGluZSB2b2lkIGNhbGN1bGF0
ZVNhdHVyYXRlQ29tcG9uZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUpOwogICAg
IHN0YXRpYyBpbmxpbmUgdm9pZCBjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKGZsb2F0KiBj
b21wb25lbnRzLCBmbG9hdCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4
IGEzNGY0OTk2OTliZDVlYmUwYTkyN2YwODBhNTAwNjczM2ZlYjljMDIuLjY2MTk3NTVmMDQwYzMx
YmJkYzEzZmE5MWQxZDYyYTM2NGYzYTliMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5o
CkBAIC03NywxMCArNzcsMTAgQEAgcHVibGljOgogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24gYWxwaGFGdW5jdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0QWxwaGFGdW5jdGlvbihjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1BcHBseVNvZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsK
IAogcHJpdmF0ZToKICAgICBGRUNvbXBvbmVudFRyYW5zZmVyKEZpbHRlciYsIGNvbnN0IENvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb24mIGdyZWVuRnVuYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKaW5kZXggMDVkNjRhYTFlMTlj
MjU5MmE3ZTAyZDBiMDdhZGMyMDIwYzFlYzdlZi4uMDAxNDFmYTQ1NDc5NTE4NjljMjMxMTQ2YzVi
NTg1ZDRmMzBlZTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKQEAgLTY4LDEyICs2OCwxMiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZUFscGhhKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRQ
cmVzZXJ2ZUFscGhhKGJvb2wpOwogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CisgICAgdm9pZCBwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIHsgc2V0QWJzb2x1dGVQYWlu
dFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQorICAgIHZvaWQgZGV0
ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0
KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KIAotICAgIHZpcnR1YWwgVGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlv
bikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNl
TGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aWZmdXNlTGlnaHRpbmcuaAppbmRleCA5Mzc0ZDdhZGFlOGU5OTZhYjEwYTIwZDlkNjZjNjNmYzg3
MDc4MzNhLi41ZmUyYmU5ZjRhNWU3ZjJkZTg2M2MwZmE1OWMzYWE2NWY0NmE3ZTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxp
Z2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpZmZ1c2VMaWdodGluZy5oCkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBM
aWdodFNvdXJjZSogbGlnaHRTb3VyY2UoKSBjb25zdDsKICAgICB2b2lkIHNldExpZ2h0U291cmNl
KFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+KTsKIAotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7Cisg
ICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAg
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZFRGlmZnVzZUxpZ2h0aW5n
KEZpbHRlciYsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFBhc3NS
ZWZQdHI8TGlnaHRTb3VyY2U+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCmluZGV4IDlhNWM0OTE3YjYyOTJkYzBi
ZDM5NjQwYjMzYTA1ZWUxZGJmNjAxYTEuLjM2YzlkNzRiNWJlMzUwNmIxY2EyNTAxZTE3YTQxZjc5
MDdlMDg2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaApAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1YmxpYzoKICAg
ICBmbG9hdCBzaGFkb3dPcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFkb3dPcGFjaXR5OyB9
CiAgICAgdm9pZCBzZXRTaGFkb3dPcGFjaXR5KGZsb2F0IHNoYWRvd09wYWNpdHkpIHsgbV9zaGFk
b3dPcGFjaXR5ID0gc2hhZG93T3BhY2l0eTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CisgICAgdm9pZCBwbGF0
Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOworICAgIHZv
aWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVu
dGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0
U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAg
RkVEcm9wU2hhZG93KEZpbHRlciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBjb25zdCBD
b2xvciYsIGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCBjZTIzMjhjMzgxYTk1ZjY1ODE2
ODlhODVlN2Y5OWQyZjc4NDZhNTAxLi4wNzQ4YTIyM2Q2NDEwMzdhZDk0NDU4ZWZhMTE2ZWE2Mzdk
MmEwMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC00MSwxNCArNDEsMTQgQEAgcHVibGljOgog
ICAgIEVkZ2VNb2RlVHlwZSBlZGdlTW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0RWRnZU1vZGUo
RWRnZU1vZGVUeXBlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKTsKKyAgICB2b2lkIGRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRl
S2VybmVsU2l6ZShjb25zdCBGaWx0ZXImLCBjb25zdCBGbG9hdFBvaW50JiBzdGREZXZpYXRpb24p
OwogICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShjb25zdCBG
bG9hdFBvaW50JiBzdGREZXZpYXRpb24pOwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAg
ICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5k
ZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgaW50
IHNfbWluaW1hbFJlY3REaW1lbnNpb24gPSAxMDAgKiAxMDA7IC8vIEVtcGlyaWNhbCBkYXRhIGxp
bWl0IGZvciBwYXJhbGxlbCBqb2JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IDBkMWM3NDQwZTM4ZjYyN2I3YTMx
MGFjNDZlZmFjYTdhZGVlMGNlZWUuLmJhZmJmNDdjNDVlZjQ4MDMyNzgwYWI5YWUzOWJjMjZjMDEw
YmU4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5oCkBAIC00Myw5ICs0Myw5IEBAIHN0cnVjdCBGRUxpZ2h0aW5nUGFp
bnRpbmdEYXRhRm9yTmVvbjsKIAogY2xhc3MgRkVMaWdodGluZyA6IHB1YmxpYyBGaWx0ZXJFZmZl
Y3QgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsK
KyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50UmVj
dChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CisgICAgdm9pZCBkZXRlcm1p
bmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5j
bG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgc3Rh
dGljIGNvbnN0IGludCBzX21pbmltYWxSZWN0RGltZW5zaW9uID0gMTAwICogMTAwOyAvLyBFbXBp
cmljYWwgZGF0YSBsaW1pdCBmb3IgcGFyYWxsZWwgam9icwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAppbmRleCA5MjlhMTNiNjY5ZWQ2
OTRlYjVlNGIwZGFjM2NiYmExMGM4NzQwYTdlLi42MjBmMjIwNWUwNzYyMzQxNGExOThlMmE3NTZk
NzRmMWU2OGY0ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMzEsMTAgKzMxLDEwIEBAIGNsYXNzIEZFTWVyZ2UgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZFTWVyZ2U+IGNy
ZWF0ZShGaWx0ZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4
dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IEZFTWVyZ2UoRmlsdGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCBlNDYzN2JmYWUzOTFiNGZlMmI2
NjkzMmI5MzI5NzI1YjgxYTU2Njc3Li4wNTBmYzczZDUwZjFmYjA4MTliYWE0NTdmMGQ4NTgxMDMx
MjJkOWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTQ2LDEyICs0NiwxMiBAQCBwdWJsaWM6CiAgICAg
ZmxvYXQgcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQogICAgIGJvb2wgc2V0
UmFkaXVzWShmbG9hdCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7CisgICAgdm9pZCBkZXRlcm1pbmVB
YnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsK
KyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQg
aW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0cnVjdCBQYWludGluZ0RhdGEgewog
ICAgICAgICBVaW50OENsYW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCBiYjYy
Yzc4MDg3MjlhNmEyZDRmNTBlZTc2YjJiZDk4MTZlN2VhZjE1Li5mMTk2ZDQ5ZTNkMDYwYjVkNmZj
ZjAzZDI2MmI2NTcwZjEwYzg0MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC0zNywxMiArMzcsMTIgQEAgcHVibGlj
OgogICAgIGZsb2F0IGR5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXREeShmbG9hdCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1
bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZHVtcCgpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNv
bHV0ZVBhaW50UmVjdCgpOworICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRkVPZmZzZXQoRmlsdGVyJiwgZmxvYXQgZHgsIGZsb2F0
IGR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmluZGV4IDlkNjc3MjJkMjBkNWNmMjk5YWYy
ZmZhMzg5MWRlOTljMzMwYTBjNmYuLmUwNGY0NDM2YWE2ODIyODE3Y2Q2OWE2NTE0MTM1YzY4ZDU3
NjVhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaApAQCAtNTMsOSArNTMsOSBAQCBwdWJs
aWM6CiAgICAgY29uc3QgTGlnaHRTb3VyY2UqIGxpZ2h0U291cmNlKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRMaWdodFNvdXJjZShQYXNzUmVmUHRyPExpZ2h0U291cmNlPik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZHVtcCgpOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50
aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBG
RVNwZWN1bGFyTGlnaHRpbmcoRmlsdGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCwgZmxvYXQsIGZs
b2F0LCBmbG9hdCwgZmxvYXQsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCmluZGV4IGIyODAw
NzY3NGFkZTU4ODg4ZDg1ZjY2MjczZDAzOWVjZDFlMDQ3OWYuLmMyNjRjZWZhNDdlYjE2ODQzZDRh
NDRkMzFkYjA1N2Q1ZGVjMTNlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaApAQCAtMzEsMTQgKzMxLDE0IEBAIGNsYXNzIEZFVGls
ZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RkVUaWxl
PiBjcmVhdGUoRmlsdGVyJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50
UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CisgICAgdm9pZCBkZXRl
cm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3Qo
ZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQogCi0gICAgdmlydHVhbCBGaWx0
ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBGaWx0ZXJFZmZl
Y3RUeXBlVGlsZTsgfQorICAgIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVUaWxlOyB9CiAKLSAgICB2aXJ0
dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBp
bmRlbnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
VGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIEZFVGlsZShGaWx0ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IGNiNGFlYTQ5ZWVhNDFiYjcw
ZjI2Y2JiZDI4ZjQ5ZjBmMmMyYTYyMmYuLjQ5ODdlM2Q5Nzc1NWQ2OGU5MzE5NDYzODliNzA2OTU4
Y2VlOTljMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtNTksMTIgKzU5LDEyIEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyB2b2lkIGZpbGxSZWdpb25Xb3JrZXIodm9pZCopOwogCi0gICAgdmlydHVhbCB2
b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7Cisg
ICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
KSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWlu
dFJlY3QoKSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0
UmVjdCgpKSk7IH0KKyAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJp
ZGUgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3Qo
KSkpOyB9CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
VGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OworICAgIFRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBpbnQgc19ibG9ja1NpemUgPSAyNTY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmgKaW5kZXggY2FiNTZhYjNjZGJjMzQ4NzMzY2FkZmI2MDg3Mjc4ODg0ZDE0MWYx
NS4uZGVlZjMyNDI3YzA4MDNiZWZlZWQ0YTNkNTU4YTc2ZWIzMmQ2NGU5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
aApAQCAtMzEsMTQgKzMxLDE0IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIGVmZmVjdE5hbWUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29m
dHdhcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKTsKKyAgICB2b2lkIGRldGVy
bWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZpbHRlckVm
ZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5
cGVTb3VyY2VJbnB1dDsgfQorICAgIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dDsgfQog
Ci0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3VyY2VBbHBoYShGaWx0ZXJFZmZlY3QmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmgKaW5kZXggMzk2OWZjNmMyODg1Y2RiMzFhZTlhZDZlZjk1YjAzZTllNjZkOGM4Yi4u
M2ZmZDI0OTFiOWEzYzcxN2FlMjBhYjkyOTZhMjgwOTQ0OWM3ODQ3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGlj
LmgKQEAgLTMyLDE0ICszMiwxNCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBlZmZlY3ROYW1lKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNv
ZnR3YXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKKyAgICB2b2lkIHBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZHVtcCgpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7CisgICAgdm9pZCBkZXRl
cm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBGaWx0ZXJF
ZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBGaWx0ZXJFZmZlY3RU
eXBlU291cmNlSW5wdXQ7IH0KKyAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlU291cmNlSW5wdXQ7IH0K
IAotICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CiAgICAgU291cmNlR3JhcGhpYyhGaWx0ZXImIGZpbHRlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
M0RPcGVuR0wuaAppbmRleCA3ZDcyMjFhZDI4Nzg0OGExOGE1ODcyNGU0YjZjNDRmYTk3MzlhZDQ5
Li5hODFlNWI4N2Y2NGMzZjFkNzc0NjI0YjE4YWQ1YTRkNjMwZTYzNzk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTC5oCkBAIC00MSwyNSArNDEsMjUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkV4
dGVuc2lvbnMzRE9wZW5HTCgpOwogCiAgICAgLy8gRXh0ZW5zaW9uczNEIG1ldGhvZHMuCi0gICAg
dmlydHVhbCB2b2lkIGJsaXRGcmFtZWJ1ZmZlcihsb25nIHNyY1gwLCBsb25nIHNyY1kwLCBsb25n
IHNyY1gxLCBsb25nIHNyY1kxLCBsb25nIGRzdFgwLCBsb25nIGRzdFkwLCBsb25nIGRzdFgxLCBs
b25nIGRzdFkxLCB1bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxvbmcgZmlsdGVyKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIHNhbXBsZXMsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxm
b3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAgICB2
b2lkIGJsaXRGcmFtZWJ1ZmZlcihsb25nIHNyY1gwLCBsb25nIHNyY1kwLCBsb25nIHNyY1gxLCBs
b25nIHNyY1kxLCBsb25nIGRzdFgwLCBsb25nIGRzdFkwLCBsb25nIGRzdFgxLCBsb25nIGRzdFkx
LCB1bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxvbmcgZmlsdGVyKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh1bnNpZ25lZCBsb25nIHRhcmdl
dCwgdW5zaWduZWQgbG9uZyBzYW1wbGVzLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1
bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlVmVydGV4QXJyYXlPRVMoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAg
dmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGluc2VydEV2ZW50TWFya2VyRVhUKGNvbnN0IFN0cmluZyYpOwotICAg
IHZpcnR1YWwgdm9pZCBwdXNoR3JvdXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJik7Ci0gICAgdmly
dHVhbCB2b2lkIHBvcEdyb3VwTWFya2VyRVhUKHZvaWQpOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3
QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0IEdDM0RlbnVtKik7CisgICAgUGxhdGZvcm0zRE9i
amVjdCBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpIG92ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4g
aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJp
bmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGlu
c2VydEV2ZW50TWFya2VyRVhUKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgcHVz
aEdyb3VwTWFya2VyRVhUKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgcG9wR3Jv
dXBNYXJrZXJFWFQodm9pZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNE
c2l6ZWksIGNvbnN0IEdDM0RlbnVtKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
d0FycmF5c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkg
Y291bnQsIEdDM0RzaXplaSBwcmltY291bnQpOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3RWxlbWVu
dHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBl
LCBsb25nIGxvbmcgb2Zmc2V0LCBHQzNEc2l6ZWkgcHJpbWNvdW50KTsKLSAgICB2aXJ0dWFsIHZv
aWQgdmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7
CisgICAgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmly
c3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50
LCBHQzNEZW51bSB0eXBlLCBsb25nIGxvbmcgb2Zmc2V0LCBHQzNEc2l6ZWkgcHJpbWNvdW50KSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdD
M0R1aW50IGRpdmlzb3IpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZ2V0RXh0ZW5zaW9ucygpOworICAgIGJvb2wgc3VwcG9ydHNFeHRlbnNpb24oY29uc3QgV1RG
OjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgZ2V0RXh0ZW5zaW9ucygpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgogI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExB
VEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbi5oCmluZGV4IGE5ZDJjY2NiY2ExMmZmZDU0M2MxZGVjZTZkMDZmYzk2NjUwNjMzZDQuLjdj
NjE0ZmI0MDMzNThlYTQwNDU2ZDg0NjJjZjhkYzViYzNhNGViMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21t
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMQ29tbW9uLmgKQEAgLTM5LDMzICszOSwzMyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uKCk7CiAKICAgICAvLyBFeHRlbnNpb25zM0Qg
bWV0aG9kcy4KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJik7Ci0gICAg
dmlydHVhbCB2b2lkIGVuc3VyZUVuYWJsZWQoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBi
b29sIGlzRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGludCBnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzQVJCKCk7CisgICAgYm9vbCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGVuc3VyZUVuYWJsZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBpc0VuYWJsZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgaW50IGdldEdy
YXBoaWNzUmVzZXRTdGF0dXNBUkIoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGxhdGZvcm0z
RE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwotICAgIHZpcnR1YWwgR0Mz
RGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAg
UGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpIG92ZXJyaWRlID0gMDsKKyAg
ICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlID0g
MDsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlID0gMDsKKyAgICB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0
KSBvdmVycmlkZSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNp
emVpLCBjb25zdCBHQzNEZW51bSopID0gMDsKKyAgICB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0Rz
aXplaSwgY29uc3QgR0MzRGVudW0qKSBvdmVycmlkZSA9IDA7CiAKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CisgICAg
U3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KSBv
dmVycmlkZTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gdXNlcyBnZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCKCkKLSAgICB2aXJ0dWFsIHZvaWQgcmVhZG5QaXhlbHNFWFQoaW50IHgsIGludCB5
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RGVudW0gdHlwZSwgR0MzRHNpemVpIGJ1ZlNpemUsIHZvaWQgKmRhdGEpOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRuVW5pZm9ybWZ2RVhUKEdDM0R1aW50IHByb2dyYW0sIGludCBsb2NhdGlvbiwgR0Mz
RHNpemVpIGJ1ZlNpemUsIGZsb2F0ICpwYXJhbXMpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRuVW5p
Zm9ybWl2RVhUKEdDM0R1aW50IHByb2dyYW0sIGludCBsb2NhdGlvbiwgR0MzRHNpemVpIGJ1ZlNp
emUsIGludCAqcGFyYW1zKTsKLQotICAgIHZpcnR1YWwgYm9vbCBpc05WSURJQSgpIHsgcmV0dXJu
IG1faXNOVklESUE7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBTUQoKSB7IHJldHVybiBtX2lzQU1E
OyB9Ci0gICAgdmlydHVhbCBib29sIGlzSW50ZWwoKSB7IHJldHVybiBtX2lzSW50ZWw7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNJbWFnaW5hdGlvbigpIHsgcmV0dXJuIG1faXNJbWFnaW5hdGlvbjsg
fQotICAgIHZpcnR1YWwgU3RyaW5nIHZlbmRvcigpIHsgcmV0dXJuIG1fdmVuZG9yOyB9Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNCdWlsdEluRnVuY3Rpb25FbXVsYXRpb24oKSB7IHJldHVy
biBtX3JlcXVpcmVzQnVpbHRJbkZ1bmN0aW9uRW11bGF0aW9uOyB9Ci0gICAgdmlydHVhbCBib29s
IHJlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZSgpIHsgcmV0dXJuIG1fcmVxdWly
ZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVTaXplOyB9CisgICAgdm9pZCByZWFkblBpeGVsc0VY
VChpbnQgeCwgaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgdm9pZCAqZGF0YSkg
b3ZlcnJpZGU7CisgICAgdm9pZCBnZXRuVW5pZm9ybWZ2RVhUKEdDM0R1aW50IHByb2dyYW0sIGlu
dCBsb2NhdGlvbiwgR0MzRHNpemVpIGJ1ZlNpemUsIGZsb2F0ICpwYXJhbXMpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0blVuaWZvcm1pdkVYVChHQzNEdWludCBwcm9ncmFtLCBpbnQgbG9jYXRpb24s
IEdDM0RzaXplaSBidWZTaXplLCBpbnQgKnBhcmFtcykgb3ZlcnJpZGU7CisKKyAgICBib29sIGlz
TlZJRElBKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc05WSURJQTsgfQorICAgIGJvb2wgaXNBTUQo
KSBvdmVycmlkZSB7IHJldHVybiBtX2lzQU1EOyB9CisgICAgYm9vbCBpc0ludGVsKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc0ludGVsOyB9CisgICAgYm9vbCBpc0ltYWdpbmF0aW9uKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc0ltYWdpbmF0aW9uOyB9CisgICAgU3RyaW5nIHZlbmRvcigpIG92ZXJy
aWRlIHsgcmV0dXJuIG1fdmVuZG9yOyB9CisKKyAgICBib29sIHJlcXVpcmVzQnVpbHRJbkZ1bmN0
aW9uRW11bGF0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZXF1aXJlc0J1aWx0SW5GdW5jdGlv
bkVtdWxhdGlvbjsgfQorICAgIGJvb2wgcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVT
aXplKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVy
ZVNpemU7IH0KIAogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVu
R0xFUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCmluZGV4IGNmMGIwN2Q1
NmFlYjBiZjY3OGYxOWM3MGE1ODVhNDFmYzdkM2ExYmEuLmY0MmFkZWZhN2YzYjU0MjRhMDZjMTRi
MzRkZTUzNWM4ZWZjZGIwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUu
aApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgVGV4dHVyZU1h
cHBlckJhY2tpbmdTdG9yZSA6IHB1YmxpYyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciwgcHVi
bGljIFJlZkNvdW50ZWQ8VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZT4gewogcHVibGljOgogICAg
IHZpcnR1YWwgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KSA9IDA7CisgICAg
dm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCkgb3ZlcnJpZGUgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciYsIGludCAvKiBy
ZXBhaW50Q291bnQgKi8sIGNvbnN0IENvbG9yJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmKSB7IH0KICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dy
LmgKaW5kZXggNTg4Y2EyYjFiMzY4YzdjZjZmNWNkMTc2Y2Q5ZDU0MjMyMTcwYTU2Yi4uYjk4OTlm
MWM3ZmI4MGYyYzIyZTJiZDZmZmM4ZWUxZDEzYjViMmY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNl
T3dyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgKQEAgLTcyLDggKzcyLDggQEAgUmVhbHRpbWVNZWRp
YVNvdXJjZU93cihjb25zdCBTdHJpbmcmIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5
cGUsIGNvbnN0IFMKICAgICAgICAgc2V0TXV0ZWQoZmFsc2UpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygp
IGNvbnN0IHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9Ci0gICAgdmlydHVhbCBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CisgICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgT3dyTWVkaWFT
b3VyY2UqIG1lZGlhU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suaAppbmRleCA4Y2VlYjE5YWI4MTQyNmNmYWU0OTRjMDE1NThmYjRjOWM5Y2ZjNzc2Li5iMTM5
ODc3Mjk5ZWJiMmUxNTAyYjdlYWJiZjZkY2U1NDQ2ZjMwYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgKQEAgLTYwLDEz
ICs2MCwxMyBAQCBwdWJsaWM6CiAgICAgaW50IG51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1
ZXN0cygpIGNvbnN0OwogCiAgICAgLy8gR2VvbG9jYXRpb25DbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGlu
ZygpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwotICAgIHZpcnR1YWwgR2VvbG9jYXRpb25Qb3Np
dGlvbiogbGFzdFBvc2l0aW9uKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
KEdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0
KEdlb2xvY2F0aW9uKik7CisgICAgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0
aW5nKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3Zl
cnJpZGU7CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiopIG92ZXJyaWRlOworICAg
IHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24qKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICB2b2lkIGFzeW5jVXBkYXRlQ29udHJvbGxlcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmgKaW5kZXggOGY3ZDY3MzgxZDJkZTc3NTA0
MjQxZjU3NjE3YTBjZmZmNTcyOTQwZC4uMGMxNzk4YzliZjdhZTUzZWI3YzM3ZGU1ZjQyOGM0YjE3
ZTc1ZDA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29k
ZWNJQ1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5o
CkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB+
VGV4dENvZGVjSUNVKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFN0cmluZyBk
ZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9u
RXJyb3IsIGJvb2wmIHNhd0Vycm9yKTsKLSAgICAgICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShj
b25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpOworICAgICAg
ICBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBi
b29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikgb3ZlcnJpZGU7CisgICAgICAgIENTdHJp
bmcgZW5jb2RlKGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCwgVW5lbmNvZGFibGVIYW5kbGlu
Zykgb3ZlcnJpZGU7CiAKICAgICAgICAgdm9pZCBjcmVhdGVJQ1VDb252ZXJ0ZXIoKSBjb25zdDsK
ICAgICAgICAgdm9pZCByZWxlYXNlSUNVQ29udmVydGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0xhdGluMS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNMYXRpbjEuaAppbmRleCAyZTM4NjJmZTIwNDQ2
YjllMmQ2ODAzMDgyMTJiZTMwNWFhY2NmYjAxLi45ZDA4YWEzZjU5NzRlOTYyYTE1NDFkMDNlZDc5
ZGY5YmNhMmRlNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlY0xhdGluMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENv
ZGVjTGF0aW4xLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBzdGF0aWMgdm9pZCByZWdpc3RlckVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFy
KTsKICAgICAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0cmFy
KTsKIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyBkZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBs
ZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKTsKLSAg
ICAgICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgs
IFVuZW5jb2RhYmxlSGFuZGxpbmcpOworICAgICAgICBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIq
LCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdF
cnJvcikgb3ZlcnJpZGU7CisgICAgICAgIENTdHJpbmcgZW5jb2RlKGNvbnN0IFVDaGFyKiwgc2l6
ZV90IGxlbmd0aCwgVW5lbmNvZGFibGVIYW5kbGluZykgb3ZlcnJpZGU7CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNVVEYxNi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWNVVEYxNi5oCmluZGV4IDU3ODMxYjBjOTlhZjY4MDNlMmRjZmMwYWRkNDQ3N2NlNzNiYTY5
M2IuLjI4NzYwY2RlZTZkY2IyYThlZjZmYmM5NmI1YTgyODlmMGZhMzI1ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmgKQEAgLTM3LDggKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFRleHRDb2RlY1VURjE2KGJvb2wgbGl0
dGxlRW5kaWFuKSA6IG1fbGl0dGxlRW5kaWFuKGxpdHRsZUVuZGlhbiksIG1faGF2ZUJ1ZmZlcmVk
Qnl0ZShmYWxzZSkgeyB9CiAKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgZGVjb2RlKGNvbnN0IGNo
YXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0b3BPbkVycm9yLCBib29sJiBz
YXdFcnJvcik7Ci0gICAgICAgIHZpcnR1YWwgQ1N0cmluZyBlbmNvZGUoY29uc3QgVUNoYXIqLCBz
aXplX3QgbGVuZ3RoLCBVbmVuY29kYWJsZUhhbmRsaW5nKTsKKyAgICAgICAgU3RyaW5nIGRlY29k
ZShjb25zdCBjaGFyKiwgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbCBzdG9wT25FcnJv
ciwgYm9vbCYgc2F3RXJyb3IpIG92ZXJyaWRlOworICAgICAgICBDU3RyaW5nIGVuY29kZShjb25z
dCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpIG92ZXJyaWRlOwog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX2xpdHRsZUVuZGlhbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGOC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEY4LmgKaW5kZXggOTQzMDVjZTE4ZjIzMDVj
OGI2ZmE1OGViMWYxNWMzN2MyY2YzYzM0Yy4uNTkwZmQ1YzBkNWUzNWNmNTY4NTBiZGQyN2UyMzdj
NzIxMzliYTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWNVVEY4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNV
VEY4LmgKQEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
Q29kZWNzKFRleHRDb2RlY1JlZ2lzdHJhcik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJp
bmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0
b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcik7Ci0gICAgdmlydHVhbCBDU3RyaW5nIGVuY29kZShj
b25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpOworICAgIFN0
cmluZyBkZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wg
c3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKSBvdmVycmlkZTsKKyAgICBDU3RyaW5nIGVuY29k
ZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlSGFuZGxpbmcpIG92ZXJy
aWRlOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgogICAgIGJvb2wgaGFuZGxl
UGFydGlhbFNlcXVlbmNlKENoYXJUeXBlKiYgZGVzdGluYXRpb24sIGNvbnN0IHVpbnQ4X3QqJiBz
b3VyY2UsIGNvbnN0IHVpbnQ4X3QqIGVuZCwgYm9vbCBmbHVzaCwgYm9vbCBzdG9wT25FcnJvciwg
Ym9vbCYgc2F3RXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0Q29kZWNVc2VyRGVmaW5lZC5oCmluZGV4IGFmNjE0OWVjOTk3ZTllOGJlZTAyMDg1OGM5OGUz
MmIzN2JlNjg1NTYuLjU4MjFjYTM3ODE1MTkxZWNiMmEwYzU3OGZlMzIzZmQ4NTRhZDVlMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmlu
ZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZp
bmVkLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0
aWMgdm9pZCByZWdpc3RlckVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFyKTsKICAg
ICAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0cmFyKTsKIAot
ICAgICAgICB2aXJ0dWFsIFN0cmluZyBkZWNvZGUoY29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgs
IGJvb2wgZmx1c2gsIGJvb2wgc3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKTsKLSAgICAgICAg
dmlydHVhbCBDU3RyaW5nIGVuY29kZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFVuZW5j
b2RhYmxlSGFuZGxpbmcpOworICAgICAgICBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXpl
X3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikg
b3ZlcnJpZGU7CisgICAgICAgIENTdHJpbmcgZW5jb2RlKGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxl
bmd0aCwgVW5lbmNvZGFibGVIYW5kbGluZykgb3ZlcnJpZGU7CiAgICAgfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3Jl
ZW4uY3BwCmluZGV4IDMyNjQ3OWVkNzI2ODUzZmU3MDI2ZTI5N2E5MzJkMzIzOWYyMWNhNGYuLmFm
YWNmYmM4MzJmNWM5ZDc1MmI3ZTM0OWFlMjM4MjcwOWZmZjhkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTQzLDggKzQzLDggQEAgcHVi
bGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGdWxsU2Ny
ZWVuUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxCZURlc3Ryb3llZCgpOworICAgIGJvb2wgaXNSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xk
ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKICAgICBSZW5kZXJGdWxsU2NyZWVuJiBtX293bmVyOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmgKaW5kZXggMDljMmZjZTFlYTNmMGVhMjAw
MDBlMzNkMDgxNTRjOTRjYmE4Y2MyMi4uYWMxOGFhYzlmOGYzOGU1ZmZjODkyMmNmZWM3ZmE0MzYz
NjY1ZjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5oCkBAIC01OSw3ICs1
OSw3IEBAIHB1YmxpYzoKICAgICAvLyBOZWVkZWQgb25jZSB3ZSBzdXBwb3J0IGluaXQ8Ymxhbms+
RXZlbnROUwogICAgIC8vIHZvaWQgaW5pdFN0b3JhZ2VFdmVudE5TKGluIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksIGluIERPTVN0cmluZyB0eXBlQXJnLCBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywg
aW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCBpbiBET01TdHJpbmcga2V5QXJnLCBpbiBET01TdHJp
bmcgb2xkVmFsdWVBcmcsIGluIERPTVN0cmluZyBuZXdWYWx1ZUFyZywgaW4gRE9NU3RyaW5nIHVy
bEFyZywgU3RvcmFnZSBzdG9yYWdlQXJlYUFyZyk7CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJm
YWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Q7CisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRl
cmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBTdG9yYWdlRXZlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKaW5k
ZXggZDZiOTlhZjU5YmViZjk2NTIwZjA3NTBmY2E0M2U1MWExMTkxMjBmZi4uOWIwZDQyMDMyZTg4
ZTBjMTBlMTlkYTdhYTliNTFiZGU3M2VmOWFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKQEAgLTQ3MCw3ICs0NzAsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGNvbW1pdENoYW5nZSgpID0gMDsKKyAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRl
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb24pCiAg
ICAgewogICAgICAgICBjb21taXRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRl
eCBiMTkyZTY3OTVjMDc1NGQwOTk5MzcxOWJjNzY3ODA3ZmEyMmZmNTNjLi43ODY4NzRkY2EwMTE2
OGMyZWM0YzQ3MGEyZDczNzBhMjZmYjIyY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCkBA
IC04MiwyNCArODIsMjQgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFkT25seSgpIGNvbnN0CisgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBtX3JvbGUgPT0gQW5pbVZhbFJvbGU7CiAgICAg
fQogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpCisgICAgdm9pZCBjb21taXRDaGFu
Z2UoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAg
bV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50KTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5
cGUmLCB1bnNpZ25lZCopCisgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNv
bnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8v
IG5vLW9wIGZvciBzdGF0aWMgbGlzdHMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0
ZW1UZWFyT2ZmPiYsIHVuc2lnbmVkKikKKyAgICBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVt
V3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5
VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgKaW5kZXggZjExMDZkNzJjOGFmNzUzMDk5ODVmNzA1OGMyNWVlOTIxMjVlOTdi
ZC4uNWUyY2EwOWEwZGQ5ZmFmNDY4NTNlYmRhOTdjOWY4MGYzMDU2NTFlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFy
T2ZmLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQogCi0gICAg
dmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpIHsgKG1fY29udGV4dEVsZW1lbnQuZ2V0KCktPipt
X3VwZGF0ZSkoKTsgfQorICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwgeyAobV9jb250ZXh0
RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHU3RhdGlj
UHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlU
eXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuaAppbmRleCA5ZDMyYjNiNjYzMWQxN2IwYjZkNGQ3MDZhMTUyYzgz
NWMzMzUyYjRlLi4wMjY0MjA3Yzg5NTY2YzIxZWYwOWRjMWQ0ZDIxNGM1MThkZDAxY2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oCkBAIC0zNyw3ICszNyw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5hdGl2ZVhQYXRoTlNSZXNvbHZlcj4gY3JlYXRl
KFJlZlB0cjxOb2RlPiYmIG5vZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlWFBhdGhO
U1Jlc29sdmVyKFdURk1vdmUobm9kZSkpKTsgfQogICAgIHZpcnR1YWwgfk5hdGl2ZVhQYXRoTlNS
ZXNvbHZlcigpOwogCi0gICAgdmlydHVhbCBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0
IFN0cmluZyYgcHJlZml4KTsKKyAgICBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0
cmluZyYgcHJlZml4KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOYXRpdmVY
UGF0aE5TUmVzb2x2ZXIoUmVmUHRyPE5vZGU+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oCmluZGV4IDc1NWIyYTcxYWFhZDAxMTA1MDY2
YzZlYTgxMjIzYjUwZTVjMjk2ZmUuLmMwYWVkZGQyZGRlMTI5NDM1MDk0YjUyYTAxNTNhNzUyMjA5
YmVmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGxvYWRlZCgpOyB9CiAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIHRvdGFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRvdGFsKCk7IH0KIAotICAgIHZpcnR1
YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCB7IHJldHVybiBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRJbnRlcmZhY2VUeXBlOyB9CisgICAgRXZlbnRJbnRlcmZhY2Ug
ZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZhdGU6CiAgICAgWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBsZW5ndGhDb21w
dXRhYmxlLCB1bnNpZ25lZCBsb25nIGxvbmcgbG9hZGVkLCB1bnNpZ25lZCBsb25nIGxvbmcgdG90
YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZS5oCmluZGV4IDk3MWJkMjM0MmMwNTZiMTE1OGI0MDE5ZmIyYjNhYTI1
MDM0ODRhOGQuLjc4MWQ2ZWNlNmU1NzUyMzE5ZjRjNjNmYWQ0YTYwYTkyNGZlNDgzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWxJ
blNlY29uZHM7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKTsKKyAgICB2b2lkIGZpcmVkKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlZmVycmVkRXZlbnRzKCk7CiAgICAgdm9pZCBm
bHVzaFByb2dyZXNzRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oCmluZGV4IGI5NWIzNzNi
MjMzYjZmNmUzNzA1NWJiMzQ3MTM4NzM4ZmJkMThjYzQuLmRjNmU3NGVkYjM4YzJkYzFiYjUzNDA3
YmMyNmU0YmZiZjI4NGVkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZh
cmlhYmxlUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFyaWFibGVS
ZWZlcmVuY2UuaApAQCAtMzUsOCArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHB1YmxpYzoKICAgICAgICAgICAgIGV4cGxpY2l0IFZhcmlhYmxlUmVmZXJlbmNlKGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVl
IGV2YWx1YXRlKCkgY29uc3Q7Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3Vs
dFR5cGUoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gVmFsdWU6Ok51bWJl
clZhbHVlOyB9CisgICAgICAgICAgICBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgICAgICAgICAgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KICAgICAgICAg
ICAgIFN0cmluZyBtX25hbWU7CiAgICAgICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xJbXBvcnRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVs
ZS5oCmluZGV4IDAzOTJlMTMyZWViNjNiMTJjZjhjMTUxMWM1NTI3YmUyOGU4ZDdmM2QuLmYzZjlm
ZmUzOGQxMTc3NzdhMGYwYzk0MTQxNzFlNmNmMDdkOWM5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTElt
cG9ydFJ1bGUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkU2hlZXQo
KTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29u
c3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgc2hlZXQp
OworICAgIHZvaWQgc2V0WFNMU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVS
TCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBzaGVldCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgWFNM
U3R5bGVTaGVldCogbV9wYXJlbnRTdHlsZVNoZWV0OwogICAgIFN0cmluZyBtX3N0ckhyZWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2Nh
dGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRH
ZW9sb2NhdGlvblByb3ZpZGVyLmgKaW5kZXggNjc3YmFjMjFiZDJiZmFjOWYyMzhlZTI5MDg3NDBk
OWMzMGIwZTA1Yy4uZTE4ZGM1NmFjMTk5ODM3NDE1N2NlMWRiY2I3MzY0NmUyMjJlYWNiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEdlb2xvY2F0aW9uUHJvdmlkZXIuaApAQCAtNDIsOCArNDIsOCBAQCBwcml2YXRlOgogICAgIFdl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqKTsKIAog
ICAgIC8vIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlQ2xpZW50IGludGVyZmFjZS4KLSAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGludCwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlLCBkb3VibGUpOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvck9jY3Vy
cmVkKGNvbnN0IGNoYXIqKTsKKyAgICB2b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChpbnQsIGRv
dWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2b2lk
IG5vdGlmeUVycm9yT2NjdXJyZWQoY29uc3QgY2hhciopIG92ZXJyaWRlOwogCiAgICAgUmVmUHRy
PFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlcjsKICAgICBX
ZWJDb3JlOjpHZW9sb2NhdGlvblByb3ZpZGVyR2VvY2x1ZSBtX3Byb3ZpZGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQ
cm94eS5oCmluZGV4IDcwYmFjNWU1MjVhYjRkNTExMTZiOGIzOTcyNjJhZTJmYjg3MGE4MWMuLmY2
ZjZlYzNiNDgwOTM4OTJjMWZkMGQyMzMxMDM5YTRkZDJhOTllNDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkoV2ViRnJhbWVQcm94eSosIHVpbnQ2NF90IGxpc3RlbmVySUQpOwog
Ci0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisgICAg
VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAjaWYgREVM
RUdBVEVfUkVGX0NPVU5USU5HX1RPX0NPQ09BCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVf
dCBzaXplKSB7IHJldHVybiBuZXdPYmplY3Qoc2l6ZSwgQVBJVHlwZSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaApp
bmRleCAwNzE2NDRiMjUwNmJhZmVkOWM1NzU0NjgzMjBlNDMwYjc0MWRkZjMwLi4zNzllZmQyMDQ4
MGM2NTNhNGQwZTExNTVjYTg3OTljYWUwOTU4MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oCkBAIC01MSw3ICs1
MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
KFdlYkZyYW1lUHJveHkqLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKIAotICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIFR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogI2lmIERFTEVHQVRFX1JFRl9DT1VOVElO
R19UT19DT0NPQQogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4g
bmV3T2JqZWN0KHNpemUsIEFQSVR5cGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
aAppbmRleCBmZGE3NTZjMjg3MTIyNTRkMGVhYzU1YzgyY2I0YTVjOWM2MzM4MjczLi4xOGQ0MDM4
MTYzZjI5N2Y3NTZkNzhkZTZmNTM2ZTY0NmUyNGQ4ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpFbGVt
ZW50KiBlbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGJ5
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKICAgICB2b2lkIGV2YWx1YXRlSmF2
YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJ
bXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5T
UmVzb2x2ZXIuaAppbmRleCAzZTVjYzZmODY4YmQzM2FmYTUzMzdhOWFkZTRkZjg4ZjdkMmUzNDkw
Li4wZGQ1YTVkNzk0NzQyODk2ZThlMzhiNzZiNGFiMzJhNjgwMDE3NTBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmpl
Y3RYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaApAQCAtMzMsNyAr
MzMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+R09iamVjdFhQYXRoTlNSZXNv
bHZlcigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJp
bmcmIHByZWZpeCk7CisgICAgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcm
IHByZWZpeCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgR09iamVjdFhQYXRoTlNSZXNvbHZl
cihXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3Jh
Z2VNYW5hZ2VyLmgKaW5kZXggZmNjMGY0ZGRlOTRlMTQ5Y2EwNDE0NDQ4MzBhYWRmZGQ2NzQxZTU2
Mi4uZWY3NDZmZWU2ZWI4MjY3ZDk0NjVhNzVmYTAxNTZiNjVjOGRlZWQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlbGV0ZUFsbE1lZGlhS2V5RW50cmllcygpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2
b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIG92ZXJy
aWRlOwogCiAgICAgU3RyaW5nIG1fbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRp
bWVPYmplY3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAppbmRleCBmYWRlNDFkZjU4ZDQ3OTgxZDMxNGM5YThmNDRh
ZDMxYTcwZmFlZWRlLi44NTUwOWFiNDk0MDk1YzZjZWEzNzJjMDhkMTFkOTU5NzExYzA5MmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBS
dW50aW1lT2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICAvLyBXZWFrSGFuZGxlT3duZXIKLSAgICB2aXJ0dWFsIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CisgICAgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVy
cmlkZTsKICAgICB2b2lkIGFkZFRvSW52YWxpZGF0aW9uUXVldWUoTlBPYmplY3QqKTsKICAgICB2
b2lkIGludmFsaWRhdGVRdWV1ZWRPYmplY3RzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5oCmluZGV4
IDVlNzVhMDBmZmEzOWM1NTI3NTJkYzBjYThiM2YzODZmYjljNTUxMzMuLjkzZjk2OThhOWZhMjY1
NDJjZmMyMDFhZWUxMTk5YTdkMjkxMThhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuaApAQCAtMzks
OSArMzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViUGx1Z0luQ2xpZW50KCk7CiAKIHBy
aXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNv
bnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNv
cmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdp
biwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdl
YkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXgg
YWVkMWI1OTlmOTQ5N2MwMDBhMGM2MjYxN2IxZWZlYjU1MTczY2EyNy4uMmM2ZWVhN2YzM2M0OGIz
YjU3ZWJlZDgwM2UxMGU1M2E4ZTcyNjA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSopOwogCi0gICAgdmlydHVh
bCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Q7
CisgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbigpIGNv
bnN0IG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAppbmRleCBmMzBhNDZhNmVhOTg5Mjc2YmRkZmI5MTgz
ZjhhNTU3YWYxYmQ3ZmVlLi43ZWMwZDVhZjgwZTIxNGVjYWJmOGRkZDMzOGQyOGUzZTZkMDY1Zjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuaApAQCAtNzMsMTAgKzczLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBQ
YWdlT3ZlcmxheTo6Q2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvUGFnZShXZWJD
b3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
TW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKTsKLSAgICB2
aXJ0dWFsIGJvb2wgbW91c2VFdmVudChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIGNvbnN0IFdlYkNv
cmU6OlBsYXRmb3JtTW91c2VFdmVudCYpOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVjdChXZWJD
b3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGRpcnR5UmVjdCk7CisgICAgdm9pZCB3aWxsTW92ZVRvUGFnZShXZWJDb3Jl
OjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZE1v
dmVUb1BhZ2UoV2ViQ29yZTo6UGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpQYWdlKikgb3ZlcnJpZGU7
CisgICAgYm9vbCBtb3VzZUV2ZW50KFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgY29uc3QgV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3UmVjdChXZWJD
b3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6
SW50UmVjdD4gcmVjdHNGb3JUZXh0TWF0Y2hlc0luUmVjdChXZWJDb3JlOjpJbnRSZWN0IGNsaXBS
ZWN0KTsKICAgICBib29sIHVwZGF0ZUZpbmRJbmRpY2F0b3IoV2ViQ29yZTo6RnJhbWUmIHNlbGVj
dGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3ZlcmxheSwgYm9vbCBzaG91bGRBbmltYXRlID0gdHJ1
ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>