<?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>65649</bug_id>
          
          <creation_ts>2011-08-03 15:33:37 -0700</creation_ts>
          <short_desc>[chromium] rename WEBKIT_API to WEBKIT_EXPORT</short_desc>
          <delta_ts>2011-08-03 16:06:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446140</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-03 15:33:37 -0700</bug_when>
    <thetext>[chromium] rename WEBKIT_API to WEBKIT_EXPORT

See related discussion on the chromium-dev mailing list:
http://groups.google.com/a/chromium.org/group/chromium-dev/msg/63b5ad1b33a9ee5e</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446157</commentid>
    <comment_count>1</comment_count>
      <attachid>102844</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-03 15:48:16 -0700</bug_when>
    <thetext>Created attachment 102844
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446161</commentid>
    <comment_count>2</comment_count>
      <attachid>102844</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-03 15:53:10 -0700</bug_when>
    <thetext>Comment on attachment 102844
v1 patch

Yay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446175</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-03 16:06:34 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/92322</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102844</attachid>
            <date>2011-08-03 15:48:16 -0700</date>
            <delta_ts>2011-08-03 15:53:10 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>wk_export_1.txt</filename>
            <type>text/plain</type>
            <size>169245</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MjMxNikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE0
IEBACisyMDExLTA4LTAzICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBSZW5hbWUgV0VCS0lUX0FQSSB0byBXRUJLSVRfRVhQT1JULgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFJFQURNRToKKyAg
ICAgICAgKiBwdWJsaWMvV2ViQWNjZXNzaWJpbGl0eUNhY2hlLmg6CisgICAgICAgICogcHVibGlj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQXJyYXlCdWZm
ZXJWaWV3Lmg6CisgICAgICAgICogcHVibGljL1dlYkF0dHJpYnV0ZS5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJBdWRpb0J1cy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJCaW5kaW5ncy5oOgorICAg
ICAgICAqIHB1YmxpYy9XZWJCbG9iRGF0YS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJCbG9iUmVn
aXN0cnkuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ1N0cmluZy5oOgorICAgICAgICAqIHB1Ymxp
Yy9XZWJDYWNoZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJDb2xvci5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJDb21tb24uaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJET01FdmVudC5oOgorICAgICAg
ICAqIHB1YmxpYy9XZWJET01FdmVudExpc3RlbmVyLmg6CisgICAgICAgICogcHVibGljL1dlYkRP
TU1vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRE9NTXV0YXRpb25FdmVudC5oOgor
ICAgICAgICAqIHB1YmxpYy9XZWJET01TdHJpbmdMaXN0Lmg6CisgICAgICAgICogcHVibGljL1dl
YkRhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRGF0YWJhc2UuaDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJEZXZUb29sc0Zyb250
ZW5kLmg6CisgICAgICAgICogcHVibGljL1dlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
OgorICAgICAgICAqIHB1YmxpYy9XZWJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRG9jdW1l
bnRUeXBlLmg6CisgICAgICAgICogcHVibGljL1dlYkRyYWdEYXRhLmg6CisgICAgICAgICogcHVi
bGljL1dlYkVsZW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRm9udC5oOgorICAgICAgICAq
IHB1YmxpYy9XZWJGb250Q2FjaGUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRm9ybUNvbnRyb2xF
bGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYkZvcm1FbGVtZW50Lmg6CisgICAgICAgICog
cHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICogcHVibGljL1dlYkdlb2xvY2F0aW9uQ2xpZW50
TW9jay5oOgorICAgICAgICAqIHB1YmxpYy9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25FcnJvci5oOgorICAgICAgICAqIHB1YmxpYy9X
ZWJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgICogcHVibGljL1dlYkdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgICogcHVibGljL1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViR2x5cGhDYWNoZS5o
OgorICAgICAgICAqIHB1YmxpYy9XZWJIVFRQQm9keS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJI
VFRQTG9hZEluZm8uaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2VFcnJvci5oOgorICAgICAgICAqIHB1YmxpYy9XZWJJ
REJGYWN0b3J5Lmg6CisgICAgICAgICogcHVibGljL1dlYklEQktleS5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJLZXlQYXRoLmg6CisgICAgICAgICogcHVibGljL1dlYklEQktleVJhbmdlLmg6
CisgICAgICAgICogcHVibGljL1dlYkltYWdlLmg6CisgICAgICAgICogcHVibGljL1dlYkltYWdl
RGVjb2Rlci5oOgorICAgICAgICAqIHB1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJLaXQuaDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViTGFiZWxFbGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYk1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuaDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViTm9kZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOb2RlQ29sbGVjdGlvbi5oOgorICAgICAg
ICAqIHB1YmxpYy9XZWJOb2RlTGlzdC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOb3RpZmljYXRp
b24uaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJQYWdlU2VyaWFsaXplci5oOgorICAgICAgICAqIHB1YmxpYy9XZWJQYXNzd29yZEZv
cm1EYXRhLmg6CisgICAgICAgICogcHVibGljL1dlYlBlcmZvcm1hbmNlLmg6CisgICAgICAgICog
cHVibGljL1dlYlBsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYlBvcHVwTWVu
dS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJSYW5nZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJS
ZWd1bGFyRXhwcmVzc2lvbi5oOgorICAgICAgICAqIHB1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMu
aDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJTY3JvbGxiYXIuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VhcmNoYWJsZUZvcm1E
YXRhLmg6CisgICAgICAgICogcHVibGljL1dlYlNlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgICog
cHVibGljL1dlYlNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6Cisg
ICAgICAgICogcHVibGljL1dlYlNoYXJlZFdvcmtlci5oOgorICAgICAgICAqIHB1YmxpYy9XZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmg6CisgICAgICAgICogcHVibGljL1dlYlNwZWVjaElu
cHV0UmVzdWx0Lmg6CisgICAgICAgICogcHVibGljL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXIu
aDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJTdHJpbmcuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVGVzdGluZ1N1cHBvcnQuaDoK
KyAgICAgICAgKiBwdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViVVJMTG9hZFRpbWluZy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxSZXF1ZXN0Lmg6Cisg
ICAgICAgICogcHVibGljL1dlYlVSTFJlc3BvbnNlLmg6CisgICAgICAgICogcHVibGljL1dlYlZp
ZXcuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViV29ya2VyLmg6CisgICAgICAgICogcHVibGljL2d0
ay9XZWJGb250SW5mby5oOgorICAgICAgICAqIHB1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmg6CisgICAg
ICAgICogcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcuaDoKKyAgICAgICAgKiBwdWJsaWMv
bGludXgvV2ViUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiBwdWJsaWMvbWFjL1dlYklucHV0RXZl
bnRGYWN0b3J5Lmg6CisgICAgICAgICogcHVibGljL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5o
OgorICAgICAgICAqIHB1YmxpYy9tYWMvV2ViU3Vic3RyaW5nVXRpbC5oOgorICAgICAgICAqIHB1
YmxpYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBwdWJsaWMvd2luL1dl
YlNjcmVlbkluZm9GYWN0b3J5Lmg6CisgICAgICAgICogcHVibGljL3gxMS9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5oOgorICAgICAgICAqIHRlc3RzL1dlYlVuaXRUZXN0cy5oOgorCiAyMDExLTA4LTAz
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbVGltZWxpbmVdIEhvdmVyIG9uIHBhaW50IGV2ZW50cyBhbmQgc2VlIHJlY3Qgb3V0
bGluZSBhcm91bmQgdGhhdCBhcmVhLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9SRUFE
TUUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9SRUFETUUJKHJldmlzaW9u
IDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9SRUFETUUJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDEzICsyNywxMyBAQCBERUZJTkVTCiAgIGRlZmluZWQgd2hlbiBidWlsZGluZyB0aGUg
J3NyYycgZGlyZWN0b3J5LCBhbmQgaXQgc2hvdWxkIGFsc28gYmUgZGVmaW5lZCBieQogICB0aGUg
Y29uc3VtZXIgdG8gZW5zdXJlIHByb3BlciBsaW5rYWdlIHRvIHRoZSBzaGFyZWQgbGlicmFyeS4K
IAotICBXRUJLSVRfQVBJIGlzIGRlZmluZWQgZm9yIHBsYXRmb3JtcyAoZS5nLiwgV2luZG93cykg
dGhhdCByZXF1aXJlIGFkZGl0aW9uYWwKLSAgYW5ub3RhdGlvbnMgb24gZnVuY3Rpb25zIGFuZCBt
ZXRob2RzLCB3aGljaCBzaG91bGQgYmUgZXhwb3J0ZWQgZnJvbSBXZWJLaXQKLSAgd2hlbiBpdCBp
cyBidWlsdCBhcyBhIERMTC4gIEluIGdlbmVyYWwsIHRoaXMgaW5jbHVkZXMgYWxsIHB1YmxpYyBt
ZXRob2RzCi0gIHVubGVzcyB0aGUgbWV0aG9kcyBhcmUgZGVmaW5lZCBpbmxpbmUsIG1hcmtlZCBw
dXJlIHZpcnR1YWwsIG9yIGNvbnRhaW5lZAotICB3aXRoaW4gYSBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04gc2VjdGlvbi4gIEFsc28sIGFueSBwcml2YXRlIG1ldGhvZCBjYWxsZWQgYnkgYQotICBwdWJs
aWMgaW5saW5lLWRlZmluZWQgbWV0aG9kIHNob3VsZCBiZSBhbm5vdGF0ZWQgd2l0aCBXRUJLSVRf
QVBJLiAgV0VCS0lUX0FQSQotICBpcyBub3QgdXNlZCB0byBleHBvcnQgd2hvbGUgY2xhc3Nlcy4K
KyAgV0VCS0lUX0VYUE9SVCBpcyBkZWZpbmVkIGZvciBwbGF0Zm9ybXMgKGUuZy4sIFdpbmRvd3Mp
IHRoYXQgcmVxdWlyZQorICBhZGRpdGlvbmFsIGFubm90YXRpb25zIG9uIGZ1bmN0aW9ucyBhbmQg
bWV0aG9kcywgd2hpY2ggc2hvdWxkIGJlIGV4cG9ydGVkCisgIGZyb20gV2ViS2l0IHdoZW4gaXQg
aXMgYnVpbHQgYXMgYSBETEwuICBJbiBnZW5lcmFsLCB0aGlzIGluY2x1ZGVzIGFsbCBwdWJsaWMK
KyAgbWV0aG9kcyB1bmxlc3MgdGhlIG1ldGhvZHMgYXJlIGRlZmluZWQgaW5saW5lLCBtYXJrZWQg
cHVyZSB2aXJ0dWFsLCBvcgorICBjb250YWluZWQgd2l0aGluIGEgV0VCS0lUX0lNUExFTUVOVEFU
SU9OIHNlY3Rpb24uICBBbHNvLCBhbnkgcHJpdmF0ZSBtZXRob2QKKyAgY2FsbGVkIGJ5IGEgcHVi
bGljIGlubGluZS1kZWZpbmVkIG1ldGhvZCBzaG91bGQgYmUgYW5ub3RhdGVkIHdpdGgKKyAgV0VC
S0lUX0VYUE9SVC4gIFdFQktJVF9FWFBPUlQgaXMgbm90IHVzZWQgdG8gZXhwb3J0IHdob2xlIGNs
YXNzZXMuCiAKICAgV0VCS0lUX1VTSU5HX1NLSUEgaXMgZGVmaW5lZCB3aGVuIHVzaW5nIFNraWEg
YXMgdGhlIGdyYXBoaWNzIGxpYnJhcnkuCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5oCShyZXZpc2lvbiA5MjMx
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlDYWNo
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXZWJBY2Nl
c3NpYmlsaXR5Q2FjaGUoKSB7fQogICAgIHZpcnR1YWwgfldlYkFjY2Vzc2liaWxpdHlDYWNoZSgp
IHt9CiAKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGUqIGNyZWF0
ZSgpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwot
ICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgYWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGUqIGNyZWF0ZSgpOworICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgZW5hYmxlQWNjZXNzaWJpbGl0eSgpOworICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIGJvb2wgYWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplKFdlYlZpZXcqIHZpZXcpID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNJbml0aWFsaXplZCgpIGNvbnN0ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9u
IDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3NyArNjQsNzcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
Jik7Ci0gICAgV0VCS0lUX0FQSSBib29sIGVxdWFscyhjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0JikgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Jik7CisgICAg
V0VCS0lUX0VYUE9SVCBib29sIGVxdWFscyhjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Jikg
Y29uc3Q7CiAKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051
bGwoKTsgfQogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgYWN0aW9uVmVyYigpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgYm9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGNo
aWxkQ291bnQoKSBjb25zdDsKLQotICAgIFdFQktJVF9BUEkgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dCBjaGlsZEF0KHVuc2lnbmVkKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QgZmlyc3RDaGlsZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCBmb2N1c2VkQ2hpbGQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3QgbGFzdENoaWxkKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0IG5leHRTaWJsaW5nKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0IHBhcmVudE9iamVjdCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCBwcmV2aW91c1NpYmxpbmcoKSBjb25zdDsKLQotICAgIFdF
QktJVF9BUEkgYm9vbCBjYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc0FuY2hvcigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0NoZWNr
ZWQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNDb2xsYXBzZWQoKSBjb25zdDsKLSAg
ICBXRUJLSVRfQVBJIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29s
IGlzRW5hYmxlZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0hvdmVyZWQoKSBjb25z
dDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNJbmRldGVybWluYXRlKCkgY29uc3Q7Ci0gICAgV0VC
S0lUX0FQSSBib29sIGlzTGlua2VkKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzTXVs
dGlTZWxlY3RhYmxlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzT2ZmU2NyZWVuKCkg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgYm9vbCBpc1ByZXNzZWQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wg
aXNSZWFkT25seSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1NlbGVjdGVkKCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzVmlzaWJsZSgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdDsKLQotICAgIFdFQktJVF9BUEkgV2ViUmVjdCBib3Vu
ZGluZ0JveFJlY3QoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBoZWxwVGV4dCgp
IGNvbnN0OwotICAgIFdFQktJVF9BUEkgaW50IGhlYWRpbmdMZXZlbCgpIGNvbnN0OwotICAgIFdF
QktJVF9BUEkgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBoaXRUZXN0KGNvbnN0IFdlYlBvaW50Jikg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcga2V5Ym9hcmRTaG9ydGN1dCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgYm9vbCBwZXJmb3JtRGVmYXVsdEFjdGlvbigpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Q7Ci0gICAg
V0VCS0lUX0FQSSB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJ
IHVuc2lnbmVkIHNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNl
dEZvY3VzZWQoYm9vbCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgc3RyaW5nVmFs
dWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViVVJMIHVybCgpIGNvbnN0OwotCi0gICAgV0VCS0lUX0FQSSBXZWJOb2Rl
IG5vZGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYkRvY3VtZW50IGRvY3VtZW50KCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGhhc0NvbXB1dGVkU3R5bGUoKSBjb25zdDsKLSAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyBjb21wdXRlZFN0eWxlRGlzcGxheSgpIGNvbnN0OwotICAgIFdF
QktJVF9BUEkgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBib29sIGxpbmVCcmVha3MoV2ViVmVjdG9yPGludD4mKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIFdlYlN0cmluZyBhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyBhY3Rpb25WZXJiKCkgY29uc3Q7CisgICAgV0VCS0lUX0VY
UE9SVCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBib29sIGNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBi
b29sIGlzVmFsaWQoKSBjb25zdDsKKworICAgIFdFQktJVF9FWFBPUlQgdW5zaWduZWQgY2hpbGRD
b3VudCgpIGNvbnN0OworCisgICAgV0VCS0lUX0VYUE9SVCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
IGNoaWxkQXQodW5zaWduZWQpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCBmaXJzdENoaWxkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0IGZvY3VzZWRDaGlsZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCBsYXN0Q2hpbGQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgbmV4dFNpYmxpbmcoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgcGFyZW50T2JqZWN0KCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IHByZXZpb3VzU2libGluZygp
IGNvbnN0OworCisgICAgV0VCS0lUX0VYUE9SVCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRl
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzQW5jaG9yKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCBib29sIGlzQ2hlY2tlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0ZvY3Vz
ZWQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBib29sIGlzSG92ZXJlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgYm9vbCBpc0luZGV0ZXJtaW5hdGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wg
aXNMaW5rZWQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNNdWx0aVNlbGVjdGFi
bGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNPZmZTY3JlZW4oKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBib29sIGlzUHJlc3NlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9v
bCBpc1JlYWRPbmx5KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzU2VsZWN0ZWQo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OworCisgICAgV0VCS0lUX0VYUE9S
VCBXZWJSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2Vi
U3RyaW5nIGhlbHBUZXh0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgaGVhZGluZ0xl
dmVsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IGhp
dFRlc3QoY29uc3QgV2ViUG9pbnQmKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmlu
ZyBrZXlib2FyZFNob3J0Y3V0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIHBlcmZv
cm1EZWZhdWx0QWN0aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJBY2Nlc3NpYmls
aXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIHNl
bGVjdGlvbkVuZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZChib29sKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHRpdGxlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VY
UE9SVCBXZWJVUkwgdXJsKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYk5vZGUgbm9k
ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViRG9jdW1lbnQgZG9jdW1lbnQoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaGFzQ29tcHV0ZWRTdHlsZSgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGNvbXB1dGVkU3R5bGVEaXNwbGF5KCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIGJvb2wgbGluZUJyZWFrcyhXZWJWZWN0b3I8aW50PiYpIGNvbnN0Owog
CiAgICAgLy8gRm9yIGEgdGFibGUKLSAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGNvbHVtbkNvdW50
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB1bnNpZ25lZCByb3dDb3VudCgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBjZWxsRm9yQ29sdW1uQW5kUm93KHVu
c2lnbmVkIGNvbHVtbiwgdW5zaWduZWQgcm93KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVu
c2lnbmVkIGNvbHVtbkNvdW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBy
b3dDb3VudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dCBjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkIGNvbHVtbiwgdW5zaWduZWQgcm93KSBjb25z
dDsKIAogICAgIC8vIEZvciBhIHRhYmxlIGNlbGwKLSAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGNl
bGxDb2x1bW5JbmRleCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdW5zaWduZWQgY2VsbENvbHVt
blNwYW4oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGNlbGxSb3dJbmRleCgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgdW5zaWduZWQgY2VsbFJvd1NwYW4oKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHVuc2lnbmVkIGNlbGxDb2x1bW5JbmRleCgpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgdW5zaWduZWQgY2VsbENvbHVtblNwYW4oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIHVuc2lnbmVkIGNlbGxSb3dJbmRleCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdW5z
aWduZWQgY2VsbFJvd1NwYW4oKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgog
ICAgIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBcnJheUJ1ZmZlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJBcnJheUJ1ZmZlclZpZXcuaAkocmV2aXNpb24gOTIzMTIpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBcnJheUJ1ZmZlclZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsMTIgKzQzLDEyIEBAIHB1YmxpYzoKICAgICBXZWJBcnJheUJ1ZmZlclZp
ZXcoKSB7IH0KICAgICBXZWJBcnJheUJ1ZmZlclZpZXcoY29uc3QgV2ViQXJyYXlCdWZmZXJWaWV3
JiB2KSB7IGFzc2lnbih2KTsgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkKiBiYXNlQWRkcmVzcygp
IGNvbnN0OwotICAgIFdFQktJVF9BUEkgdW5zaWduZWQgYnl0ZU9mZnNldCgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCogYmFzZUFkZHJlc3MoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVk
IGJ5dGVPZmZzZXQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIGJ5dGVMZW5n
dGgoKSBjb25zdDsKIAotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViQXJyYXlC
dWZmZXJWaWV3Jik7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJBcnJheUJ1ZmZlclZpZXcmKTsKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgcmVzZXQoKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdl
YkFycmF5QnVmZmVyVmlldyhjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6QXJyYXlCdWZm
ZXJWaWV3PiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXR0cmli
dXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXR0
cmlidXRlLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQXR0cmlidXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1NSwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQg
cmVzZXQoKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkF0dHJpYnV0ZSYp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViQXR0cmlidXRlJik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmlu
ZyBsb2NhbE5hbWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2YWx1ZSgpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGxvY2FsTmFtZSgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1Q
TEVNRU5UQVRJT04KICAgICBXZWJBdHRyaWJ1dGUoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OkF0dHJpYnV0ZT4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkF1ZGlvQnVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQXVkaW9CdXMuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJBdWRpb0J1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NywxNiArNDcsMTYgQEAg
cHVibGljOgogICAgIH5XZWJBdWRpb0J1cygpIHsgcmVzZXQoKTsgfQogICAgIAogICAgIC8vIGlu
aXRpYWxpemUoKSBhbGxvY2F0ZXMgbWVtb3J5IG9mIHRoZSBnaXZlbiBsZW5ndGggZm9yIHRoZSBn
aXZlbiBudW1iZXIgb2YgY2hhbm5lbHMuCi0gICAgV0VCS0lUX0FQSSB2b2lkIGluaXRpYWxpemUo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZG91YmxlIHNhbXBsZVJh
dGUpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKHVuc2lnbmVkIG51bWJlck9m
Q2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGRvdWJsZSBzYW1wbGVSYXRlKTsKIAogICAgIC8vIHJl
c2V0KCkgcmVsZWFzZXMgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSBpbml0aWFsaXplKCkuCi0g
ICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0
KCk7CiAgICAgCi0gICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSBzaXplX3QgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQ
SSBkb3VibGUgc2FtcGxlUmF0ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgc2l6ZV90IGxlbmd0
aCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIHNhbXBsZVJhdGUoKSBjb25zdDsK
ICAgICAKLSAgICBXRUJLSVRfQVBJIGZsb2F0KiBjaGFubmVsRGF0YSh1bnNpZ25lZCBjaGFubmVs
SW5kZXgpOworICAgIFdFQktJVF9FWFBPUlQgZmxvYXQqIGNoYW5uZWxEYXRhKHVuc2lnbmVkIGNo
YW5uZWxJbmRleCk7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXVEY6OlBhc3NP
d25QdHI8V2ViQ29yZTo6QXVkaW9CdXM+IHJlbGVhc2UoKTsgICAgCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCaW5kaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJpbmRpbmdzLmgJKHJldmlzaW9uIDkyMzEyKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQmluZGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNTEsMTAwICs1MSwxMDAgQEAgcHVibGljOgogICAgIC8vIFRoZXNlIGFyZSBhbGwgZGVm
aW5lZCBpbiBucHJ1bnRpbWUuaCBhbmQgYXJlIHdlbGwgZG9jdW1lbnRlZC4KIAogICAgIC8vIE5Q
Tl9Db25zdHJ1Y3QKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGNvbnN0cnVjdChOUFAsIE5Q
T2JqZWN0KiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJp
YW50KiByZXN1bHQpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgY29uc3RydWN0KE5Q
UCwgTlBPYmplY3QqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBO
UFZhcmlhbnQqIHJlc3VsdCk7CiAKICAgICAvLyBOUE5fQ3JlYXRlT2JqZWN0Ci0gICAgV0VCS0lU
X0FQSSBzdGF0aWMgTlBPYmplY3QqIGNyZWF0ZU9iamVjdChOUFAsIE5QQ2xhc3MqKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyBOUE9iamVjdCogY3JlYXRlT2JqZWN0KE5QUCwgTlBDbGFzcyop
OwogCiAgICAgLy8gTlBOX0VudW1lcmF0ZQotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgZW51
bWVyYXRlKE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIqKiwgdWludDMyX3QqIGlkZW50aWZp
ZXJDb3VudCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBlbnVtZXJhdGUoTlBQLCBO
UE9iamVjdCosIE5QSWRlbnRpZmllcioqLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50KTsKIAog
ICAgIC8vIE5QTl9FdmFsdWF0ZQotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgZXZhbHVhdGUo
TlBQLCBOUE9iamVjdCosIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAg
ICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGV2YWx1YXRlKE5QUCwgTlBPYmplY3QqLCBOUFN0
cmluZyogc2NyaXB0LCBOUFZhcmlhbnQqIHJlc3VsdCk7CiAKICAgICAvLyBOUE5fRXZhbHVhdGVI
ZWxwZXIKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGV2YWx1YXRlSGVscGVyKE5QUCwgYm9v
bCBwb3B1cHNBbGxvd2VkLCBOUE9iamVjdCosIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFyaWFudCog
cmVzdWx0KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGV2YWx1YXRlSGVscGVyKE5Q
UCwgYm9vbCBwb3B1cHNBbGxvd2VkLCBOUE9iamVjdCosIE5QU3RyaW5nKiBzY3JpcHQsIE5QVmFy
aWFudCogcmVzdWx0KTsKIAogICAgIC8vIE5QTl9HZXRJbnRJZGVudGlmaWVyCi0gICAgV0VCS0lU
X0FQSSBzdGF0aWMgTlBJZGVudGlmaWVyIGdldEludElkZW50aWZpZXIoaW50MzJfdCBudW1iZXIp
OworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIE5QSWRlbnRpZmllciBnZXRJbnRJZGVudGlmaWVy
KGludDMyX3QgbnVtYmVyKTsKIAogICAgIC8vIE5QTl9HZXRQcm9wZXJ0eQotICAgIFdFQktJVF9B
UEkgc3RhdGljIGJvb2wgZ2V0UHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBw
cm9wZXJ0eSwgTlBWYXJpYW50ICpyZXN1bHQpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJv
b2wgZ2V0UHJvcGVydHkoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBwcm9wZXJ0eSwgTlBW
YXJpYW50ICpyZXN1bHQpOwogCiAgICAgLy8gTlBOX0dldFN0cmluZ0lkZW50aWZpZXIKLSAgICBX
RUJLSVRfQVBJIHN0YXRpYyBOUElkZW50aWZpZXIgZ2V0U3RyaW5nSWRlbnRpZmllcihjb25zdCBO
UFVURjgqIHN0cmluZyk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgTlBJZGVudGlmaWVyIGdl
dFN0cmluZ0lkZW50aWZpZXIoY29uc3QgTlBVVEY4KiBzdHJpbmcpOwogCiAgICAgLy8gTlBOX0dl
dFN0cmluZ0lkZW50aWZpZXJzCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBnZXRTdHJpbmdJ
ZGVudGlmaWVycyhjb25zdCBOUFVURjgqKiBuYW1lcywgaW50MzJfdCBuYW1lQ291bnQsIE5QSWRl
bnRpZmllciopOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgZ2V0U3RyaW5nSWRlbnRp
ZmllcnMoY29uc3QgTlBVVEY4KiogbmFtZXMsIGludDMyX3QgbmFtZUNvdW50LCBOUElkZW50aWZp
ZXIqKTsKIAogICAgIC8vIE5QTl9IYXNNZXRob2QKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29s
IGhhc01ldGhvZChOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1ldGhvZCk7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBoYXNNZXRob2QoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRp
ZmllciBtZXRob2QpOwogCiAgICAgLy8gTlBOX0hhc1Byb3BlcnR5Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBoYXNQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIHByb3Bl
cnR5KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGhhc1Byb3BlcnR5KE5QUCwgTlBP
YmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHkpOwogCiAgICAgLy8gTlBOX0lkZW50aWZpZXJJ
c1N0cmluZwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaWRlbnRpZmllcklzU3RyaW5nKE5Q
SWRlbnRpZmllcik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNT
dHJpbmcoTlBJZGVudGlmaWVyKTsKIAogICAgIC8vIE5QTl9Jbml0aWFsaXplVmFyaWFudFdpdGhT
dHJpbmdDb3B5ICh0aG91Z2ggc29tZXRpbWVzIHByZWZpeGVkIHdpdGggYW4gdW5kZXJzY29yZSkK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGluaXRpYWxpemVWYXJpYW50V2l0aFN0cmluZ0Nv
cHkoTlBWYXJpYW50KiwgY29uc3QgTlBTdHJpbmcqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyB2b2lkIGluaXRpYWxpemVWYXJpYW50V2l0aFN0cmluZ0NvcHkoTlBWYXJpYW50KiwgY29uc3Qg
TlBTdHJpbmcqKTsKIAogICAgIC8vIE5QTl9JbnRGcm9tSWRlbnRpZmllcgotICAgIFdFQktJVF9B
UEkgc3RhdGljIGludDMyX3QgaW50RnJvbUlkZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyBpbnQzMl90IGludEZyb21JZGVudGlmaWVyKE5QSWRlbnRpZmll
cik7CiAKICAgICAvLyBOUE5fSW52b2tlCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpbnZv
a2UoTlBQLCBOUE9iamVjdCosIE5QSWRlbnRpZmllciBtZXRob2QsIGNvbnN0IE5QVmFyaWFudCog
YXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyBib29sIGludm9rZShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG1l
dGhvZCwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50
KiByZXN1bHQpOwogCiAgICAgLy8gTlBOX0ludm9rZURlZmF1bHQKLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCog
YXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKKyAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyBib29sIGludm9rZURlZmF1bHQoTlBQLCBOUE9iamVjdCosIGNvbnN0IE5Q
VmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKIAog
ICAgIC8vIE5QTl9SZWxlYXNlT2JqZWN0Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZWxl
YXNlT2JqZWN0KE5QT2JqZWN0Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCByZWxl
YXNlT2JqZWN0KE5QT2JqZWN0Kik7CiAKICAgICAvLyBOUE5fUmVsZWFzZVZhcmlhbnRWYWx1ZQot
ICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgcmVsZWFzZVZhcmlhbnRWYWx1ZShOUFZhcmlhbnQq
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlbGVhc2VWYXJpYW50VmFsdWUoTlBW
YXJpYW50Kik7CiAKICAgICAvLyBOUE5fUmVtb3ZlUHJvcGVydHkKLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyBib29sIHJlbW92ZVByb3BlcnR5KE5QUCwgTlBPYmplY3QqLCBOUElkZW50aWZpZXIpOwor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgcmVtb3ZlUHJvcGVydHkoTlBQLCBOUE9iamVj
dCosIE5QSWRlbnRpZmllcik7CiAKICAgICAvLyBOUE5fUmV0YWluT2JqZWN0Ci0gICAgV0VCS0lU
X0FQSSBzdGF0aWMgTlBPYmplY3QqIHJldGFpbk9iamVjdChOUE9iamVjdCopOworICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIE5QT2JqZWN0KiByZXRhaW5PYmplY3QoTlBPYmplY3QqKTsKIAogICAg
IC8vIE5QTl9TZXRFeGNlcHRpb24KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldEV4Y2Vw
dGlvbihOUE9iamVjdCosIGNvbnN0IE5QVVRGOCogbWVzc2FnZSk7CisgICAgV0VCS0lUX0VYUE9S
VCBzdGF0aWMgdm9pZCBzZXRFeGNlcHRpb24oTlBPYmplY3QqLCBjb25zdCBOUFVURjgqIG1lc3Nh
Z2UpOwogCiAgICAgLy8gTlBOX1NldFByb3BlcnR5Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9v
bCBzZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyLCBjb25zdCBOUFZhcmlh
bnQqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIHNldFByb3BlcnR5KE5QUCwgTlBP
YmplY3QqLCBOUElkZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCopOwogCiAgICAgLy8gX05QTl9V
bnJlZ2lzdGVyT2JqZWN0Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyT2Jq
ZWN0KE5QT2JqZWN0Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVy
T2JqZWN0KE5QT2JqZWN0Kik7CiAKICAgICAvLyBOUE5fVVRGOEZyb21JZGVudGlmaWVyCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgTlBVVEY4KiB1dGY4RnJvbUlkZW50aWZpZXIoTlBJZGVudGlmaWVy
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBOUFVURjgqIHV0ZjhGcm9tSWRlbnRpZmllcihO
UElkZW50aWZpZXIpOwogCiAgICAgLy8gTWlzY2VsbGFuZW91cyB1dGlsaXR5IGZ1bmN0aW9ucyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBDb21wbGVt
ZW50IHRvIE5QTl9HZXRfX19JZGVudGlmaWVyIGZ1bmN0aW9ucy4gIEV4dHJhY3RzIGRhdGEgZnJv
bSB0aGUgTlBJZGVudGlmaWVyIGRhdGEKICAgICAvLyBzdHJ1Y3R1cmUuICBJZiBpc1N0cmluZyBp
cyB0cnVlIHVwb24gcmV0dXJuLCBzdHJpbmcgd2lsbCBiZSBzZXQgYnV0IG51bWJlcidzIHZhbHVl
IGlzCiAgICAgLy8gdW5kZWZpbmVkLiAgSWYgaVN0cmluZyBpcyBmYWxzZSwgdGhlIG9wcG9zaXRl
IGlzIHRydWUuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBleHRyYWN0SWRlbnRpZmllckRh
dGEoY29uc3QgTlBJZGVudGlmaWVyJiwgY29uc3QgTlBVVEY4KiYgc3RyaW5nLCBpbnQzMl90JiBu
dW1iZXIsIGJvb2wmIGlzU3RyaW5nKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGV4
dHJhY3RJZGVudGlmaWVyRGF0YShjb25zdCBOUElkZW50aWZpZXImLCBjb25zdCBOUFVURjgqJiBz
dHJpbmcsIGludDMyX3QmIG51bWJlciwgYm9vbCYgaXNTdHJpbmcpOwogCiAgICAgLy8gRHVtcFJl
bmRlclRyZWUgc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKICAgICAvLyBSZXR1cm4gdHJ1ZSAoc3VjY2VzcykgaWYgdGhlIGdpdmVuIG5w
b2JqIGlzIGEgcmFuZ2Ugb2JqZWN0LgogICAgIC8vIElmIHNvLCByZXR1cm4gdGhhdCByYW5nZSBh
cyBhIFdlYlJhbmdlIG9iamVjdC4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGdldFJhbmdl
KE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2UqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBi
b29sIGdldFJhbmdlKE5QT2JqZWN0KiByYW5nZSwgV2ViUmFuZ2UqKTsKIAogICAgIC8vIFJldHVy
biB0cnVlIChzdWNjZXNzKSBpZiB0aGUgZ2l2ZW4gbnBvYmogaXMgYW4gQXJyYXlCdWZmZXJWaWV3
IG9iamVjdC4KICAgICAvLyBJZiBzbywgcmV0dXJuIGl0IGFzIGEgV2ViQXJyYXlCdWZmZXJWaWV3
IG9iamVjdC4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGdldEFycmF5QnVmZmVyVmlldyhO
UE9iamVjdCogYXJyYXlCdWZmZXJWaWV3LCBXZWJBcnJheUJ1ZmZlclZpZXcqKTsKKyAgICBXRUJL
SVRfRVhQT1JUIHN0YXRpYyBib29sIGdldEFycmF5QnVmZmVyVmlldyhOUE9iamVjdCogYXJyYXlC
dWZmZXJWaWV3LCBXZWJBcnJheUJ1ZmZlclZpZXcqKTsKIAogICAgIC8vIFJldHVybiB0cnVlIChz
dWNjZXNzKSBpZiB0aGUgZ2l2ZW4gbnBvYmogaXMgYW4gZWxlbWVudC4KICAgICAvLyBJZiBzbywg
cmV0dXJuIHRoYXQgZWxlbWVudCBhcyBhIFdlYkVsZW1lbnQgb2JqZWN0LgotICAgIFdFQktJVF9B
UEkgc3RhdGljIGJvb2wgZ2V0RWxlbWVudChOUE9iamVjdCogZWxlbWVudCwgV2ViRWxlbWVudCop
OworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgZ2V0RWxlbWVudChOUE9iamVjdCogZWxl
bWVudCwgV2ViRWxlbWVudCopOwogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgTlBPYmplY3QqIG1h
a2VJbnRBcnJheShjb25zdCBXZWJWZWN0b3I8aW50PiYpOwotICAgIFdFQktJVF9BUEkgc3RhdGlj
IE5QT2JqZWN0KiBtYWtlU3RyaW5nQXJyYXkoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mKTsK
KyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBOUE9iamVjdCogbWFrZUludEFycmF5KGNvbnN0IFdl
YlZlY3RvcjxpbnQ+Jik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgTlBPYmplY3QqIG1ha2VT
dHJpbmdBcnJheShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYpOwogCiAgICAgLy8gRXhjZXB0
aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKQEAgLTE1Miw4ICsxNTIsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZXhj
ZXB0aW9uIGhhbmRsZXIgd2lsbCBiZSBub3RpZmllZCBvZiBhbnkgZXhjZXB0aW9ucyB0aHJvd24g
d2hpbGUKICAgICAvLyBvcGVyYXRpbmcgb24gYSBOUE9iamVjdC4KLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyB2b2lkIHB1c2hFeGNlcHRpb25IYW5kbGVyKEV4Y2VwdGlvbkhhbmRsZXIsIHZvaWQqIGRh
dGEpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgcG9wRXhjZXB0aW9uSGFuZGxlcigpOwor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcHVzaEV4Y2VwdGlvbkhhbmRsZXIoRXhjZXB0
aW9uSGFuZGxlciwgdm9pZCogZGF0YSk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBw
b3BFeGNlcHRpb25IYW5kbGVyKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJsb2JEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQmxvYkRhdGEuaAkocmV2aXNpb24g
OTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCbG9iRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MCwyMSArNjAsMjEgQEAgcHVibGljOgogCiAgICAgV2ViQmxvYkRh
dGEoKSA6IG1fcHJpdmF0ZSgwKSB7IH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCBpbml0aWFsaXpl
KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IGluaXRpYWxpemUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKIAogICAgIGJv
b2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1fcHJpdmF0ZTsgfQogCiAgICAgLy8gUmV0dXJu
cyB0aGUgbnVtYmVyIG9mIGl0ZW1zLgotICAgIFdFQktJVF9BUEkgc2l6ZV90IGl0ZW1Db3VudCgp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgc2l6ZV90IGl0ZW1Db3VudCgpIGNvbnN0OwogCiAg
ICAgLy8gUmV0cmlldmVzIHRoZSB2YWx1ZXMgb2YgdGhlIGl0ZW0gYXQgdGhlIGdpdmVuIGluZGV4
LiAgUmV0dXJucyBmYWxzZSBpZgogICAgIC8vIGluZGV4IGlzIG91dCBvZiBib3VuZHMuCi0gICAg
V0VCS0lUX0FQSSBib29sIGl0ZW1BdChzaXplX3QgaW5kZXgsIEl0ZW0mIHJlc3VsdCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGl0ZW1BdChzaXplX3QgaW5kZXgsIEl0ZW0mIHJlc3Vs
dCkgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBjb250ZW50VHlwZSgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGNvbnRlbnRUeXBlKCkgY29uc3Q7CiAKLSAg
ICBXRUJLSVRfQVBJIFdlYlN0cmluZyBjb250ZW50RGlzcG9zaXRpb24oKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjb250ZW50RGlzcG9zaXRpb24oKSBjb25zdDsKIAogI2lm
IFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkJsb2JEYXRhKGNvbnN0IFdURjo6UGFzc093
blB0cjxXZWJDb3JlOjpCbG9iRGF0YT4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkJsb2JSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkJsb2JSZWdpc3RyeS5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJsb2JSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFdlYlVSTDsKIAogY2xhc3MgV2ViQmxvYlJlZ2lzdHJ5
IHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJCbG9iUmVnaXN0cnkqIGNyZWF0
ZSgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkJsb2JSZWdpc3RyeSogY3JlYXRlKCk7
CiAKICAgICB2aXJ0dWFsIH5XZWJCbG9iUmVnaXN0cnkoKSB7IH0KIApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNTdHJpbmcuaAkocmV2aXNpb24gOTIzMTIpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDU3RyaW5nLmgJKHdvcmtpbmcgY29weSkK
QEAgLTc1LDIyICs3NSwyMiBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyAwIGlmIGJvdGggc3Ry
aW5ncyBhcmUgZXF1YWxzLCBhIHZhbHVlIGdyZWF0ZXIgdGhhbiB6ZXJvIGlmIHRoZQogICAgIC8v
IGZpcnN0IGNoYXJhY3RlciB0aGF0IGRvZXMgbm90IG1hdGNoIGhhcyBhIGdyZWF0ZXIgdmFsdWUg
aW4gdGhpcyBzdHJpbmcKICAgICAvLyB0aGFuIGluIHxvdGhlcnwsIG9yIGEgdmFsdWUgbGVzcyB0
aGFuIHplcm8gdG8gaW5kaWNhdGUgdGhlIG9wcG9zaXRlLgotICAgIFdFQktJVF9BUEkgaW50IGNv
bXBhcmUoY29uc3QgV2ViQ1N0cmluZyYgb3RoZXIpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
aW50IGNvbXBhcmUoY29uc3QgV2ViQ1N0cmluZyYgb3RoZXIpIGNvbnN0OwogCi0gICAgV0VCS0lU
X0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJD
U3RyaW5nJik7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgbGVuKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYkNTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgYXNzaWduKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW4pOwogCi0gICAgV0VCS0lU
X0FQSSBzaXplX3QgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBjb25zdCBjaGFyKiBk
YXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgbGVuZ3RoKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Q7CiAKICAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiAhbGVuZ3RoKCk7IH0KICAgICBib29sIGlzTnVsbCgpIGNv
bnN0IHsgcmV0dXJuICFtX3ByaXZhdGU7IH0KIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHV0
ZjE2KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgdXRmMTYoKSBjb25zdDsK
IAotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYkNTdHJpbmcgZnJvbVVURjE2KGNvbnN0IFdlYlVD
aGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJDU3Ry
aW5nIGZyb21VVEYxNihjb25zdCBXZWJVQ2hhciogZGF0YSk7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgV2ViQ1N0cmluZyBmcm9tVVRGMTYoY29uc3QgV2ViVUNoYXIqIGRhdGEsIHNpemVfdCBs
ZW5ndGgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkNTdHJpbmcgZnJvbVVURjE2KGNv
bnN0IFdlYlVDaGFyKiBkYXRhKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdl
YkNTdHJpbmcoY29uc3QgV1RGOjpDU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNhY2hlLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTkgKzY2LDE5
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgLy8gU2V0cyB0aGUgY2FwYWNpdGllcyBvZiB0aGUg
cmVzb3VyY2UgY2FjaGUsIGV2aWN0aW5nIG9iamVjdHMgYXMgbmVjZXNzYXJ5LgotICAgIFdFQktJ
VF9BUEkgc3RhdGljIHZvaWQgc2V0Q2FwYWNpdGllcyhzaXplX3QgbWluRGVhZENhcGFjaXR5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWF4RGVhZENh
cGFjaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
Y2FwYWNpdHkpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q2FwYWNpdGllcyhz
aXplX3QgbWluRGVhZENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgbWF4RGVhZENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY2FwYWNpdHkpOwogCiAgICAgLy8gQ2xlYXJz
IHRoZSBjYWNoZSAoYXMgbXVjaCBhcyBwb3NzaWJsZTsgc29tZSByZXNvdXJjZXMgbWF5IG5vdCBi
ZQogICAgIC8vIGNsZWFyZWQgaWYgdGhleSBhcmUgYWN0aXZlbHkgcmVmZXJlbmNlZCkuCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBjbGVhcigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGlj
IHZvaWQgY2xlYXIoKTsKIAogICAgIC8vIEdldHMgdGhlIHVzYWdlIHN0YXRpc3RpY3MgZnJvbSB0
aGUgcmVzb3VyY2UgY2FjaGUuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBnZXRVc2FnZVN0
YXRzKFVzYWdlU3RhdHMqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGdldFVzYWdl
U3RhdHMoVXNhZ2VTdGF0cyopOwogCiAgICAgLy8gR2V0IHVzYWdlIHN0YXRzIGFib3V0IHRoZSBy
ZXNvdXJjZSBjYWNoZS4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGdldFJlc291cmNlVHlw
ZVN0YXRzKFJlc291cmNlVHlwZVN0YXRzKik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9p
ZCBnZXRSZXNvdXJjZVR5cGVTdGF0cyhSZXNvdXJjZVR5cGVTdGF0cyopOwogCiBwcml2YXRlOgog
ICAgIFdlYkNhY2hlKCk7ICAvLyBOb3QgaW50ZW5kZWQgdG8gYmUgaW5zdGFuY2VkLgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvci5oCShyZXZpc2lvbiA5MjMxMikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB0eXBlZGVmIHVuc2lnbmVk
IFdlYkNvbG9yOyAgLy8gUkdCQSBxdWFkLiBFcXVpdmFsZW50IHRvIFNrQ29sb3IuCiAKIC8vIFNl
dHMgdGhlIHZhbHVlcyBvZiBhIHNldCBvZiBuYW1lZCBjb2xvcnMuCi1XRUJLSVRfQVBJIHZvaWQg
c2V0TmFtZWRDb2xvcnMoY29uc3QgV2ViQ29sb3JOYW1lKiwgY29uc3QgV2ViQ29sb3IqLCBzaXpl
X3QgbGVuZ3RoKTsKK1dFQktJVF9FWFBPUlQgdm9pZCBzZXROYW1lZENvbG9ycyhjb25zdCBXZWJD
b2xvck5hbWUqLCBjb25zdCBXZWJDb2xvciosIHNpemVfdCBsZW5ndGgpOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
bW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
bW9uLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDIwICs2MywyMCBAQAogI2VuZGlmCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBFeHBvcnRlZCBzeW1ib2xzIG5lZWQgdG8gYmUg
YW5ub3RhdGVkIHdpdGggV0VCS0lUX0FQSQorLy8gRXhwb3J0ZWQgc3ltYm9scyBuZWVkIHRvIGJl
IGFubm90YXRlZCB3aXRoIFdFQktJVF9FWFBPUlQKIAogI2lmIGRlZmluZWQoV0VCS0lUX0RMTCkK
ICAgICAjaWYgZGVmaW5lZChXSU4zMikKICAgICAgICAgI2lmIFdFQktJVF9JTVBMRU1FTlRBVElP
TgotICAgICAgICAgICAgI2RlZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQor
ICAgICAgICAgICAgI2RlZmluZSBXRUJLSVRfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQog
ICAgICAgICAjZWxzZQotICAgICAgICAgICAgI2RlZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMo
ZGxsaW1wb3J0KQorICAgICAgICAgICAgI2RlZmluZSBXRUJLSVRfRVhQT1JUIF9fZGVjbHNwZWMo
ZGxsaW1wb3J0KQogICAgICAgICAjZW5kaWYKICAgICAjZWxzZQotICAgICAgICAjZGVmaW5lIFdF
QktJVF9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyAgICAgICAg
I2RlZmluZSBXRUJLSVRfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQi
KSkpCiAgICAgI2VuZGlmCiAjZWxzZQotICAgICNkZWZpbmUgV0VCS0lUX0FQSQorICAgICNkZWZp
bmUgV0VCS0lUX0VYUE9SVAogI2VuZGlmCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0x
MDQsNyArMTA0LDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBXZWJVQ2hhcjsKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAvLyBBc3NlcnRpb25zCiAKLVdFQktJVF9BUEkgdm9pZCBmYWlsZWRB
c3NlcnRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9u
LCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOworV0VCS0lUX0VYUE9SVCB2b2lkIGZhaWxlZEFzc2Vy
dGlvbihjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNv
bnN0IGNoYXIqIGFzc2VydGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIFdlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgewogcHVibGljOgog
ICAgIC8vIENsZWFycyB0aGUgY2FjaGUuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBjbGVh
cigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToK
ICAgICBXZWJDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlKCk7ICAvLyBOb3QgaW50ZW5k
ZWQgdG8gYmUgaW5zdGFuY2VkLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRE9NRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJET01FdmVudC5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkRPTUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDM4ICs2MCwzOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICBXRUJLSVRfQVBJ
IHZvaWQgcmVzZXQoKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkRPTUV2
ZW50Jik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIGFzc2lnbihjb25zdCBXZWJET01FdmVudCYpOwogCiAgICAgYm9vbCBpc051bGwoKSBj
b25zdCB7IHJldHVybiAhbV9wcml2YXRlOyB9CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0
eXBlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJOb2RlIHRhcmdldCgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViTm9kZSBjdXJyZW50VGFyZ2V0KCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRf
QVBJIFBoYXNlVHlwZSBldmVudFBoYXNlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGJ1
YmJsZXMoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0Owot
Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzVUlFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
Ym9vbCBpc01vdXNlRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNNdXRhdGlv
bkV2ZW50KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzS2V5Ym9hcmRFdmVudCgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1RleHRFdmVudCgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc0NvbXBvc2l0aW9uRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJv
b2wgaXNEcmFnRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNDbGlwYm9hcmRF
dmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc01lc3NhZ2VFdmVudCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1doZWVsRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRf
QVBJIGJvb2wgaXNCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgYm9vbCBpc092ZXJmbG93RXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNQ
YWdlVHJhbnNpdGlvbkV2ZW50KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzUG9wU3Rh
dGVFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1Byb2dyZXNzRXZlbnQoKSBj
b25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQo
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1dlYktpdFRyYW5zaXRpb25FdmVudCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0JlZm9yZUxvYWRFdmVudCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdl
Yk5vZGUgdGFyZ2V0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJOb2RlIGN1cnJlbnRU
YXJnZXQoKSBjb25zdDsKKworICAgIFdFQktJVF9FWFBPUlQgUGhhc2VUeXBlIGV2ZW50UGhhc2Uo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgYnViYmxlcygpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgYm9vbCBjYW5jZWxhYmxlKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JU
IGJvb2wgaXNVSUV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzTW91c2VF
dmVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc011dGF0aW9uRXZlbnQoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNLZXlib2FyZEV2ZW50KCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBib29sIGlzVGV4dEV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VY
UE9SVCBib29sIGlzQ29tcG9zaXRpb25FdmVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc0RyYWdFdmVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0NsaXBi
b2FyZEV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzTWVzc2FnZUV2ZW50
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzV2hlZWxFdmVudCgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzT3ZlcmZsb3dFdmVudCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgYm9vbCBpc1BhZ2VUcmFuc2l0aW9uRXZlbnQoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIGJvb2wgaXNQb3BTdGF0ZUV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBib29sIGlzUHJvZ3Jlc3NFdmVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBp
c1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBi
b29sIGlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBi
b29sIGlzQmVmb3JlTG9hZEV2ZW50KCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04KICAgICBXZWJET01FdmVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RXZlbnQ+
Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJET01FdmVudExpc3Rl
bmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRE9N
RXZlbnRMaXN0ZW5lci5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkRPTUV2ZW50TGlzdGVuZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsOCAr
NDcsOCBAQCBjbGFzcyBXZWJTdHJpbmc7CiAKIGNsYXNzIFdlYkRPTUV2ZW50TGlzdGVuZXIgewog
cHVibGljOgotICAgIFdFQktJVF9BUEkgV2ViRE9NRXZlbnRMaXN0ZW5lcigpOwotICAgIFdFQktJ
VF9BUEkgdmlydHVhbCB+V2ViRE9NRXZlbnRMaXN0ZW5lcigpOworICAgIFdFQktJVF9FWFBPUlQg
V2ViRE9NRXZlbnRMaXN0ZW5lcigpOworICAgIFdFQktJVF9FWFBPUlQgdmlydHVhbCB+V2ViRE9N
RXZlbnRMaXN0ZW5lcigpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYW4gZXZlbnQgaXMgcmVjZWl2
ZWQuCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KGNvbnN0IFdlYkRPTUV2ZW50JikgPSAw
OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRE9NTW91c2VFdmVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRPTU1vdXNl
RXZlbnQuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJET01Nb3VzZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDIxICs0MCwyMSBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViRE9NTW91c2VFdmVudCA6IHB1YmxpYyBXZWJE
T01FdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCS0lUX0FQSSBpbnQgc2NyZWVuWCgpIGNvbnN0Owot
ICAgIFdFQktJVF9BUEkgaW50IHNjcmVlblkoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGludCBj
bGllbnRYKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBpbnQgY2xpZW50WSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgaW50IGxheWVyWCgpOwotICAgIFdFQktJVF9BUEkgaW50IGxheWVyWSgpOwot
ICAgIFdFQktJVF9BUEkgaW50IG9mZnNldFgoKTsKLSAgICBXRUJLSVRfQVBJIGludCBvZmZzZXRZ
KCk7Ci0gICAgV0VCS0lUX0FQSSBpbnQgcGFnZVgoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGlu
dCBwYWdlWSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgaW50IHgoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIGludCB5KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgc2NyZWVuWCgpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgaW50IHNjcmVlblkoKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIGludCBjbGllbnRYKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgY2xpZW50
WSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgaW50IGxheWVyWCgpOworICAgIFdFQktJVF9F
WFBPUlQgaW50IGxheWVyWSgpOworICAgIFdFQktJVF9FWFBPUlQgaW50IG9mZnNldFgoKTsKKyAg
ICBXRUJLSVRfRVhQT1JUIGludCBvZmZzZXRZKCk7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgcGFn
ZVgoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGludCBwYWdlWSgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgaW50IHgoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGludCB5KCkgY29u
c3Q7CiAKLSAgICBXRUJLSVRfQVBJIGludCBidXR0b24oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJ
IGJvb2wgYnV0dG9uRG93bigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgaW50IGJ1dHRvbigp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBidXR0b25Eb3duKCkgY29uc3Q7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkRPTU11dGF0aW9uRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJET01NdXRhdGlvbkV2ZW50LmgJKHJldmlzaW9uIDkyMzEyKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRE9NTXV0YXRpb25FdmVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NiwxMSArNDYsMTEgQEAgcHVibGljOgogICAgICAgICBSZW1vdmFsICAg
ICAgICAgPSAzCiAgICAgfTsKIAotICAgIFdFQktJVF9BUEkgV2ViTm9kZSByZWxhdGVkTm9kZSgp
IGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHByZXZWYWx1ZSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViU3RyaW5nIG5ld1ZhbHVlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBX
ZWJTdHJpbmcgYXR0ck5hbWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIEF0dHJDaGFuZ2VUeXBl
IGF0dHJDaGFuZ2UoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYk5vZGUgcmVsYXRlZE5v
ZGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBwcmV2VmFsdWUoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBuZXdWYWx1ZSgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgV2ViU3RyaW5nIGF0dHJOYW1lKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBBdHRyQ2hhbmdlVHlwZSBhdHRyQ2hhbmdlKCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRPTVN0cmlu
Z0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJE
T01TdHJpbmdMaXN0LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRE9NU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3
IEBAIGNsYXNzIFdlYkRPTVN0cmluZ0xpc3QgewogcHVibGljOgogICAgIH5XZWJET01TdHJpbmdM
aXN0KCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJLSVRfQVBJIFdlYkRPTVN0cmluZ0xpc3QoKTsK
KyAgICBXRUJLSVRfRVhQT1JUIFdlYkRPTVN0cmluZ0xpc3QoKTsKICAgICBXZWJET01TdHJpbmdM
aXN0KGNvbnN0IFdlYkRPTVN0cmluZ0xpc3QmIGwpIHsgYXNzaWduKGwpOyB9CiAgICAgV2ViRE9N
U3RyaW5nTGlzdCYgb3BlcmF0b3I9KGNvbnN0IFdlYkRPTVN0cmluZ0xpc3QmIGwpCiAgICAgewpA
QCAtNTQsMTIgKzU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
IAotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhc3Np
Z24oY29uc3QgV2ViRE9NU3RyaW5nTGlzdCYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNl
dCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViRE9NU3RyaW5nTGlz
dCYpOwogCi0gICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZChjb25zdCBXZWJTdHJpbmcmKTsKLSAg
ICBXRUJLSVRfQVBJIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2Vi
U3RyaW5nIGl0ZW0odW5zaWduZWQpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhcHBl
bmQoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBpdGVtKHVuc2lnbmVkKSBjb25z
dDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkRPTVN0cmluZ0xpc3QoY29u
c3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkRPTVN0cmluZ0xpc3Q+Jik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGF0YS5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
NzEsMTIgKzcxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAot
ICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24o
Y29uc3QgV2ViRGF0YSYpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IHNpemUpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViRGF0YSYpOworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpOwogCi0gICAg
V0VCS0lUX0FQSSBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgY29uc3QgY2hh
ciogZGF0YSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgc2l6ZV90IHNpemUoKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdDsKIAogICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFzaXplKCk7IH0KICAgICBib29sIGlzTnVsbCgpIGNv
bnN0IHsgcmV0dXJuICFtX3ByaXZhdGU7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRGF0YWJhc2UuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywyNiAr
NDMsMjYgQEAgY2xhc3MgV2ViU3RyaW5nOwogCiBjbGFzcyBXZWJEYXRhYmFzZSB7CiBwdWJsaWM6
Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIGRpc3BsYXlOYW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBs
b25nIGVzdGltYXRlZFNpemUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlNlY3VyaXR5T3Jp
Z2luIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcg
bmFtZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGRpc3BsYXlOYW1lKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlNlY3VyaXR5T3JpZ2luIHNlY3VyaXR5T3JpZ2lu
KCkgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE9ic2VydmVyKFdlYkRh
dGFiYXNlT2JzZXJ2ZXIqKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJEYXRhYmFzZU9ic2Vy
dmVyKiBvYnNlcnZlcigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0T2JzZXJ2
ZXIoV2ViRGF0YWJhc2VPYnNlcnZlciopOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkRh
dGFiYXNlT2JzZXJ2ZXIqIG9ic2VydmVyKCk7CiAKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lk
IHVwZGF0ZURhdGFiYXNlU2l6ZSgKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHVwZGF0
ZURhdGFiYXNlU2l6ZSgKICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyBzaXplKTsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIHVwZGF0ZVNwYWNlQXZhaWxhYmxlKAorICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIHZvaWQgdXBkYXRlU3BhY2VBdmFpbGFibGUoCiAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgbG9uZyBsb25nIHNwYWNlQXZhaWxhYmxlKTsKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyB2b2lkIHJlc2V0U3BhY2VBdmFpbGFibGUoCisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCByZXNldFNwYWNlQXZhaWxhYmxlKAogICAgICAgICBjb25zdCBXZWJTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIpOwogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBjbG9zZURh
dGFiYXNlSW1tZWRpYXRlbHkoCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBjbG9zZURh
dGFiYXNlSW1tZWRpYXRlbHkoCiAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgV2ViU3RyaW5nJiBkYXRhYmFzZU5hbWUpOwogCiAgICAgLy8gREVQUkVDQVRF
RCAtIHRvIGJlIHJlbW92ZWQgc29vbgotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgdXBkYXRl
RGF0YWJhc2VTaXplKAorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgdXBkYXRlRGF0YWJh
c2VTaXplKAogICAgICAgICBjb25zdCBXZWJTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFdlYlN0cmluZyYgZGF0YWJhc2VOYW1lLAogICAgICAgICBsb25nIGxvbmcgZGF0YWJhc2VTaXpl
LCBsb25nIGxvbmcgc3BhY2VBdmFpbGFibGUpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCShyZXZpc2lvbiA5MjMxMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjcsMTEgKzY3LDExIEBAIHB1YmxpYzoKIAogICAgIC8vIEFzeW5jaHJvbm91
c2x5IGV4ZWN1dGVzIGRlYnVnZ2VyIGNvbW1hbmQgaW4gdGhlIHJlbmRlciB0aHJlYWQuCiAgICAg
Ly8gfGNhbGxlcklkZW50aWZpZXJ8IHdpbGwgYmUgdXNlZCBmb3Igc2VuZGluZyByZXNwb25zZS4K
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGV4ZWN1dGVEZWJ1Z2dlckNvbW1hbmQoCisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBleGVjdXRlRGVidWdnZXJDb21tYW5kKAogICAgICAg
ICBjb25zdCBXZWJTdHJpbmcmIGNvbW1hbmQsIGludCBjYWxsZXJJZGVudGlmaWVyKTsKIAogICAg
IC8vIEFzeW5jaHJvbm91c2x5IHJlcXVlc3QgZGVidWdnZXIgdG8gcGF1c2UgaW1tZWRpYXRlbHku
Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBkZWJ1Z2dlclBhdXNlU2NyaXB0KCk7CisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBkZWJ1Z2dlclBhdXNlU2NyaXB0KCk7CiAKICAgICBj
bGFzcyBNZXNzYWdlRGVzY3JpcHRvciB7CiAgICAgcHVibGljOgpAQCAtODAsMTUgKzgwLDE1IEBA
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBXZWJTdHJpbmcgbWVzc2FnZSgpID0gMDsKICAgICB9
OwogICAgIC8vIEFzeW5jaHJvbm91c2x5IHJlcXVlc3QgZGVidWdnZXIgdG8gcGF1c2UgaW1tZWRp
YXRlbHkgYW5kIHJ1biB0aGUgY29tbWFuZC4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGlu
dGVycnVwdEFuZERpc3BhdGNoKE1lc3NhZ2VEZXNjcmlwdG9yKik7Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYpOwot
ICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgcHJvY2Vzc1BlbmRpbmdNZXNzYWdlcygpOworICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW50ZXJydXB0QW5kRGlzcGF0Y2goTWVzc2FnZURl
c2NyaXB0b3IqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZEludGVycnVw
dEZvck1lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
dm9pZCBwcm9jZXNzUGVuZGluZ01lc3NhZ2VzKCk7CiAKICAgICB0eXBlZGVmIHZvaWQgKCpNZXNz
YWdlTG9vcERpc3BhdGNoSGFuZGxlcikoKTsKIAogICAgIC8vIEluc3RhbGxzIGRpc3BhdGNoIGhh
bmRsZSB0aGF0IGlzIGdvaW5nIHRvIGJlIGNhbGxlZCBwZXJpb2RpY2FsbHkKICAgICAvLyB3aGls
ZSBvbiBhIGJyZWFrcG9pbnQuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBzZXRNZXNzYWdl
TG9vcERpc3BhdGNoSGFuZGxlcihNZXNzYWdlTG9vcERpc3BhdGNoSGFuZGxlcik7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRNZXNzYWdlTG9vcERpc3BhdGNoSGFuZGxlcihNZXNz
YWdlTG9vcERpc3BhdGNoSGFuZGxlcik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzRnJvbnRlbmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0Zy
b250ZW5kLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRGV2VG9vbHNGcm9udGVuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw5IEBA
IGNsYXNzIFdlYlZpZXc7CiAvLyBkaXJlY3QgYW5kIGRlbGVnYXRlIEFwaXMgdG8gdGhlIGhvc3Qu
CiBjbGFzcyBXZWJEZXZUb29sc0Zyb250ZW5kIHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyBXZWJEZXZUb29sc0Zyb250ZW5kKiBjcmVhdGUoV2ViVmlldyogdmlldywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRGV2VG9vbHNGcm9u
dGVuZENsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGFwcGxpY2F0aW9uTG9jYWxlKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJEZXZUb29sc0Zyb250ZW5kKiBjcmVhdGUoV2ViVmlldyog
dmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViRGV2VG9vbHNGcm9udGVuZENsaWVudCogY2xpZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGFwcGxp
Y2F0aW9uTG9jYWxlKTsKIAogICAgIHZpcnR1YWwgfldlYkRldlRvb2xzRnJvbnRlbmQoKSB7fQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaAkocmV2aXNpb24gOTIzMTIpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrIDogcHVibGljIFdlYkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIGNyZWF0ZSgpOworICAgIFdFQktJVF9FWFBPUlQg
c3RhdGljIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogY3JlYXRlKCk7CiAgICAgfldl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpIHsgcmVzZXQoKTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIHNldENvbnRyb2xsZXIoV2ViRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7CkBA
IC00NCwxMiArNDQsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmco
KTsKICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uIGxhc3RPcmllbnRhdGlvbigpIGNv
bnN0OwogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHNldE9yaWVudGF0aW9uKFdlYkRldmljZU9yaWVu
dGF0aW9uJik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldE9yaWVudGF0aW9uKFdlYkRldmlj
ZU9yaWVudGF0aW9uJik7CiAKIHByaXZhdGU6CiAgICAgV2ViRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrKCkgeyBpbml0aWFsaXplKCk7IH0KLSAgICBXRUJLSVRfQVBJIHZvaWQgaW5pdGlhbGl6
ZSgpOwotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBpbml0aWFsaXplKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKICAgICBX
ZWJQcml2YXRlT3duUHRyPFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaz4gbV9j
bGllbnRNb2NrOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCShyZXZpc2lv
biA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIGRpZENoYW5nZURldmljZU9y
aWVudGF0aW9uKGNvbnN0IFdlYkRldmljZU9yaWVudGF0aW9uJik7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIGRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKGNvbnN0IFdlYkRldmljZU9yaWVudGF0
aW9uJik7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAkocmV2aXNpb24gOTIzMTIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MiwzOSArNzIsMzkgQEAgcHVibGljOgogICAgIH0KICAgICB2b2lkIGFzc2lnbihj
b25zdCBXZWJEb2N1bWVudCYgZSkgeyBXZWJOb2RlOjphc3NpZ24oZSk7IH0KIAotICAgIFdFQktJ
VF9BUEkgV2ViVVJMIHVybCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViVVJMIHVybCgp
IGNvbnN0OwogICAgIC8vIE5vdGU6IFNlY3VyaXR5IGNoZWNrcyBzaG91bGQgdXNlIHRoZSBzZWN1
cml0eU9yaWdpbigpLCBub3QgdXJsKCkuCi0gICAgV0VCS0lUX0FQSSBXZWJTZWN1cml0eU9yaWdp
biBzZWN1cml0eU9yaWdpbigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViU2VjdXJpdHlP
cmlnaW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5n
IGVuY29kaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZW5jb2Rpbmco
KSBjb25zdDsKIAogICAgIC8vIFRoZSB1cmwgb2YgdGhlIE9wZW5TZWFyY2ggRGVzcmlwdGlvbiBE
b2N1bWVudCAoaWYgYW55KS4KLSAgICBXRUJLSVRfQVBJIFdlYlVSTCBvcGVuU2VhcmNoRGVzY3Jp
cHRpb25VUkwoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCBvcGVuU2VhcmNoRGVz
Y3JpcHRpb25VUkwoKSBjb25zdDsKIAogICAgIC8vIFJldHVybnMgdGhlIGZyYW1lIHRoZSBkb2N1
bWVudCBiZWxvbmdzIHRvIG9yIDAgaWYgdGhlIGRvY3VtZW50IGlzIGZyYW1lbGVzcy4KLSAgICBX
RUJLSVRfQVBJIFdlYkZyYW1lKiBmcmFtZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBp
c0hUTUxEb2N1bWVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1hIVE1MRG9jdW1l
bnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNQbHVnaW5Eb2N1bWVudCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgV2ViVVJMIGJhc2VVUkwoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJ
IFdlYlVSTCBmaXJzdFBhcnR5Rm9yQ29va2llcygpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2Vi
RWxlbWVudCBkb2N1bWVudEVsZW1lbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYkVsZW1l
bnQgYm9keSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViRWxlbWVudCBoZWFkKCk7Ci0gICAg
V0VCS0lUX0FQSSBXZWJTdHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYk5v
ZGVDb2xsZWN0aW9uIGFsbCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCBmb3JtcyhXZWJWZWN0b3I8
V2ViRm9ybUVsZW1lbnQ+JikgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJVUkwgY29tcGxldGVV
UkwoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJFbGVtZW50IGdl
dEVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2Vi
Tm9kZSBmb2N1c2VkTm9kZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViRG9jdW1lbnRUeXBl
IGRvY3R5cGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Qg
YWNjZXNzaWJpbGl0eU9iamVjdCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViRnJhbWUq
IGZyYW1lKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzSFRNTERvY3VtZW50KCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzWEhUTUxEb2N1bWVudCgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1BsdWdpbkRvY3VtZW50KCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJVUkwgYmFzZVVSTCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2Vi
VVJMIGZpcnN0UGFydHlGb3JDb29raWVzKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJF
bGVtZW50IGRvY3VtZW50RWxlbWVudCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViRWxl
bWVudCBib2R5KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJFbGVtZW50IGhlYWQoKTsK
KyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgV2ViTm9kZUNvbGxlY3Rpb24gYWxsKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGZv
cm1zKFdlYlZlY3RvcjxXZWJGb3JtRWxlbWVudD4mKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IFdlYlVSTCBjb21wbGV0ZVVSTChjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIFdlYkVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBXZWJOb2RlIGZvY3VzZWROb2RlKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJEb2N1bWVudFR5cGUgZG9jdHlwZSgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5T2JqZWN0KCkgY29uc3Q7
CiAKICAgICAvLyBJbnNlcnRzIHRoZSBnaXZlbiBDU1Mgc291cmNlIGNvZGUgYXMgYSB1c2VyIHN0
eWxlc2hlZXQgaW4gdGhlIGRvY3VtZW50LgogICAgIC8vIE1lYW50IGZvciBwcm9ncmFtYXRpYy9v
bmUtb2ZmIGluamVjdGlvbiwgYXMgb3Bwb3NlZCB0bwogICAgIC8vIFdlYlZpZXc6OmFkZFVzZXJT
dHlsZVNoZWV0IHdoaWNoIGluc2VydHMgc3R5bGVzIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlCiAg
ICAgLy8gV2ViVmlldy4KLSAgICBXRUJLSVRfQVBJIHZvaWQgaW5zZXJ0VXNlclN0eWxlU2hlZXQo
Y29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBVc2VyU3R5bGVMZXZlbCk7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGluc2VydFVzZXJTdHlsZVNoZWV0KGNvbnN0IFdlYlN0cmluZyYgc291cmNl
Q29kZSwgVXNlclN0eWxlTGV2ZWwpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAg
V2ViRG9jdW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiYpOwpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnRUeXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnRUeXBl
LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RG9jdW1lbnRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgog
ICAgIH0KICAgICB2b2lkIGFzc2lnbihjb25zdCBXZWJEb2N1bWVudFR5cGUmIGUpIHsgV2ViTm9k
ZTo6YXNzaWduKGUpOyB9CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OwogCiAjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCiAgICAgV2ViRG9jdW1lbnRUeXBlKGNvbnN0IFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpEb2N1bWVudFR5cGU+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJEcmFnRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkRyYWdEYXRhLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNDMg
KzYwLDQzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIFdF
QktJVF9BUEkgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJEcmFnRGF0YSYpOworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJl
c2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJEcmFnRGF0YSYp
OwogCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9wcml2YXRlOyB9CiAKLSAg
ICBXRUJLSVRfQVBJIFdlYlN0cmluZyB1cmwoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQg
c2V0VVJMKGNvbnN0IFdlYlVSTCYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHVybCgp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRVUkwoY29uc3QgV2ViVVJMJik7CiAK
LSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB1cmxUaXRsZSgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgdm9pZCBzZXRVUkxUaXRsZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JU
IFdlYlN0cmluZyB1cmxUaXRsZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRV
UkxUaXRsZShjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGRv
d25sb2FkTWV0YWRhdGEoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RG93bmxvYWRN
ZXRhZGF0YShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBk
b3dubG9hZE1ldGFkYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldERvd25s
b2FkTWV0YWRhdGEoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmlu
ZyBmaWxlRXh0ZW5zaW9uKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEZpbGVFeHRl
bnNpb24oY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZmls
ZUV4dGVuc2lvbigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRGaWxlRXh0ZW5z
aW9uKGNvbnN0IFdlYlN0cmluZyYpOwogCi0gICAgV0VCS0lUX0FQSSBib29sIGNvbnRhaW5zRmls
ZW5hbWVzKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGZpbGVuYW1lcyhXZWJWZWN0b3I8
V2ViU3RyaW5nPiYpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRGaWxlbmFtZXMoY29u
c3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kVG9G
aWxlbmFtZXMoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGNvbnRh
aW5zRmlsZW5hbWVzKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGZpbGVuYW1lcyhX
ZWJWZWN0b3I8V2ViU3RyaW5nPiYpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRG
aWxlbmFtZXMoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgYXBwZW5kVG9GaWxlbmFtZXMoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRf
QVBJIFdlYlN0cmluZyBwbGFpblRleHQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
UGxhaW5UZXh0KGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5n
IHBsYWluVGV4dCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRQbGFpblRleHQo
Y29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBodG1sVGV4dCgp
IGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRIVE1MVGV4dChjb25zdCBXZWJTdHJpbmcm
KTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBodG1sVGV4dCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBzZXRIVE1MVGV4dChjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIFdF
QktJVF9BUEkgV2ViVVJMIGh0bWxCYXNlVVJMKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lk
IHNldEhUTUxCYXNlVVJMKGNvbnN0IFdlYlVSTCYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViVVJM
IGh0bWxCYXNlVVJMKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEhUTUxCYXNl
VVJMKGNvbnN0IFdlYlVSTCYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgZmlsZUNvbnRl
bnRGaWxlbmFtZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRGaWxlQ29udGVudEZp
bGVuYW1lKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGZp
bGVDb250ZW50RmlsZW5hbWUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Rmls
ZUNvbnRlbnRGaWxlbmFtZShjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIFdFQktJVF9BUEkgV2Vi
RGF0YSBmaWxlQ29udGVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRGaWxlQ29u
dGVudChjb25zdCBXZWJEYXRhJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJEYXRhIGZpbGVDb250
ZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEZpbGVDb250ZW50KGNvbnN0
IFdlYkRhdGEmKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkRyYWdEYXRh
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q+Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oCShyZXZpc2lv
biA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDksMjEgKzQ5LDIxIEBAIGNsYXNzIFdlYk5hbWVkTm9kZU1hcDsK
ICAgICAgICAgV2ViRWxlbWVudCYgb3BlcmF0b3I9KGNvbnN0IFdlYkVsZW1lbnQmIGUpIHsgV2Vi
Tm9kZTo6YXNzaWduKGUpOyByZXR1cm4gKnRoaXM7IH0KICAgICAgICAgdm9pZCBhc3NpZ24oY29u
c3QgV2ViRWxlbWVudCYgZSkgeyBXZWJOb2RlOjphc3NpZ24oZSk7IH0KIAotICAgICAgICBXRUJL
SVRfQVBJIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lU
X0FQSSBib29sIGlzVGV4dEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwotICAgICAgICBXRUJL
SVRfQVBJIFdlYlN0cmluZyB0YWdOYW1lKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9BUEkgYm9v
bCBoYXNUYWdOYW1lKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJ
IGJvb2wgaGFzQXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0OwotICAgICAgICBXRUJL
SVRfQVBJIFdlYlN0cmluZyBnZXRBdHRyaWJ1dGUoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7Ci0g
ICAgICAgIFdFQktJVF9BUEkgYm9vbCBzZXRBdHRyaWJ1dGUoY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKLSAgICAgICAgV0VCS0lUX0FQSSBXZWJOYW1lZE5v
ZGVNYXAgYXR0cmlidXRlcygpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBp
bm5lclRleHQoKTsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1RleHRGb3JtQ29udHJv
bEVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgdGFnTmFt
ZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaGFzVGFnTmFtZShjb25zdCBX
ZWJTdHJpbmcmKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGhhc0F0dHJpYnV0
ZShjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJp
bmcgZ2V0QXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0OworICAgICAgICBXRUJLSVRf
RVhQT1JUIGJvb2wgc2V0QXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiB2YWx1ZSk7CisgICAgICAgIFdFQktJVF9FWFBPUlQgV2ViTmFtZWROb2RlTWFwIGF0
dHJpYnV0ZXMoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgaW5uZXJU
ZXh0KCk7CiAKICAgICAgICAgLy8gUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBzcGVjaWZpZWQg
Zm9yIHRoaXMgZWxlbWVudC4gIFRoaXMgYXR0cmlidXRlCiAgICAgICAgIC8vIGlzIGluaGVyaXRl
ZCwgc28gdGhlIHJldHVybmVkIHZhbHVlIGlzIGRyYXduIGZyb20gdGhlIGNsb3Nlc3QgcGFyZW50
CiAgICAgICAgIC8vIGVsZW1lbnQgdGhhdCBoYXMgdGhlIGxhbmcgYXR0cmlidXRlIHNldCwgb3Ig
ZnJvbSB0aGUgSFRUUAogICAgICAgICAvLyAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIGFzIGEg
ZmFsbGJhY2suCi0gICAgICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGNvbXB1dGVJbmhlcml0ZWRM
YW5ndWFnZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjb21wdXRl
SW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgog
ICAgICAgICBXZWJFbGVtZW50KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50
PiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9udC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZvbnQuaAkocmV2aXNp
b24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb250LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViRm9udCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+V2ViRm9udCgpIHsgfQogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViRm9u
dCogY3JlYXRlKGNvbnN0IFdlYkZvbnREZXNjcmlwdGlvbiYpOworICAgIFdFQktJVF9FWFBPUlQg
c3RhdGljIFdlYkZvbnQqIGNyZWF0ZShjb25zdCBXZWJGb250RGVzY3JpcHRpb24mKTsKIAogICAg
IHZpcnR1YWwgV2ViRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsK
IApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9udENhY2hlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9udENhY2hlLmgJ
KHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9u
dENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEzICszOSwxMyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFdlYkZvbnRDYWNoZSB7CiBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBmb250IGRhdGEgY2FjaGUuCi0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgc2l6ZV90IGZvbnREYXRhQ291bnQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBz
aXplX3QgZm9udERhdGFDb3VudCgpOwogCiAgICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGlu
YWN0aXZlIGl0ZW1zIGluIHRoZSBmb250IGRhdGEgY2FjaGUuCi0gICAgV0VCS0lUX0FQSSBzdGF0
aWMgc2l6ZV90IGluYWN0aXZlRm9udERhdGFDb3VudCgpOworICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIHNpemVfdCBpbmFjdGl2ZUZvbnREYXRhQ291bnQoKTsKIAogICAgIC8vIENsZWFycyB0aGUg
Y2FjaGUuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBjbGVhcigpOworICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToKICAgICBXZWJGb250Q2FjaGUo
KTsgIC8vIE5vdCBpbnRlbmRlZCB0byBiZSBpbnN0YW5jZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2
aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtQ29u
dHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTkgKzU0LDE5IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgdm9pZCBhc3NpZ24oY29uc3QgV2ViRm9ybUNvbnRyb2xFbGVtZW50JiBlKSB7
IFdlYkVsZW1lbnQ6OmFzc2lnbihlKTsgfQogCi0gICAgV0VCS0lUX0FQSSBib29sIGlzRW5hYmxl
ZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7Ci0gICAg
V0VCS0lUX0FQSSBXZWJTdHJpbmcgZm9ybUNvbnRyb2xOYW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBXZWJTdHJpbmcgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBib29sIGlzRW5hYmxlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1JlYWRP
bmx5KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZm9ybUNvbnRyb2xOYW1l
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2
ZW50KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VF
dmVudCgpOwogCiAgICAgLy8gUmV0dXJucyB0aGUgbmFtZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZv
ciB0aGUgc3BlY2lmaWVkIHxlbGVtZW50fCB3aGVuCiAgICAgLy8gc3RvcmluZyBhdXRvZmlsbCBk
YXRhLiAgVGhpcyBpcyBlaXRoZXIgdGhlIGZpZWxkIG5hbWUgb3IgaXRzIGlkLCBhbiBlbXB0eQog
ICAgIC8vIHN0cmluZyBpZiBpdCBoYXMgbm8gbmFtZSBhbmQgbm8gaWQuCi0gICAgV0VCS0lUX0FQ
SSBXZWJTdHJpbmcgbmFtZUZvckF1dG9maWxsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBX
ZWJTdHJpbmcgbmFtZUZvckF1dG9maWxsKCkgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIFdlYkZv
cm1FbGVtZW50IGZvcm0oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkZvcm1FbGVtZW50
IGZvcm0oKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkZvcm1D
b250cm9sRWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEZvcm1Db250
cm9sRWxlbWVudD4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZv
cm1FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRm9ybUVsZW1lbnQuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSwxNSArNTks
MTUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIH0KICAgICAgICAgdm9pZCBhc3NpZ24o
Y29uc3QgV2ViRm9ybUVsZW1lbnQmIGVsZW1lbnQpIHsgV2ViRWxlbWVudDo6YXNzaWduKGVsZW1l
bnQpOyB9CiAKLSAgICAgICAgV0VCS0lUX0FQSSBib29sIGF1dG9Db21wbGV0ZSgpIGNvbnN0Owot
ICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhY3Rpb24oKSBjb25zdDsKLSAgICAgICAgV0VC
S0lUX0FQSSBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIFdlYlN0
cmluZyBtZXRob2QoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSBib29sIHdhc1VzZXJTdWJt
aXR0ZWQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSB2b2lkIHN1Ym1pdCgpOworICAgICAg
ICBXRUJLSVRfRVhQT1JUIGJvb2wgYXV0b0NvbXBsZXRlKCkgY29uc3Q7CisgICAgICAgIFdFQktJ
VF9FWFBPUlQgV2ViU3RyaW5nIGFjdGlvbigpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JU
IFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5n
IG1ldGhvZCgpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgd2FzVXNlclN1Ym1p
dHRlZCgpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc3VibWl0KCk7CiAgICAg
ICAgIC8vIEZJWE1FOiBEZXByZWNhdGUgYW5kIHJlcGxhY2Ugd2l0aCBXZWJWZWN0b3I8V2ViRWxl
bWVudD4uCi0gICAgICAgIFdFQktJVF9BUEkgdm9pZCBnZXROYW1lZEVsZW1lbnRzKGNvbnN0IFdl
YlN0cmluZyYsIFdlYlZlY3RvcjxXZWJOb2RlPiYpOwotICAgICAgICBXRUJLSVRfQVBJIHZvaWQg
Z2V0Rm9ybUNvbnRyb2xFbGVtZW50cyhXZWJWZWN0b3I8V2ViRm9ybUNvbnRyb2xFbGVtZW50PiYp
IGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0TmFtZWRFbGVtZW50cyhjb25z
dCBXZWJTdHJpbmcmLCBXZWJWZWN0b3I8V2ViTm9kZT4mKTsKKyAgICAgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIGdldEZvcm1Db250cm9sRWxlbWVudHMoV2ViVmVjdG9yPFdlYkZvcm1Db250cm9sRWxl
bWVudD4mKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgICAgICBXZWJG
b3JtRWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50
PiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCShyZXZp
c2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNs
YXNzIFdlYlZlY3RvcjsKIGNsYXNzIFdlYkZyYW1lIHsKIHB1YmxpYzoKICAgICAvLyBSZXR1cm5z
IHRoZSBudW1iZXIgb2YgbGl2ZSBXZWJGcmFtZSBvYmplY3RzLCB1c2VkIGZvciBsZWFrIGNoZWNr
aW5nLgotICAgIFdFQktJVF9BUEkgc3RhdGljIGludCBpbnN0YW5jZUNvdW50KCk7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgaW50IGluc3RhbmNlQ291bnQoKTsKIAogICAgIC8vIFRoZSB0d28g
ZnVuY3Rpb25zIGJlbG93IHJldHJpZXZlIHRoZSBXZWJGcmFtZSBpbnN0YW5jZXMgcmVsYXRpbmcg
dGhlCiAgICAgLy8gY3VycmVudGx5IGV4ZWN1dGluZyBKYXZhU2NyaXB0LiAgU2luY2UgSmF2YVNj
cmlwdCBjYW4gbWFrZSBmdW5jdGlvbgpAQCAtMTAxLDE5ICsxMDEsMTkgQEAgcHVibGljOgogICAg
IC8vIFRoZSAnY3VycmVudCBjb250ZXh0JyBpcyB0aGUgY29udGV4dCB0aGUgSlMgZW5naW5lIGlz
IGN1cnJlbnRseQogICAgIC8vIGluc2lkZSBvZjsgdGhlIGNvbnRleHQgdGhhdCBpcyBhdCB0aGUg
dG9wIG9mIHRoZSBKUyBmdW5jdGlvbiBzdGFjay4KICAgICAvLyBmcmFtZUZvckN1cnJlbnRDb250
ZXh0KCkgd291bGQgcmV0dXJuIGZyYW1lIEIgaW4gb3VyIGV4YW1wbGUuCi0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgV2ViRnJhbWUqIGZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBXZWJGcmFtZSogZnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOworICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViRnJhbWUqIGZyYW1lRm9yQ3VycmVudENvbnRleHQoKTsK
IAogI2lmIFdFQktJVF9VU0lOR19WOAogICAgIC8vIFJldHVybnMgdGhlIGZyYW1lIGNvcnJlc3Bv
bmRpbmcgdG8gdGhlIGdpdmVuIGNvbnRleHQuIFRoaXMgY2FuIHJldHVybiAwCiAgICAgLy8gaWYg
dGhlIGNvbnRleHQgaXMgZGV0YWNoZWQgZnJvbSB0aGUgZnJhbWUsIG9yIGlmIHRoZSBjb250ZXh0
IGRvZXNuJ3QKICAgICAvLyBjb3JyZXNwb25kIHRvIGEgZnJhbWUgKGUuZy4sIHdvcmtlcnMpLgot
ICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQodjg6OkhhbmRs
ZTx2ODo6Q29udGV4dD4pOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkZyYW1lKiBmcmFt
ZUZvckNvbnRleHQodjg6OkhhbmRsZTx2ODo6Q29udGV4dD4pOwogI2VuZGlmCiAKICAgICAvLyBS
ZXR1cm5zIHRoZSBmcmFtZSBpbnNpZGUgYSBnaXZlbiBmcmFtZSBvciBpZnJhbWUgZWxlbWVudC4g
UmV0dXJucyAwIGlmCiAgICAgLy8gdGhlIGdpdmVuIGVsZW1lbnQgaXMgbm90IGEgZnJhbWUsIGlm
cmFtZSBvciBpZiB0aGUgZnJhbWUgaXMgZW1wdHkuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
RnJhbWUqIGZyb21GcmFtZU93bmVyRWxlbWVudChjb25zdCBXZWJFbGVtZW50Jik7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgV2ViRnJhbWUqIGZyb21GcmFtZU93bmVyRWxlbWVudChjb25zdCBX
ZWJFbGVtZW50Jik7CiAKIAogICAgIC8vIEJhc2ljIHByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvbkNsaWVudE1vY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvbkNsaWVudE1vY2su
aAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTQgKzQ1LDE0IEBA
IGNsYXNzIFdlYlN0cmluZzsKIAogY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrIDogcHVi
bGljIFdlYkdlb2xvY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRp
YyBXZWJHZW9sb2NhdGlvbkNsaWVudE1vY2sqIGNyZWF0ZSgpOworICAgIFdFQktJVF9FWFBPUlQg
c3RhdGljIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jayogY3JlYXRlKCk7CiAgICAgfldlYkdlb2xv
Y2F0aW9uQ2xpZW50TW9jaygpIHsgcmVzZXQoKTsgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHNl
dFBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3Vy
YWN5KTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
V2ViU3RyaW5nJiBtZXNzYWdlKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UGVybWlzc2lvbihi
b29sKTsKLSAgICBXRUJLSVRfQVBJIGludCBudW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVz
dHMoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXRNb2NrKCk7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldFBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5KTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RXJyb3IoaW50
IGVycm9yQ29kZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0UGVybWlzc2lvbihib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIGludCBudW1iZXJP
ZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXRNb2NrKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jaygpOwotICAgIFdFQktJVF9B
UEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCiAgICAg
V2ViUHJpdmF0ZU93blB0cjxXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s+IG1fY2xpZW50
TW9jazsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBjbGFzcyBXZWJHZW9sb2NhdGlvbkVycm9yOwog
Ly8gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkgaGFzIGJlZW4g
cmVjZWl2ZWQuCiBjbGFzcyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgV2ViTm9u
Q29weWFibGUgewogcHVibGljOgotICAgIFdFQktJVF9BUEkgdm9pZCBwb3NpdGlvbkNoYW5nZWQo
Y29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiYpOwotICAgIFdFQktJVF9BUEkgdm9pZCBlcnJv
ck9jY3VycmVkKGNvbnN0IFdlYkdlb2xvY2F0aW9uRXJyb3ImKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgcG9zaXRpb25DaGFuZ2VkKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgZXJyb3JPY2N1cnJlZChjb25zdCBXZWJHZW9sb2NhdGlvbkVy
cm9yJik7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXIoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyKiBjKQpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25FcnJvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uRXJyb3IuaAko
cmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9s
b2NhdGlvbkVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDkgKzUwLDkgQEAgcHVibGljOgog
ICAgIFdlYkdlb2xvY2F0aW9uRXJyb3IoY29uc3QgV2ViR2VvbG9jYXRpb25FcnJvciYgb3RoZXIp
IHsgYXNzaWduKG90aGVyKTsgfQogICAgIH5XZWJHZW9sb2NhdGlvbkVycm9yKCkgeyByZXNldCgp
OyB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKEVycm9yIGNvZGUsIGNvbnN0IFdlYlN0
cmluZyYgbWVzc2FnZSk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJHZW9s
b2NhdGlvbkVycm9yJik7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGFzc2lnbihFcnJvciBjb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2Up
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViR2VvbG9jYXRpb25FcnJv
ciYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCiAjaWYgV0VCS0lUX0lNUExF
TUVOVEFUSU9OCiAgICAgV2ViR2VvbG9jYXRpb25FcnJvcihXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6R2VvbG9jYXRpb25FcnJvcj4pOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDggKzQz
LDggQEAgY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiAvLyBXZWJHZW9sb2NhdGlvbkNsaWVudDo6
Y2FuY2VsUGVybWlzc2lvblJlcXVlc3QgKHJlcXVlc3QgY2FuY2VsbGVkKS4KIGNsYXNzIFdlYkdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgewogcHVibGljOgotICAgIFdFQktJVF9BUEkgV2Vi
U2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZv
aWQgc2V0SXNBbGxvd2VkKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU2VjdXJpdHlPcmln
aW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SXNB
bGxvd2VkKGJvb2wpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24p
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgJKHJldmlz
aW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTMgKzQ1
LDEzIEBAIHB1YmxpYzoKICAgICBXZWJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpIHsgaW5pdCgpOyB9CiAgICAgfldlYkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJLSVRfQVBJIGludCBhZGQoY29uc3QgV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Jik7Ci0gICAgV0VCS0lUX0FQSSBib29s
IHJlbW92ZShjb25zdCBXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QmLCBp
bnQmKTsKLSAgICBXRUJLSVRfQVBJIGJvb2wgcmVtb3ZlKGludCwgV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Jik7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgYWRkKGNvbnN0
IFdlYktpdDo6V2ViR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCYpOworICAgIFdFQktJVF9F
WFBPUlQgYm9vbCByZW1vdmUoY29uc3QgV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0JiwgaW50Jik7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIHJlbW92ZShpbnQsIFdlYktp
dDo6V2ViR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCYpOwogCiBwcml2YXRlOgotICAgIFdF
QktJVF9BUEkgdm9pZCBpbml0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIGluaXQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQo
KTsKIAogICAgIFdlYlByaXZhdGVPd25QdHI8V2ViR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgaW50IG1fbGFzdElkOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDkgKzQ3LDkg
QEAgcHVibGljOgogICAgIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbiYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQogICAgIH5XZWJHZW9sb2NhdGlv
blBvc2l0aW9uKCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGRv
dWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91Ymxl
IHNwZWVkKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24mKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgYXNzaWduKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91Ymxl
IGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJs
ZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVk
ZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJv
dmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWdu
KGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
cmVzZXQoKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24oV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+KTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdseXBoQ2FjaGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHbHlwaENhY2hlLmgJ
KHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2x5
cGhDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2x5cGhDYWNoZSB7CiBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBnbHlwaCBjYWNoZS4KLSAgICBXRUJLSVRfQVBJIHN0YXRp
YyBzaXplX3QgcGFnZUNvdW50KCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgc2l6ZV90IHBh
Z2VDb3VudCgpOwogCiBwcml2YXRlOgogICAgIFdlYkdseXBoQ2FjaGUoKTsgIC8vIE5vdCBpbnRl
bmRlZCB0byBiZSBpbnN0YW5jZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJIVFRQQm9keS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkhUVFBCb2R5LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSFRUUEJvZHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsMzAgKzY3LDMw
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIFdFQktJVF9B
UEkgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAg
V0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJIVFRQQm9keSYpOworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBpbml0aWFsaXplKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7
CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJIVFRQQm9keSYpOwogCiAg
ICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9wcml2YXRlOyB9CiAKICAgICAvLyBS
ZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29tcHJpc2luZyB0aGUgaHR0cCBib2R5Lgot
ICAgIFdFQktJVF9BUEkgc2l6ZV90IGVsZW1lbnRDb3VudCgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgc2l6ZV90IGVsZW1lbnRDb3VudCgpIGNvbnN0OwogCiAgICAgLy8gU2V0cyB0aGUgdmFs
dWVzIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleC4gIFJldHVybnMgZmFsc2UgaWYK
ICAgICAvLyBpbmRleCBpcyBvdXQgb2YgYm91bmRzLgotICAgIFdFQktJVF9BUEkgYm9vbCBlbGVt
ZW50QXQoc2l6ZV90IGluZGV4LCBFbGVtZW50JikgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBi
b29sIGVsZW1lbnRBdChzaXplX3QgaW5kZXgsIEVsZW1lbnQmKSBjb25zdDsKIAogICAgIC8vIEFw
cGVuZCB0byB0aGUgbGlzdCBvZiBlbGVtZW50cy4KLSAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5k
RGF0YShjb25zdCBXZWJEYXRhJik7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZEZpbGUoY29u
c3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFwcGVuZERhdGEoY29uc3Qg
V2ViRGF0YSYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhcHBlbmRGaWxlKGNvbnN0IFdlYlN0
cmluZyYpOwogICAgIC8vIFBhc3NpbmcgLTEgdG8gZmlsZUxlbmd0aCBtZWFucyB0byB0aGUgZW5k
IG9mIHRoZSBmaWxlLgotICAgIFdFQktJVF9BUEkgdm9pZCBhcHBlbmRGaWxlUmFuZ2UoY29uc3Qg
V2ViU3RyaW5nJiwgbG9uZyBsb25nIGZpbGVTdGFydCwgbG9uZyBsb25nIGZpbGVMZW5ndGgsIGRv
dWJsZSBtb2RpZmljYXRpb25UaW1lKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kQmxvYihj
b25zdCBXZWJVUkwmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXBwZW5kRmlsZVJhbmdlKGNv
bnN0IFdlYlN0cmluZyYsIGxvbmcgbG9uZyBmaWxlU3RhcnQsIGxvbmcgbG9uZyBmaWxlTGVuZ3Ro
LCBkb3VibGUgbW9kaWZpY2F0aW9uVGltZSk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFwcGVu
ZEJsb2IoY29uc3QgV2ViVVJMJik7CiAKICAgICAvLyBJZGVudGlmaWVzIGEgcGFydGljdWxhciBm
b3JtIHN1Ym1pc3Npb24gaW5zdGFuY2UuICBBIHZhbHVlIG9mIDAgaXMKICAgICAvLyB1c2VkIHRv
IGluZGljYXRlIGFuIHVuc3BlY2lmaWVkIGlkZW50aWZpZXIuCi0gICAgV0VCS0lUX0FQSSBsb25n
IGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRJZGVudGlm
aWVyKGxvbmcgbG9uZyk7CisgICAgV0VCS0lUX0VYUE9SVCBsb25nIGxvbmcgaWRlbnRpZmllcigp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRJZGVudGlmaWVyKGxvbmcgbG9uZyk7
CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJIVFRQQm9keShjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybURhdGE+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJIVFRQTG9hZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQTG9hZEluZm8uaAkocmV2aXNpb24gOTIzMTIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQTG9hZEluZm8uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsMjcgKzUyLDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlz
OwogICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgV0VCS0lU
X0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJI
VFRQTG9hZEluZm8mIHIpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKCk7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFz
c2lnbihjb25zdCBXZWJIVFRQTG9hZEluZm8mIHIpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgaHR0
cFN0YXR1c0NvZGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0SFRUUFN0YXR1c0Nv
ZGUoaW50KTsKKyAgICBXRUJLSVRfRVhQT1JUIGludCBodHRwU3RhdHVzQ29kZSgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRIVFRQU3RhdHVzQ29kZShpbnQpOwogCi0gICAgV0VC
S0lUX0FQSSBXZWJTdHJpbmcgaHR0cFN0YXR1c1RleHQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJ
IHZvaWQgc2V0SFRUUFN0YXR1c1RleHQoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VY
UE9SVCBXZWJTdHJpbmcgaHR0cFN0YXR1c1RleHQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0SFRUUFN0YXR1c1RleHQoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRf
QVBJIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
dm9pZCBzZXRFbmNvZGVkRGF0YUxlbmd0aChsb25nIGxvbmcpOworICAgIFdFQktJVF9FWFBPUlQg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldEVuY29kZWREYXRhTGVuZ3RoKGxvbmcgbG9uZyk7CiAKLSAgICBXRUJLSVRfQVBJIHZv
aWQgYWRkUmVxdWVzdEhlYWRlcihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmlu
ZyYgdmFsdWUpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhZGRSZXNwb25zZUhlYWRlcihjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBhZGRSZXF1ZXN0SGVhZGVyKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiB2YWx1ZSk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFJlc3BvbnNlSGVhZGVy
KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSk7CiAKLSAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyByZXF1ZXN0SGVhZGVyc1RleHQoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIHZvaWQgc2V0UmVxdWVzdEhlYWRlcnNUZXh0KGNvbnN0IFdlYlN0cmluZyYpOworICAg
IFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHJlcXVlc3RIZWFkZXJzVGV4dCgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0SGVhZGVyc1RleHQoY29uc3QgV2ViU3RyaW5n
Jik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyByZXNwb25zZUhlYWRlcnNUZXh0KCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc3BvbnNlSGVhZGVyc1RleHQoY29uc3QgV2Vi
U3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcmVzcG9uc2VIZWFkZXJzVGV4
dCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRSZXNwb25zZUhlYWRlcnNUZXh0
KGNvbnN0IFdlYlN0cmluZyYpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2Vi
SFRUUExvYWRJbmZvKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRJbmZvPik7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhpc3RvcnlJdGVt
LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNjYgKzYwLDY2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCBpbml0
aWFsaXplKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2
b2lkIGFzc2lnbihjb25zdCBXZWJIaXN0b3J5SXRlbSYpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBpbml0aWFsaXplKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJIaXN0b3J5SXRlbSYpOwogCiAgICAgYm9v
bCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KIAotICAgIFdF
QktJVF9BUEkgV2ViU3RyaW5nIHVybFN0cmluZygpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRVUkxTdHJpbmcoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJT
dHJpbmcgdXJsU3RyaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFVSTFN0
cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIG9yaWdp
bmFsVVJMU3RyaW5nKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldE9yaWdpbmFsVVJM
U3RyaW5nKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIG9y
aWdpbmFsVVJMU3RyaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldE9yaWdp
bmFsVVJMU3RyaW5nKGNvbnN0IFdlYlN0cmluZyYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJp
bmcgcmVmZXJyZXIoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UmVmZXJyZXIoY29u
c3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcmVmZXJyZXIoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0UmVmZXJyZXIoY29uc3QgV2ViU3RyaW5n
Jik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0YXJnZXQoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIHZvaWQgc2V0VGFyZ2V0KGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBP
UlQgV2ViU3RyaW5nIHRhcmdldCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRU
YXJnZXQoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBwYXJl
bnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UGFyZW50KGNvbnN0IFdlYlN0cmlu
ZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHBhcmVudCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBzZXRQYXJlbnQoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJL
SVRfQVBJIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRU
aXRsZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRs
ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJp
bmcmKTsKIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGFsdGVybmF0ZVRpdGxlKCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEFsdGVybmF0ZVRpdGxlKGNvbnN0IFdlYlN0cmluZyYp
OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGFsdGVybmF0ZVRpdGxlKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFsdGVybmF0ZVRpdGxlKGNvbnN0IFdlYlN0cmluZyYp
OwogCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgbGFzdFZpc2l0ZWRUaW1lKCkgY29uc3Q7Ci0gICAg
V0VCS0lUX0FQSSB2b2lkIHNldExhc3RWaXNpdGVkVGltZShkb3VibGUpOworICAgIFdFQktJVF9F
WFBPUlQgZG91YmxlIGxhc3RWaXNpdGVkVGltZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRMYXN0VmlzaXRlZFRpbWUoZG91YmxlKTsKIAotICAgIFdFQktJVF9BUEkgV2ViUG9p
bnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFNjcm9sbE9m
ZnNldChjb25zdCBXZWJQb2ludCYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViUG9pbnQgc2Nyb2xs
T2Zmc2V0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFNjcm9sbE9mZnNldChj
b25zdCBXZWJQb2ludCYpOwogCi0gICAgV0VCS0lUX0FQSSBib29sIGlzVGFyZ2V0SXRlbSgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRJc1RhcmdldEl0ZW0oYm9vbCk7CisgICAgV0VC
S0lUX0VYUE9SVCBib29sIGlzVGFyZ2V0SXRlbSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRJc1RhcmdldEl0ZW0oYm9vbCk7CiAKLSAgICBXRUJLSVRfQVBJIGludCB2aXNpdENv
dW50KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFZpc2l0Q291bnQoaW50KTsKKyAg
ICBXRUJLSVRfRVhQT1JUIGludCB2aXNpdENvdW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHNldFZpc2l0Q291bnQoaW50KTsKIAotICAgIFdFQktJVF9BUEkgV2ViVmVjdG9yPFdl
YlN0cmluZz4gZG9jdW1lbnRTdGF0ZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRE
b2N1bWVudFN0YXRlKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+Jik7CisgICAgV0VCS0lUX0VY
UE9SVCBXZWJWZWN0b3I8V2ViU3RyaW5nPiBkb2N1bWVudFN0YXRlKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHNldERvY3VtZW50U3RhdGUoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4mKTsKIAotICAgIFdFQktJVF9BUEkgbG9uZyBsb25nIGl0ZW1TZXF1ZW5jZU51bWJlcigpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRJdGVtU2VxdWVuY2VOdW1iZXIobG9uZyBsb25n
KTsKKyAgICBXRUJLSVRfRVhQT1JUIGxvbmcgbG9uZyBpdGVtU2VxdWVuY2VOdW1iZXIoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SXRlbVNlcXVlbmNlTnVtYmVyKGxvbmcgbG9u
Zyk7CiAKLSAgICBXRUJLSVRfQVBJIGxvbmcgbG9uZyBkb2N1bWVudFNlcXVlbmNlTnVtYmVyKCkg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIobG9u
ZyBsb25nKTsKKyAgICBXRUJLSVRfRVhQT1JUIGxvbmcgbG9uZyBkb2N1bWVudFNlcXVlbmNlTnVt
YmVyKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldERvY3VtZW50U2VxdWVuY2VO
dW1iZXIobG9uZyBsb25nKTsKIAotICAgIFdFQktJVF9BUEkgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlIHN0YXRlT2JqZWN0KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFN0YXRlT2Jq
ZWN0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOworICAgIFdFQktJVF9FWFBPUlQg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHN0YXRlT2JqZWN0KCkgY29uc3Q7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldFN0YXRlT2JqZWN0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgaHR0cENvbnRlbnRUeXBlKCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhUVFBDb250ZW50VHlwZShjb25zdCBXZWJTdHJpbmcm
KTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBodHRwQ29udGVudFR5cGUoKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SFRUUENvbnRlbnRUeXBlKGNvbnN0IFdlYlN0cmlu
ZyYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJIVFRQQm9keSBodHRwQm9keSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgdm9pZCBzZXRIVFRQQm9keShjb25zdCBXZWJIVFRQQm9keSYpOworICAgIFdF
QktJVF9FWFBPUlQgV2ViSFRUUEJvZHkgaHR0cEJvZHkoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgc2V0SFRUUEJvZHkoY29uc3QgV2ViSFRUUEJvZHkmKTsKIAotICAgIFdFQktJVF9B
UEkgV2ViVmVjdG9yPFdlYkhpc3RvcnlJdGVtPiBjaGlsZHJlbigpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgdm9pZCBzZXRDaGlsZHJlbihjb25zdCBXZWJWZWN0b3I8V2ViSGlzdG9yeUl0ZW0+Jik7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZFRvQ2hpbGRyZW4oY29uc3QgV2ViSGlzdG9yeUl0
ZW0mKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlZlY3RvcjxXZWJIaXN0b3J5SXRlbT4gY2hpbGRy
ZW4oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Q2hpbGRyZW4oY29uc3QgV2Vi
VmVjdG9yPFdlYkhpc3RvcnlJdGVtPiYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhcHBlbmRU
b0NoaWxkcmVuKGNvbnN0IFdlYkhpc3RvcnlJdGVtJik7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KICAgICBXZWJIaXN0b3J5SXRlbShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
SGlzdG9yeUl0ZW0+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJEYXRhYmFzZUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCRGF0YWJhc2VFcnJvci5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXJyb3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAg
IH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViSURCRGF0YWJhc2VFcnJv
ciYpOwotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpOworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCByZXNldCgpOwogCi0gICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBzaG9ydCBjb2RlKCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgdW5zaWduZWQgc2hvcnQgY29kZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
V2ViU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgog
ICAgIFdlYklEQkRhdGFiYXNlRXJyb3IoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlRXJyb3I+Jik7CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBw
cml2YXRlOgotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24odW5zaWduZWQgc2hvcnQgY29kZSwg
Y29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWdu
KHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7CiAKICAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+IG1fcHJpdmF0ZTsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCShy
ZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZh
Y3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBXZWJTZWN1cml0
eU9yaWdpbjsKIC8vIGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlNpbXBsZURCLwog
Y2xhc3MgV2ViSURCRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
SURCRmFjdG9yeSogY3JlYXRlKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViSURCRmFj
dG9yeSogY3JlYXRlKCk7CiAKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5KCkgeyB9CiAKQEAg
LTYzLDggKzYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShj
b25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBVc2VkIGZvciBEdW1wUmVuZGVyVHJlZSB0
ZXN0cy4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE92ZXJyaWRlQmFja2luZ1N0b3Jl
VHlwZShCYWNraW5nU3RvcmVUeXBlKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldFRl
bXBvcmFyeURhdGFiYXNlRm9sZGVyKGNvbnN0IFdlYlN0cmluZyYgcGF0aCk7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRPdmVycmlkZUJhY2tpbmdTdG9yZVR5cGUoQmFja2luZ1N0
b3JlVHlwZSk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRUZW1wb3JhcnlEYXRh
YmFzZUZvbGRlcihjb25zdCBXZWJTdHJpbmcmIHBhdGgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaAko
cmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJL
ZXkuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDEzIEBAIHB1YmxpYzoKICAgICBXZWJJ
REJLZXkoKSB7IH0KICAgICB+V2ViSURCS2V5KCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBXZWJJREJLZXkgY3JlYXRlTnVsbCgpOwotICAgIFdFQktJVF9BUEkgc3RhdGlj
IFdlYklEQktleSBjcmVhdGVTdHJpbmcoY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZURhdGUoZG91YmxlKTsKLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyBXZWJJREJLZXkgY3JlYXRlTnVtYmVyKGRvdWJsZSk7Ci0gICAgV0VCS0lUX0FQSSBzdGF0
aWMgV2ViSURCS2V5IGNyZWF0ZUludmFsaWQoKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJJ
REJLZXkgY3JlYXRlRnJvbVZhbHVlQW5kS2V5UGF0aChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUmLCBjb25zdCBXZWJJREJLZXlQYXRoJik7Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlIGluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUoY29u
c3QgV2ViSURCS2V5JiwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2Vi
SURCS2V5UGF0aCYpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleSBjcmVhdGVO
dWxsKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZVN0cmluZyhj
b25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJJREJLZXkgY3Jl
YXRlRGF0ZShkb3VibGUpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleSBjcmVh
dGVOdW1iZXIoZG91YmxlKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJJREJLZXkgY3Jl
YXRlSW52YWxpZCgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleSBjcmVhdGVG
cm9tVmFsdWVBbmRLZXlQYXRoKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0
IFdlYklEQktleVBhdGgmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUgaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZShjb25zdCBXZWJJREJL
ZXkmLCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXlQYXRo
Jik7CiAKICAgICBXZWJJREJLZXkoY29uc3QgV2ViSURCS2V5JiBlKSB7IGFzc2lnbihlKTsgfQog
ICAgIFdlYklEQktleSYgb3BlcmF0b3I9KGNvbnN0IFdlYklEQktleSYgZSkKQEAgLTU4LDEzICs1
OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICBXRUJL
SVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleSYpOwotICAgIFdFQktJVF9BUEkgdm9p
ZCBhc3NpZ25OdWxsKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnblN0cmluZyhjb25zdCBX
ZWJTdHJpbmcmKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduRGF0ZShkb3VibGUpOwotICAg
IFdFQktJVF9BUEkgdm9pZCBhc3NpZ25OdW1iZXIoZG91YmxlKTsKLSAgICBXRUJLSVRfQVBJIHZv
aWQgYXNzaWduSW52YWxpZCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViSURCS2V5Jik7CisgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGFzc2lnbk51bGwoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduU3Ry
aW5nKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ25EYXRl
KGRvdWJsZSk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbk51bWJlcihkb3VibGUpOwor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ25JbnZhbGlkKCk7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CiAKICAgICBlbnVtIFR5cGUgewogICAgICAgICBOdWxsVHlwZSA9IDAs
CkBAIC03NSwxMCArNzUsMTAgQEAgcHVibGljOgogICAgICAgICBJbnZhbGlkVHlwZQogICAgIH07
CiAKLSAgICBXRUJLSVRfQVBJIFR5cGUgdHlwZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2Vi
U3RyaW5nIHN0cmluZygpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBTdHJpbmdUeXBlLgotICAg
IFdFQktJVF9BUEkgZG91YmxlIGRhdGUoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgRGF0ZVR5
cGUuCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgbnVtYmVyKCkgY29uc3Q7IC8vIE9ubHkgdmFsaWQg
Zm9yIE51bWJlclR5cGUuCisgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBzdHJpbmcoKSBjb25zdDsgLy8gT25seSB2YWxpZCBm
b3IgU3RyaW5nVHlwZS4KKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBkYXRlKCkgY29uc3Q7IC8v
IE9ubHkgdmFsaWQgZm9yIERhdGVUeXBlLgorICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIG51bWJl
cigpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBOdW1iZXJUeXBlLgogCiAjaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCiAgICAgV2ViSURCS2V5KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJLZXk+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJL
ZXlQYXRoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCS2V5UGF0aC5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQktleVBhdGguaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTMgKzQwLDEzIEBA
IGNsYXNzIFdlYlN0cmluZzsKIAogY2xhc3MgV2ViSURCS2V5UGF0aCB7CiBwdWJsaWM6Ci0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViU3RyaW5nJik7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2Vi
U3RyaW5nJik7CiAgICAgV2ViSURCS2V5UGF0aChjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRo
KSB7IGFzc2lnbihrZXlQYXRoKTsgfQogICAgIH5XZWJJREJLZXlQYXRoKCkgeyByZXNldCgpOyB9
CiAKLSAgICBXRUJLSVRfQVBJIGludCBwYXJzZUVycm9yKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQ
SSB2b2lkIGFzc2lnbihjb25zdCBXZWJJREJLZXlQYXRoJik7Ci0gICAgV0VCS0lUX0FQSSB2b2lk
IHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgcGFyc2VFcnJvcigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViSURCS2V5UGF0aCYpOworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAg
ICAgb3BlcmF0b3IgY29uc3QgV1RGOjpWZWN0b3I8V2ViQ29yZTo6SURCS2V5UGF0aEVsZW1lbnQs
IDA+JiAoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QktleVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCS2V5UmFuZ2UuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxNCArNDMs
MTQgQEAgcHVibGljOgogICAgIFdlYklEQktleVJhbmdlKGNvbnN0IFdlYklEQktleVJhbmdlJiBr
ZXlSYW5nZSkgeyBhc3NpZ24oa2V5UmFuZ2UpOyB9CiAgICAgV2ViSURCS2V5UmFuZ2UoY29uc3Qg
V2ViSURCS2V5JiBsb3dlciwgY29uc3QgV2ViSURCS2V5JiB1cHBlciwgYm9vbCBsb3dlck9wZW4s
IGJvb2wgdXBwZXJPcGVuKSB7IGFzc2lnbihsb3dlciwgdXBwZXIsIGxvd2VyT3BlbiwgdXBwZXJP
cGVuKTsgfQogCi0gICAgV0VCS0lUX0FQSSBXZWJJREJLZXkgbG93ZXIoKSBjb25zdDsKLSAgICBX
RUJLSVRfQVBJIFdlYklEQktleSB1cHBlcigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBs
b3dlck9wZW4oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgdXBwZXJPcGVuKCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBXZWJJREJLZXkgbG93ZXIoKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIFdlYklEQktleSB1cHBlcigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBs
b3dlck9wZW4oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgdXBwZXJPcGVuKCkgY29u
c3Q7CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleVJhbmdlJik7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJJREJLZXkmIGxvd2VyLCBjb25z
dCBXZWJJREJLZXkmIHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4pOwotICAg
IFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24o
Y29uc3QgV2ViSURCS2V5UmFuZ2UmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNv
bnN0IFdlYklEQktleSYgbG93ZXIsIGNvbnN0IFdlYklEQktleSYgdXBwZXIsIGJvb2wgbG93ZXJP
cGVuLCBib29sIHVwcGVyT3Blbik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAK
ICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJJREJLZXlSYW5nZShjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkltYWdlLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTMg
KzcwLDEzIEBAIHB1YmxpYzoKICAgICAvLyBEZWNvZGVzIHRoZSBnaXZlbiBpbWFnZSBkYXRhLiAg
SWYgdGhlIGltYWdlIGhhcyBtdWx0aXBsZSBmcmFtZXMsCiAgICAgLy8gdGhlbiB0aGUgZnJhbWUg
d2hvc2Ugc2l6ZSBpcyBkZXNpcmVkU2l6ZSBpcyByZXR1cm5lZC4gIE90aGVyd2lzZSwKICAgICAv
LyB0aGUgZmlyc3QgZnJhbWUgaXMgcmV0dXJuZWQuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
SW1hZ2UgZnJvbURhdGEoY29uc3QgV2ViRGF0YSYsIGNvbnN0IFdlYlNpemUmIGRlc2lyZWRTaXpl
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJJbWFnZSBmcm9tRGF0YShjb25zdCBXZWJE
YXRhJiwgY29uc3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpOwogCi0gICAgV0VCS0lUX0FQSSB2b2lk
IHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJJbWFnZSYpOwor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBh
c3NpZ24oY29uc3QgV2ViSW1hZ2UmKTsKIAotICAgIFdFQktJVF9BUEkgYm9vbCBpc051bGwoKSBj
b25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlNpemUgc2l6ZSgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgYm9vbCBpc051bGwoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlNpemUgc2l6
ZSgpIGNvbnN0OwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViSW1hZ2UoY29u
c3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYpOwpAQCAtMTE2LDcgKzExNiw3IEBA
IHByaXZhdGU6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KCkgeyBtX2ltYWdlUmVmID0gMDsg
fQotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oQ0dJbWFnZVJlZik7CisgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGFzc2lnbihDR0ltYWdlUmVmKTsKICAgICBDR0ltYWdlUmVmIG1faW1hZ2VSZWY7
CiAjZW5kaWYKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbWFn
ZURlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJbWFnZURlY29kZXIuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMzIgKzU1
LDMyIEBAIHB1YmxpYzoKIAogICAgIC8vIFNldHMgZGF0YSBjb250ZW50cyBmb3IgdW5kZXJseWlu
ZyBkZWNvZGVyLiBBbGwgdGhlIEFQSSBtZXRob2RzCiAgICAgLy8gcmVxdWlyZSB0aGF0IHNldERh
dGEoKSBpcyBjYWxsZWQgcHJpb3IgdG8gdGhlaXIgdXNlLgotICAgIFdFQktJVF9BUEkgdm9pZCBz
ZXREYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0RGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBib29sIGFsbERh
dGFSZWNlaXZlZCk7CiAKICAgICAvLyBEZWxldGVzIG93bmVkIGRlY29kZXIuCi0gICAgV0VCS0lU
X0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgaW1hZ2UgZGVjb2RpbmcgZmFpbGVkLgotICAgIFdFQktJVF9B
UEkgYm9vbCBpc0ZhaWxlZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0ZhaWxl
ZCgpIGNvbnN0OwogICAgIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzaXplIGluZm9ybWF0aW9u
IGlzIGF2YWlsYWJsZSBmb3IgdGhlIGRlY29kZXIuCi0gICAgV0VCS0lUX0FQSSBib29sIGlzU2l6
ZUF2YWlsYWJsZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1NpemVBdmFpbGFi
bGUoKSBjb25zdDsKIAogICAgIC8vIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGltYWdlLgotICAg
IFdFQktJVF9BUEkgV2ViU2l6ZSBzaXplKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJT
aXplIHNpemUoKSBjb25zdDsKIAogICAgIC8vIEdpdmVzIGZyYW1lIGNvdW50IGZvciB0aGUgaW1h
Z2UuIEZvciBtdWx0aXBsZSBmcmFtZXMsIGRlY29kZXIgc2NhbnMgdGhlIGltYWdlIGRhdGEgZm9y
IHRoZSBjb3VudC4KLSAgICBXRUJLSVRfQVBJIHNpemVfdCBmcmFtZUNvdW50KCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgZnJhbWVDb3VudCgpIGNvbnN0OwogCiAgICAgLy8gUmV0
dXJucyBpZiB0aGUgZnJhbWUgYXQgZ2l2ZW4gaW5kZXggaXMgY29tcGxldGVseSBkZWNvZGVkLgot
ICAgIFdFQktJVF9BUEkgYm9vbCBpc0ZyYW1lQ29tcGxldGVBdEluZGV4KGludCBpbmRleCkgY29u
c3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzRnJhbWVDb21wbGV0ZUF0SW5kZXgoaW50IGlu
ZGV4KSBjb25zdDsKIAogICAgIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgV2ViSW1hZ2UgZnJvbSBi
dWZmZXIgYXQgdGhlIGluZGV4LgotICAgIFdFQktJVF9BUEkgV2ViSW1hZ2UgZ2V0RnJhbWVBdElu
ZGV4KGludCBpbmRleCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJJbWFnZSBnZXRGcmFt
ZUF0SW5kZXgoaW50IGluZGV4KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICAvLyBDcmVhdGVzIHR5
cGUtc3BlY2lmaWMgZGVjb2Rlci4KLSAgICBXRUJLSVRfQVBJIHZvaWQgaW5pdChUeXBlIHR5cGUp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0KFR5cGUgdHlwZSk7CiAKICAgICBXZWJJbWFn
ZURlY29kZXJQcml2YXRlKiBtX3ByaXZhdGU7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgJKHJldmlzaW9uIDkyMzEyKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDMyICs1NCwzMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICAv
LyBUaGlzIHJldHVybnMgdHJ1ZSBmb3IgYWxsIG9mIHRleHRmaWVsZC1sb29raW5nIHR5cGVzIHN1
Y2ggYXMgdGV4dCwKICAgICAgICAgLy8gcGFzc3dvcmQsIHNlYXJjaCwgZW1haWwsIHVybCwgYW5k
IG51bWJlci4KLSAgICAgICAgV0VCS0lUX0FQSSBib29sIGlzVGV4dEZpZWxkKCkgY29uc3Q7Cisg
ICAgICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0OwogICAgICAgICAv
LyBUaGlzIHJldHVybnMgdHJ1ZSBvbmx5IGZvciB0eXBlPXRleHQuCi0gICAgICAgIFdFQktJVF9B
UEkgYm9vbCBpc1RleHQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSBib29sIGlzUGFzc3dv
cmRGaWVsZCgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIGJvb2wgaXNJbWFnZUJ1dHRvbigp
IGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIGJvb2wgYXV0b0NvbXBsZXRlKCkgY29uc3Q7Ci0g
ICAgICAgIFdFQktJVF9BUEkgaW50IG1heExlbmd0aCgpIGNvbnN0OwotICAgICAgICBXRUJLSVRf
QVBJIGJvb2wgaXNBY3RpdmF0ZWRTdWJtaXQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSB2
b2lkIHNldEFjdGl2YXRlZFN1Ym1pdChib29sKTsKLSAgICAgICAgV0VCS0lUX0FQSSBpbnQgc2l6
ZSgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3Ry
aW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7Ci0gICAgICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIHZhbHVlKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTdWdn
ZXN0ZWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKTsKLSAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJp
bmcgc3VnZ2VzdGVkVmFsdWUoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFBs
YWNlaG9sZGVyKGNvbnN0IFdlYlN0cmluZyYpOwotICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmlu
ZyBwbGFjZWhvbGRlcigpIGNvbnN0OwotICAgICAgICBXRUJLSVRfQVBJIGJvb2wgaXNBdXRvZmls
bGVkKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wp
OwotICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50LCBpbnQpOwot
ICAgICAgICBXRUJLSVRfQVBJIGludCBzZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgICAgICBX
RUJLSVRfQVBJIGludCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0FQSSBi
b29sIGlzVmFsaWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKLSAgICAgICAgV0VCS0lU
X0FQSSBib29sIGlzQ2hlY2tlZCgpIGNvbnN0OworICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wg
aXNUZXh0KCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkRmll
bGQoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzSW1hZ2VCdXR0b24oKSBj
b25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGF1dG9Db21wbGV0ZSgpIGNvbnN0Owor
ICAgICAgICBXRUJLSVRfRVhQT1JUIGludCBtYXhMZW5ndGgoKSBjb25zdDsKKyAgICAgICAgV0VC
S0lUX0VYUE9SVCBib29sIGlzQWN0aXZhdGVkU3VibWl0KCkgY29uc3Q7CisgICAgICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRBY3RpdmF0ZWRTdWJtaXQoYm9vbCk7CisgICAgICAgIFdFQktJVF9F
WFBPUlQgaW50IHNpemUoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFZh
bHVlKGNvbnN0IFdlYlN0cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOworICAg
ICAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB2YWx1ZSgpIGNvbnN0OworICAgICAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgc2V0U3VnZ2VzdGVkVmFsdWUoY29uc3QgV2ViU3RyaW5nJik7CisgICAg
ICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHN1Z2dlc3RlZFZhbHVlKCkgY29uc3Q7CisgICAg
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRQbGFjZWhvbGRlcihjb25zdCBXZWJTdHJpbmcmKTsK
KyAgICAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcGxhY2Vob2xkZXIoKSBjb25zdDsKKyAg
ICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzQXV0b2ZpbGxlZCgpIGNvbnN0OworICAgICAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0QXV0b2ZpbGxlZChib29sKTsKKyAgICAgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCwgaW50KTsKKyAgICAgICAgV0VCS0lUX0VY
UE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0VYUE9SVCBp
bnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1Zh
bGlkVmFsdWUoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7CisgICAgICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc0NoZWNrZWQoKSBjb25zdDsKIAogICAgICAgICAvLyBFeHBvc2VzIHRoZSBkZWZhdWx0
IHZhbHVlIG9mIHRoZSBtYXhMZW5ndGggYXR0cmlidXRlLgotICAgICAgICBXRUJLSVRfQVBJIHN0
YXRpYyBpbnQgZGVmYXVsdE1heExlbmd0aCgpOworICAgICAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyBpbnQgZGVmYXVsdE1heExlbmd0aCgpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAg
ICAgICAgIFdlYklucHV0RWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudD4mKTsKQEAgLTg4LDcgKzg4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAj
ZW5kaWYKICAgICB9OwogCi0gICAgV0VCS0lUX0FQSSBXZWJJbnB1dEVsZW1lbnQqIHRvV2ViSW5w
dXRFbGVtZW50KFdlYkVsZW1lbnQqKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYklucHV0RWxlbWVu
dCogdG9XZWJJbnB1dEVsZW1lbnQoV2ViRWxlbWVudCopOwogCiAgICAgaW5saW5lIGNvbnN0IFdl
YklucHV0RWxlbWVudCogdG9XZWJJbnB1dEVsZW1lbnQoY29uc3QgV2ViRWxlbWVudCogZWxlbWVu
dCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5w
dXRFdmVudC5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklucHV0RXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDcgKzIzNyw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFNldHMga2V5SWRlbnRpZmllciBiYXNlZCBvbiB0aGUgdmFsdWUgb2Yg
d2luZG93c0tleUNvZGUuICBUaGlzIGlzCiAgICAgLy8gaGFuZHkgZm9yIGdlbmVyYXRpbmcgc3lu
dGhldGljIGtleWJvYXJkIGV2ZW50cy4KLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0S2V5SWRlbnRp
ZmllckZyb21XaW5kb3dzS2V5Q29kZSgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRLZXlJ
ZGVudGlmaWVyRnJvbVdpbmRvd3NLZXlDb2RlKCk7CiB9OwogCiAvLyBXZWJNb3VzZUV2ZW50IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaAkocmV2aXNpb24g
OTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMjcgKzQwLDI3IEBAIGNsYXNzIFdlYktpdENsaWVudDsKIC8vIE11c3Qg
YmUgY2FsbGVkIG9uIHRoZSB0aHJlYWQgdGhhdCB3aWxsIGJlIHRoZSBtYWluIFdlYktpdCB0aHJl
YWQgYmVmb3JlCiAvLyB1c2luZyBhbnkgb3RoZXIgV2ViS2l0IEFQSXMuICBUaGUgcHJvdmlkZWQg
V2ViS2l0Q2xpZW50IG11c3QgYmUgbm9uLW51bGwKIC8vIGFuZCBtdXN0IHJlbWFpbiB2YWxpZCB1
bnRpbCB0aGUgY3VycmVudCB0aHJlYWQgY2FsbHMgc2h1dGRvd24uCi1XRUJLSVRfQVBJIHZvaWQg
aW5pdGlhbGl6ZShXZWJLaXRDbGllbnQqKTsKK1dFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXpl
KFdlYktpdENsaWVudCopOwogCiAvLyBPbmNlIHNodXRkb3duLCB0aGUgV2ViS2l0Q2xpZW50IHBh
c3NlZCB0byBpbml0aWFsaXplIHdpbGwgbm8gbG9uZ2VyIGJlCiAvLyBhY2Nlc3NlZC4gIE5vIG90
aGVyIFdlYktpdCBvYmplY3RzIHNob3VsZCBiZSBpbiB1c2Ugd2hlbiB0aGlzIGZ1bmN0aW9uCiAv
LyBpcyBjYWxsZWQuICBBbnkgYmFja2dyb3VuZCB0aHJlYWRzIGNyZWF0ZWQgYnkgV2ViS2l0IGFy
ZSBwcm9taXNlZCB0byBiZQogLy8gdGVybWluYXRlZCBieSB0aGUgdGltZSB0aGlzIGZ1bmN0aW9u
IHJldHVybnMuCi1XRUJLSVRfQVBJIHZvaWQgc2h1dGRvd24oKTsKK1dFQktJVF9FWFBPUlQgdm9p
ZCBzaHV0ZG93bigpOwogCiAvLyBSZXR1cm5zIHRoZSBXZWJLaXRDbGllbnQgaW5zdGFuY2UgcGFz
c2VkIHRvIGluaXRpYWxpemUuCi1XRUJLSVRfQVBJIFdlYktpdENsaWVudCogd2ViS2l0Q2xpZW50
KCk7CitXRUJLSVRfRVhQT1JUIFdlYktpdENsaWVudCogd2ViS2l0Q2xpZW50KCk7CiAKIC8vIEFs
dGVycyB0aGUgcmVuZGVyaW5nIG9mIGNvbnRlbnQgdG8gY29uZm9ybSB0byBhIGZpeGVkIHNldCBv
ZiBydWxlcy4KLVdFQktJVF9BUEkgdm9pZCBzZXRMYXlvdXRUZXN0TW9kZShib29sKTsKLVdFQktJ
VF9BUEkgYm9vbCBsYXlvdXRUZXN0TW9kZSgpOworV0VCS0lUX0VYUE9SVCB2b2lkIHNldExheW91
dFRlc3RNb2RlKGJvb2wpOworV0VCS0lUX0VYUE9SVCBib29sIGxheW91dFRlc3RNb2RlKCk7CiAK
IC8vIEVuYWJsZXMgdGhlIG5hbWVkIGxvZyBjaGFubmVsLiAgU2VlIFdlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oIGZvciBkZXRhaWxzLgotV0VCS0lUX0FQSSB2b2lkIGVuYWJsZUxvZ0NoYW5uZWwo
Y29uc3QgY2hhciopOworV0VCS0lUX0VYUE9SVCB2b2lkIGVuYWJsZUxvZ0NoYW5uZWwoY29uc3Qg
Y2hhciopOwogCiAvLyBQdXJnZSB0aGUgcGx1Z2luIGxpc3QgY2FjaGUuIElmIHxyZWxvYWRQYWdl
c3wgaXMgdHJ1ZSwgYW55IHBhZ2VzCiAvLyBjb250YWluaW5nIHBsdWdpbnMgd2lsbCBiZSByZWxv
YWRlZCBhZnRlciByZWZyZXNoaW5nIHRoZSBwbHVnaW4gbGlzdC4KLVdFQktJVF9BUEkgdm9pZCBy
ZXNldFBsdWdpbkNhY2hlKGJvb2wgcmVsb2FkUGFnZXMpOworV0VCS0lUX0VYUE9SVCB2b2lkIHJl
c2V0UGx1Z2luQ2FjaGUoYm9vbCByZWxvYWRQYWdlcyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYWJlbEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYWJlbEVs
ZW1lbnQuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJMYWJlbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGFzc2lnbihjb25zdCBXZWJMYWJlbEVsZW1lbnQmIGVsZW1lbnQpIHsg
V2ViRWxlbWVudDo6YXNzaWduKGVsZW1lbnQpOyB9CiAKLSAgICBXRUJLSVRfQVBJIFdlYkVsZW1l
bnQgY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkVsZW1lbnQg
Y29ycmVzcG9uZGluZ0NvbnRyb2woKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAg
IFdlYkxhYmVsRWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTExhYmVs
RWxlbWVudD4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
Yk1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIFdlYk1lZGlhUGxheWVyOwogCiBjbGFzcyBXZWJNZWRpYUVsZW1lbnQgOiBwdWJs
aWMgV2ViRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgV0VCS0lUX0FQSSBXZWJNZWRpYVBsYXllciog
cGxheWVyKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJNZWRpYVBsYXllciogcGxheWVy
KCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJNZWRpYUVsZW1l
bnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAu
aAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJO
YW1lZE5vZGVNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTEgKzU1LDExIEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCByZXNl
dCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViTmFtZWROb2RlTWFwJik7
CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IGFzc2lnbihjb25zdCBXZWJOYW1lZE5vZGVNYXAmKTsKIAotICAgIFdFQktJVF9BUEkgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJBdHRyaWJ1dGUgYXR0cmlidXRl
SXRlbSh1bnNpZ25lZCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkF0dHJpYnV0ZSBhdHRyaWJ1dGVJdGVtKHVu
c2lnbmVkKSBjb25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYk5hbWVk
Tm9kZU1hcChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TmFtZWROb2RlTWFwPiYpOwpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTmV0d29ya1N0YXRlTm90aWZp
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOZXR3
b3JrU3RhdGVOb3RpZmllci5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYk5ldHdvcmtTdGF0
ZU5vdGlmaWVyIHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE9uTGlu
ZShib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldE9uTGluZShib29sKTsK
IAogcHJpdmF0ZToKICAgICBXZWJOZXR3b3JrU3RhdGVOb3RpZmllcigpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDEzICs1NywxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAg
ICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNv
bnN0IFdlYk5vZGUmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYk5vZGUmKTsKIAotICAgIFdFQktJVF9BUEkg
Ym9vbCBlcXVhbHMoY29uc3QgV2ViTm9kZSYpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9v
bCBlcXVhbHMoY29uc3QgV2ViTm9kZSYpIGNvbnN0OwogICAgIC8vIFJlcXVpcmVkIGZvciB1c2lu
ZyBXZWJOb2RlcyBpbiBzdGQgbWFwcy4gIE5vdGUgdGhlIG9yZGVyIHVzZWQgaXMKICAgICAvLyBh
cmJpdHJhcnkgYW5kIHNob3VsZCBub3QgYmUgZXhwZWN0ZWQgdG8gaGF2ZSBhbnkgc3BlY2lmaWMg
bWVhbmluZy4KLSAgICBXRUJLSVRfQVBJIGJvb2wgbGVzc1RoYW4oY29uc3QgV2ViTm9kZSYpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBsZXNzVGhhbihjb25zdCBXZWJOb2RlJikgY29u
c3Q7CiAgICAgCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNO
dWxsKCk7IH0KIApAQCAtODMsMzIgKzgzLDMyIEBAIHB1YmxpYzoKICAgICAgICAgWFBhdGhOYW1l
c3BhY2VOb2RlLAogICAgICAgICBTaGFkb3dSb290Tm9kZQogICAgIH07Ci0gICAgV0VCS0lUX0FQ
SSBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViTm9kZSBwYXJl
bnROb2RlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBub2RlVmFsdWUoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIGJvb2wgc2V0Tm9kZVZhbHVlKGNvbnN0IFdlYlN0cmluZyYpOwotICAgIFdFQktJVF9B
UEkgV2ViRG9jdW1lbnQgZG9jdW1lbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYk5vZGUg
Zmlyc3RDaGlsZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViTm9kZSBsYXN0Q2hpbGQoKSBj
b25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYk5vZGUgcHJldmlvdXNTaWJsaW5nKCkgY29uc3Q7Ci0g
ICAgV0VCS0lUX0FQSSBXZWJOb2RlIG5leHRTaWJsaW5nKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQ
SSBib29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYk5vZGVMaXN0
IGNoaWxkTm9kZXMoKTsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBjcmVhdGVNYXJrdXAoKSBj
b25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNUZXh0Tm9kZSgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0Nv
bnRlbnRFZGl0YWJsZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0VsZW1lbnROb2Rl
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgV2Vi
U3RyaW5nJiBldmVudFR5cGUsIFdlYkRPTUV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyLCBib29sIHVz
ZUNhcHR1cmUpOwotICAgIFdFQktJVF9BUEkgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJET01FdmVudExpc3RlbmVyKiBsaXN0ZW5lciwgYm9v
bCB1c2VDYXB0dXJlKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2ltdWxhdGVDbGljaygpOwotICAg
IFdFQktJVF9BUEkgV2ViTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgV2ViU3Ry
aW5nJikgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBwYXJlbnROb2RlKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IFdlYlN0cmluZyBub2RlVmFsdWUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgc2V0
Tm9kZVZhbHVlKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViRG9jdW1l
bnQgZG9jdW1lbnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYk5vZGUgZmlyc3RDaGls
ZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBsYXN0Q2hpbGQoKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIFdlYk5vZGUgcHJldmlvdXNTaWJsaW5nKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCBXZWJOb2RlIG5leHRTaWJsaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VY
UE9SVCBib29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYk5v
ZGVMaXN0IGNoaWxkTm9kZXMoKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjcmVhdGVN
YXJrdXAoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNUZXh0Tm9kZSgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgYm9vbCBpc0VsZW1lbnROb2RlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIFdlYkRPTUV2ZW50TGlz
dGVuZXIqIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJET01F
dmVudExpc3RlbmVyKiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgc2ltdWxhdGVDbGljaygpOworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZUxpc3Qg
Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUgaGFzIGEgbm9uLWVtcHR5IGJvdW5kaW5nIGJveCBpbiBs
YXlvdXQuCiAgICAgLy8gVGhpcyBkb2VzIG5vdCAxMDAlIGd1YXJhbnRlZSB0aGUgdXNlciBjYW4g
c2VlIGl0LCBidXQgaXMgcHJldHR5IGNsb3NlLgogICAgIC8vIE5vdGU6IFRoaXMgbWV0aG9kIG9u
bHkgd29ya3MgcHJvcGVybHkgYWZ0ZXIgbGF5b3V0IGhhcyBvY2N1cnJlZC4KLSAgICBXRUJLSVRf
QVBJIGJvb2wgaGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgYm9vbCBoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3Q7CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBUIHRvKCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJOb2RlQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk5vZGVDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZUNvbGxlY3Rpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNTQsMTIgKzU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOwotICAgIFdFQktJVF9BUEkgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViTm9kZUNvbGxlY3Rpb24mKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYk5vZGVD
b2xsZWN0aW9uJik7CiAKLSAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0Owot
ICAgIFdFQktJVF9BUEkgV2ViTm9kZSBuZXh0SXRlbSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
V2ViTm9kZSBmaXJzdEl0ZW0oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIGxl
bmd0aCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBuZXh0SXRlbSgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBmaXJzdEl0ZW0oKSBjb25zdDsKIAogI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYk5vZGVDb2xsZWN0aW9uKGNvbnN0IFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk5vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZUxpc3QuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NCwxMSArNTQsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQog
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2ln
bihjb25zdCBXZWJOb2RlTGlzdCYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTm9kZUxpc3QmKTsKIAotICAg
IFdFQktJVF9BUEkgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJO
b2RlIGl0ZW0oc2l6ZV90KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBpdGVtKHNpemVfdCkgY29uc3Q7
CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJOb2RlTGlzdChjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZUxpc3Q+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJOb3RpZmljYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb3RpZmljYXRpb24uaAkocmV2aXNpb24gOTIzMTIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb3RpZmljYXRpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsOCArNTcsOCBAQCBwdWJsaWM6CiAKICAgICB+V2ViTm90aWZpY2F0aW9u
KCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKLSAgICBXRUJL
SVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYpOworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3Qg
V2ViTm90aWZpY2F0aW9uJik7CiAKICAgICBXZWJOb3RpZmljYXRpb24mIG9wZXJhdG9yPShjb25z
dCBXZWJOb3RpZmljYXRpb24mIG90aGVyKQogICAgIHsKQEAgLTY4LDM3ICs2OCwzNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBPcGVyYXRvcnMgcmVxdWlyZWQgdG8gcHV0IFdlYk5vdGlmaWNhdGlvbiBp
biBhbiBvcmRlcmVkIG1hcC4KICAgICBib29sIGVxdWFscyhjb25zdCBXZWJOb3RpZmljYXRpb24m
IG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUgPT0gb3RoZXIubV9wcml2YXRlOyB9Ci0g
ICAgV0VCS0lUX0FQSSBib29sIGxlc3NUaGFuKGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYgb3RoZXIp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBsZXNzVGhhbihjb25zdCBXZWJOb3RpZmlj
YXRpb24mIG90aGVyKSBjb25zdDsKIAogICAgIC8vIElzIHRoZSBub3RpZmljYXRpb24gSFRNTCB2
cy4gaWNvbi10aXRsZS10ZXh0PwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0hUTUwoKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNIVE1MKCkgY29uc3Q7CiAKICAgICAvLyBJZiBIVE1M
LCB0aGUgVVJMIHdoaWNoIGNvbnRhaW5zIHRoZSBjb250ZW50cyBvZiB0aGUgbm90aWZpY2F0aW9u
LgotICAgIFdFQktJVF9BUEkgV2ViVVJMIHVybCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
V2ViVVJMIHVybCgpIGNvbnN0OwogCi0gICAgV0VCS0lUX0FQSSBXZWJVUkwgaWNvblVSTCgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHRpdGxlKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBXZWJTdHJpbmcgYm9keSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCBpY29uVVJM
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgdGl0bGUoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBib2R5KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCi0gICAgV0VCS0lUX0FQSSBX
ZWJTdHJpbmcgcmVwbGFjZUlkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcg
cmVwbGFjZUlkKCkgY29uc3Q7CiAKICAgICAvLyBDYWxsZWQgaWYgdGhlIHByZXNlbnRlciBnb2Vz
IG91dCBvZiBzY29wZSBiZWZvcmUgdGhlIG5vdGlmaWNhdGlvbiBkb2VzLgotICAgIFdFQktJVF9B
UEkgdm9pZCBkZXRhY2hQcmVzZW50ZXIoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZGV0YWNo
UHJlc2VudGVyKCk7CiAKICAgICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIG5vdGlmaWNhdGlv
biBoYXMgYmVlbiBkaXNwbGF5ZWQuCi0gICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoRGlzcGxh
eUV2ZW50KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGRpc3BhdGNoRGlzcGxheUV2ZW50KCk7
CiAKICAgICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgYW4gZXJyb3IgaGFzIG9jY3VycmVkIHdpdGgg
dGhpcyBub3RpZmljYXRpb24uCi0gICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoRXJyb3JFdmVu
dChjb25zdCBXZWJTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBXZWJTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAg
ICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIG5vdGlmaWNhdGlvbiBoYXMgYmVlbiBjbG9zZWQu
ICBJZiBpdCB3YXMKICAgICAvLyBjbG9zZWQgYnkgdGhlIHVzZXIgKGFzIG9wcG9zZWQgdG8gYXV0
b21hdGljYWxseSBieSB0aGUgc3lzdGVtKSwKICAgICAvLyB0aGUgYnlVc2VyIHBhcmFtZXRlciB3
aWxsIGJlIHRydWUuCi0gICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoQ2xvc2VFdmVudChib29s
IGJ5VXNlcik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGRpc3BhdGNoQ2xvc2VFdmVudChib29s
IGJ5VXNlcik7CiAKICAgICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIG5vdGlmaWNhdGlvbiB3
YXMgY2xpY2tlZCBvbi4KLSAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hDbGlja0V2ZW50KCk7
CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGRpc3BhdGNoQ2xpY2tFdmVudCgpOwogCiAjaWYgV0VC
S0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViTm90aWZpY2F0aW9uKGNvbnN0IFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb24+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiA5MjMxMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsMTUgKzUzLDE1IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdm9pZCBhc3Np
Z24oY29uc3QgV2ViT3B0aW9uRWxlbWVudCYgZWxlbWVudCkgeyBXZWJGb3JtQ29udHJvbEVsZW1l
bnQ6OmFzc2lnbihlbGVtZW50KTsgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFZhbHVlKGNv
bnN0IFdlYlN0cmluZyYpOwotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHZhbHVlKCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFZhbHVlKGNvbnN0IFdlYlN0cmluZyYpOworICAg
IFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJ
IGludCBpbmRleCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHRleHQoKSBjb25z
dDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgZGVmYXVsdFNlbGVjdGVkKCkgY29uc3Q7Ci0gICAgV0VC
S0lUX0FQSSB2b2lkIHNldERlZmF1bHRTZWxlY3RlZChib29sKTsKLSAgICBXRUJLSVRfQVBJIFdl
YlN0cmluZyBsYWJlbCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0VuYWJsZWQoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGludCBpbmRleCgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgV2ViU3RyaW5nIHRleHQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgZGVm
YXVsdFNlbGVjdGVkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldERlZmF1bHRT
ZWxlY3RlZChib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBsYWJlbCgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKIAogI2lmIFdFQktJ
VF9JTVBMRU1FTlRBVElPTgogICAgIFdlYk9wdGlvbkVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50PiYpOwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplci5oCShyZXZpc2lvbiA5MjMx
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBhZ2VTZXJpYWxpemVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDE0ICs1NiwxNCBAQCBwdWJsaWM6CiAgICAgLy8gcmVzb3Vy
Y2VzIChzdWNoIGFzIGltYWdlcyBhbmQgQ1NTKSBhbmQgYWRkcyB0aGVtIHRvIHRoZSBwYXNzZWQg
dmVjdG9yLgogICAgIC8vIFRoZSBmaXJzdCByZXNvdXJjZSBpbiB0aGF0IHZlY3RvciBpcyB0aGUg
dG9wIGZyYW1lIGNvbnRlbnRzLgogICAgIC8vIE5vdGUgdGhhdCB0aGlzIGFsc28gc3RyaXBzLW91
dCBhbnkgc2NyaXB0IHRhZyBvciBsaW5rIHRvIEphdmFTY3JpcHQuCi0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgdm9pZCBzZXJpYWxpemUoV2ViVmlldyosIFdlYlZlY3RvcjxSZXNvdXJjZT4qKTsKKyAg
ICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNlcmlhbGl6ZShXZWJWaWV3KiwgV2ViVmVjdG9y
PFJlc291cmNlPiopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgV2ViVmlldyBjb250ZW50cyB0
byBhIE1IVE1MIHJlcHJlc2VudGF0aW9uLgotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYkNTdHJp
bmcgc2VyaWFsaXplVG9NSFRNTChXZWJWaWV3Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
V2ViQ1N0cmluZyBzZXJpYWxpemVUb01IVE1MKFdlYlZpZXcqKTsKIAogICAgIC8vIFNpbWlsYXIg
dG8gc2VyaWFsaXplVG9NSFRNTCBidXQgdXNlcyBiaW5hcnkgZW5jb2RpbmcgZm9yIHRoZSBNSFRN
TCBwYXJ0cy4KICAgICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbGVyIE1IVE1MIGZpbGUgYnV0
IGl0IG1pZ2h0IG5vdCBiZSBzdXBwb3J0ZWQgYnkgb3RoZXIgYnJvd3NlcnMuCi0gICAgV0VCS0lU
X0FQSSBzdGF0aWMgV2ViQ1N0cmluZyBzZXJpYWxpemVUb01IVE1MVXNpbmdCaW5hcnlFbmNvZGlu
ZyhXZWJWaWV3Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViQ1N0cmluZyBzZXJpYWxp
emVUb01IVE1MVXNpbmdCaW5hcnlFbmNvZGluZyhXZWJWaWV3Kik7CiAKICAgICAvLyBJTVBPUlRB
TlQ6CiAgICAgLy8gVGhlIEFQSSBiZWxvdyBpcyBhbiBvbGRlciBpbXBsZW1lbnRhdGlvbiBvZiBh
IHBhZ2VzZXJpYWxpemF0aW9uIHRoYXQKQEAgLTg4LDMwICs4OCwzMCBAQCBwdWJsaWM6CiAgICAg
Ly8gc2F2ZWQgbGlua3MsIHdoaWNoIG1hdGNoZWQgd2l0aCB2ZWN0b3I6bGlua3Mgb25lIGJ5IG9u
ZS4KICAgICAvLyBUaGUgcGFyYW1ldGVyIGxvY2FsRGlyZWN0b3J5TmFtZSBpcyByZWxhdGl2ZSBw
YXRoIG9mIGRpcmVjdG9yeSB3aGljaAogICAgIC8vIGNvbnRhaW4gYWxsIHNhdmVkIGF1eGlsaWFy
eSBmaWxlcyBpbmNsdWRlZCBhbGwgc3ViIGZyYW1lcyBhbmQgcmVzb3VyY2VzLgotICAgIFdFQktJ
VF9BUEkgc3RhdGljIGJvb2wgc2VyaWFsaXplKFdlYkZyYW1lKiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIHJlY3Vyc2l2ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJQYWdlU2VyaWFsaXplckNsaWVudCosCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlVSTD4mIGxpbmtzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJT
dHJpbmc+JiBsb2NhbFBhdGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlN0cmluZyYgbG9jYWxEaXJlY3RvcnlOYW1lKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyBib29sIHNlcmlhbGl6ZShXZWJGcmFtZSosCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViUGFnZVNlcmlhbGl6ZXJDbGllbnQqLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJVUkw+JiBsaW5r
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0
b3I8V2ViU3RyaW5nPiYgbG9jYWxQYXRocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGxvY2FsRGlyZWN0b3J5TmFtZSk7CiAKICAgICAv
LyBSZXRyaWV2ZSBhbGwgdGhlIHJlc291cmNlIGZvciB0aGUgcGFzc2VkIHZpZXcsIGluY2x1ZGlu
ZyB0aGUgbWFpbiBmcmFtZQogICAgIC8vIGFuZCBzdWItZnJhbWVzLiBSZXR1cm5zIHRydWUgaWYg
YWxsIHJlc291cmNlcyB3ZXJlIHJldHJpZXZlZAogICAgIC8vIHN1Y2Nlc3NmdWxseS4KLSAgICBX
RUJLSVRfQVBJIHN0YXRpYyBib29sIHJldHJpZXZlQWxsUmVzb3VyY2VzKFdlYlZpZXcqLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVj
dG9yPFdlYkNTdHJpbmc+JiBzdXBwb3J0ZWRTY2hlbWVzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmVjdG9yPFdlYlVSTD4qIHJlc291cmNlcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlZlY3Rv
cjxXZWJVUkw+KiBmcmFtZXMpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgcmV0cmll
dmVBbGxSZXNvdXJjZXMoV2ViVmlldyosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViQ1N0cmluZz4mIHN1cHBvcnRl
ZFNjaGVtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJWZWN0b3I8V2ViVVJMPiogcmVzb3VyY2VzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmVjdG9yPFdlYlVSTD4qIGZyYW1lcyk7
CiAKICAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBhcmUgaGVyZSBmb3IgdW5pdCB0ZXN0aW5n
IHB1cnBvc2VzLiBDb25zaWRlcgogICAgIC8vIGNoYW5naW5nIHRoZSB1bml0IHRlc3RzIGluc3Rl
YWQuCiAKICAgICAvLyBHZW5lcmF0ZSB0aGUgTUVUQSBmb3IgY2hhcnNldCBkZWNsYXJhdGlvbi4K
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTdHJpbmcgZ2VuZXJhdGVNZXRhQ2hhcnNldERlY2xh
cmF0aW9uKGNvbnN0IFdlYlN0cmluZyYgY2hhcnNldCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgV2ViU3RyaW5nIGdlbmVyYXRlTWV0YUNoYXJzZXREZWNsYXJhdGlvbihjb25zdCBXZWJTdHJp
bmcmIGNoYXJzZXQpOwogICAgIC8vIEdlbmVyYXRlIHRoZSBNT1RXIGRlY2xhcmF0aW9uLgotICAg
IFdFQktJVF9BUEkgc3RhdGljIFdlYlN0cmluZyBnZW5lcmF0ZU1hcmtPZlRoZVdlYkRlY2xhcmF0
aW9uKGNvbnN0IFdlYlVSTCYpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlN0cmluZyBn
ZW5lcmF0ZU1hcmtPZlRoZVdlYkRlY2xhcmF0aW9uKGNvbnN0IFdlYlVSTCYpOwogICAgIC8vIEdl
bmVyYXRlIHRoZSBkZWZhdWx0IGJhc2UgdGFnIGRlY2xhcmF0aW9uLgotICAgIFdFQktJVF9BUEkg
c3RhdGljIFdlYlN0cmluZyBnZW5lcmF0ZUJhc2VUYWdEZWNsYXJhdGlvbihjb25zdCBXZWJTdHJp
bmcmIGJhc2VUYXJnZXQpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlN0cmluZyBnZW5l
cmF0ZUJhc2VUYWdEZWNsYXJhdGlvbihjb25zdCBXZWJTdHJpbmcmIGJhc2VUYXJnZXQpOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJQYXNzd29yZEZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oCShyZXZpc2lvbiA5MjMxMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBhc3N3b3JkRm9ybURhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBX
ZWJQYXNzd29yZEZvcm1EYXRhIHsKICAgICAvLyBJZiB0aGUgcHJvdmlkZWQgZm9ybSBpcyBzdWl0
YWJsZSBmb3IgcGFzc3dvcmQgY29tcGxldGlvbiwgaXNWYWxpZCgpIHdpbGwKICAgICAvLyByZXR1
cm4gdHJ1ZTsKLSAgICBXRUJLSVRfQVBJIFdlYlBhc3N3b3JkRm9ybURhdGEoY29uc3QgV2ViRm9y
bUVsZW1lbnQmKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlBhc3N3b3JkRm9ybURhdGEoY29uc3Qg
V2ViRm9ybUVsZW1lbnQmKTsKIAogICAgIC8vIElmIGNyZWF0aW9uIGZhaWxlZCwgcmV0dXJuIGZh
bHNlLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGFjdGlvbi5pc1ZhbGlkKCk7
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcmZvcm1hbmNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVyZm9ybWFu
Y2UuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJQZXJmb3JtYW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MywzMyArNTMsMzMgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHJl
c2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJQZXJmb3JtYW5jZSYp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViUGVyZm9ybWFuY2UmKTsKIAogICAgIC8vIFRoaXMgb25seSByZXR1
cm5zIG9uZSBvZiB7T3RoZXJ8UmVsb2FkfEJhY2tGb3J3YXJkfS4KICAgICAvLyBGb3JtIHN1Ym1p
dHMgYW5kIGxpbmsgY2xpY2tzIGFsbCBmYWxsIHVuZGVyIG90aGVyLgotICAgIFdFQktJVF9BUEkg
V2ViTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYk5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlKCkgY29uc3Q7CiAKLSAgICBXRUJL
SVRfQVBJIGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGRv
dWJsZSB1bmxvYWRFdmVudEVuZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgZG91YmxlIHJlZGly
ZWN0U3RhcnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSByZWRpcmVjdEVuZCgpIGNv
bnN0OwotICAgIFdFQktJVF9BUEkgdW5zaWduZWQgc2hvcnQgcmVkaXJlY3RDb3VudCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgZG91YmxlIGZldGNoU3RhcnQoKSBjb25zdDsKLSAgICBXRUJLSVRf
QVBJIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgZG91
YmxlIGRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgZG91YmxlIGNvbm5l
Y3RTdGFydCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgZG91YmxlIGNvbm5lY3RFbmQoKSBjb25z
dDsKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIGRvdWJsZSByZXNwb25zZVN0YXJ0KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBkb3Vi
bGUgcmVzcG9uc2VFbmQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSBkb21Mb2FkaW5n
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBkb3VibGUgZG9tSW50ZXJhY3RpdmUoKSBjb25zdDsK
LSAgICBXRUJLSVRfQVBJIGRvdWJsZSBkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgZG91YmxlIGRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgZG91YmxlIGRvbUNvbXBsZXRlKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBkb3VibGUgbG9hZEV2ZW50U3RhcnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGRvdWJs
ZSBsb2FkRXZlbnRFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBuYXZpZ2F0
aW9uU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSB1bmxvYWRFdmVudEVu
ZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIHJlZGlyZWN0U3RhcnQoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSByZWRpcmVjdEVuZCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgdW5zaWduZWQgc2hvcnQgcmVkaXJlY3RDb3VudCgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgZG91YmxlIGZldGNoU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91
YmxlIGRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGNv
bm5lY3RTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGNvbm5lY3RFbmQo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSByZXNwb25zZVN0YXJ0KCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBkb3VibGUgcmVzcG9uc2VFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IGRvdWJsZSBkb21Mb2FkaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgZG9t
SW50ZXJhY3RpdmUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBkb21Db250ZW50
TG9hZGVkRXZlbnRTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGRvbUNv
bnRlbnRMb2FkZWRFdmVudEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGRv
bUNvbXBsZXRlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgbG9hZEV2ZW50U3Rh
cnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBsb2FkRXZlbnRFbmQoKSBjb25z
dDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYlBlcmZvcm1hbmNlKGNvbnN0
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpQZXJmb3JtYW5jZT4mKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkRvY3VtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luRG9jdW1lbnQuaAkocmV2aXNp
b24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAg
ICAgdm9pZCBhc3NpZ24oY29uc3QgV2ViUGx1Z2luRG9jdW1lbnQmIGQpIHsgV2ViTm9kZTo6YXNz
aWduKGQpOyB9CiAKLSAgICBXRUJLSVRfQVBJIFdlYlBsdWdpbiogcGx1Z2luKCk7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJQbHVnaW4qIHBsdWdpbigpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFU
SU9OCiAgICAgV2ViUGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6
OlBsdWdpbkRvY3VtZW50PiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViUG9wdXBNZW51LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUG9wdXBNZW51LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCwx
MCBAQCBjbGFzcyBXZWJXaWRnZXRDbGllbnQ7CiAKIGNsYXNzIFdlYlBvcHVwTWVudSA6IHB1Ymxp
YyBXZWJXaWRnZXQgewogcHVibGljOgotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlBvcHVwTWVu
dSogY3JlYXRlKFdlYldpZGdldENsaWVudCopOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdl
YlBvcHVwTWVudSogY3JlYXRlKFdlYldpZGdldENsaWVudCopOwogCiAgICAgLy8gU2V0cyB0aGUg
bWluaW11bSBoZWlnaHQgb2YgYSBwb3B1cCBsaXN0Ym94IHJvdy4KLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyB2b2lkIHNldE1pbmltdW1Sb3dIZWlnaHQoaW50KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0
YXRpYyB2b2lkIHNldE1pbmltdW1Sb3dIZWlnaHQoaW50KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmFuZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSYW5nZS5oCShy
ZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJhbmdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE4ICs1NywxOCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAqdGhpczsKICAgICB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKLSAgICBX
RUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYlJhbmdlJik7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJS
YW5nZSYpOwogCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9wcml2YXRlOyB9
CiAKLSAgICBXRUJLSVRfQVBJIGludCBzdGFydE9mZnNldCgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgaW50IGVuZE9mZnNldCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViTm9kZSBzdGFydENv
bnRhaW5lcihpbnQmIGV4Y2VwdGlvbkNvZGUpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViTm9k
ZSBlbmRDb250YWluZXIoaW50JiBleGNlcHRpb25Db2RlKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIGludCBzdGFydE9mZnNldCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgaW50IGVuZE9m
ZnNldCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBzdGFydENvbnRhaW5lcihp
bnQmIGV4Y2VwdGlvbkNvZGUpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViTm9kZSBlbmRD
b250YWluZXIoaW50JiBleGNlcHRpb25Db2RlKSBjb25zdDsKIAotICAgIFdFQktJVF9BUEkgV2Vi
U3RyaW5nIHRvSFRNTFRleHQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0b1Bs
YWluVGV4dCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHRvSFRNTFRleHQo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0b1BsYWluVGV4dCgpIGNvbnN0
OwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViUmFuZ2UoY29uc3QgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUmVndWxhckV4cHJlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSZWd1bGFyRXhwcmVzc2lvbi5oCShyZXZpc2lvbiA5MjMx
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJlZ3VsYXJFeHByZXNzaW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDEwICs0MiwxMCBAQCBjbGFzcyBXZWJTdHJpbmc7CiAK
IGNsYXNzIFdlYlJlZ3VsYXJFeHByZXNzaW9uIDogcHVibGljIFdlYk5vbkNvcHlhYmxlIHsKIHB1
YmxpYzoKLSAgICBXRUJLSVRfQVBJIFdlYlJlZ3VsYXJFeHByZXNzaW9uKGNvbnN0IFdlYlN0cmlu
ZyYgcGF0dGVybiwgV2ViVGV4dENhc2VTZW5zaXRpdml0eSk7Ci0gICAgV0VCS0lUX0FQSSB+V2Vi
UmVndWxhckV4cHJlc3Npb24oKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlJlZ3VsYXJFeHByZXNz
aW9uKGNvbnN0IFdlYlN0cmluZyYgcGF0dGVybiwgV2ViVGV4dENhc2VTZW5zaXRpdml0eSk7Cisg
ICAgV0VCS0lUX0VYUE9SVCB+V2ViUmVndWxhckV4cHJlc3Npb24oKTsKIAotICAgIFdFQktJVF9B
UEkgaW50IG1hdGNoKGNvbnN0IFdlYlN0cmluZyYsIGludCBzdGFydEZyb20gPSAwLCBpbnQqIG1h
dGNoTGVuZ3RoID0gMCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgbWF0Y2goY29uc3Qg
V2ViU3RyaW5nJiwgaW50IHN0YXJ0RnJvbSA9IDAsIGludCogbWF0Y2hMZW5ndGggPSAwKSBjb25z
dDsKIAogcHJpdmF0ZToKICAgICBXZWJSZWd1bGFyRXhwcmVzc2lvblByaXZhdGUqIG1fcHJpdmF0
ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRp
bWVGZWF0dXJlcy5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2OCArNDMs
NjggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBjZXJ0YWluIGxldmVsIG9mIG1hdHVyaXR5Lgog
Y2xhc3MgV2ViUnVudGltZUZlYXR1cmVzIHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRp
YyB2b2lkIGVuYWJsZURhdGFiYXNlKGJvb2wpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wg
aXNEYXRhYmFzZUVuYWJsZWQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJs
ZURhdGFiYXNlKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgaXNEYXRhYmFz
ZUVuYWJsZWQoKTsKIAotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlTG9jYWxTdG9y
YWdlKGJvb2wpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNMb2NhbFN0b3JhZ2VFbmFi
bGVkKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVMb2NhbFN0b3JhZ2Uo
Ym9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpc0xvY2FsU3RvcmFnZUVuYWJs
ZWQoKTsKIAotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlU2Vzc2lvblN0b3JhZ2Uo
Ym9vbCk7Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1Nlc3Npb25TdG9yYWdlRW5hYmxl
ZCgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgZW5hYmxlU2Vzc2lvblN0b3JhZ2Uo
Ym9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1Nlc3Npb25TdG9yYWdlRW5h
YmxlZCgpOwogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVNZWRpYVBsYXllcihi
b29sKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzTWVkaWFQbGF5ZXJFbmFibGVkKCk7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVNZWRpYVBsYXllcihib29sKTsK
KyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGlzTWVkaWFQbGF5ZXJFbmFibGVkKCk7CiAK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZVNvY2tldHMoYm9vbCk7Ci0gICAgV0VC
S0lUX0FQSSBzdGF0aWMgYm9vbCBpc1NvY2tldHNFbmFibGVkKCk7CisgICAgV0VCS0lUX0VYUE9S
VCBzdGF0aWMgdm9pZCBlbmFibGVTb2NrZXRzKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIGJvb2wgaXNTb2NrZXRzRW5hYmxlZCgpOwogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9p
ZCBlbmFibGVOb3RpZmljYXRpb25zKGJvb2wpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wg
aXNOb3RpZmljYXRpb25zRW5hYmxlZCgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQg
ZW5hYmxlTm90aWZpY2F0aW9ucyhib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29s
IGlzTm90aWZpY2F0aW9uc0VuYWJsZWQoKTsKIAotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQg
ZW5hYmxlQXBwbGljYXRpb25DYWNoZShib29sKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29s
IGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2
b2lkIGVuYWJsZUFwcGxpY2F0aW9uQ2FjaGUoYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgYm9vbCBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CiAgICAgCi0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgdm9pZCBlbmFibGVEYXRhVHJhbnNmZXJJdGVtcyhib29sKTsKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBib29sIGlzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKCk7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVEYXRhVHJhbnNmZXJJdGVtcyhib29sKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGlzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKCk7CiAK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZUdlb2xvY2F0aW9uKGJvb2wpOwotICAg
IFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNHZW9sb2NhdGlvbkVuYWJsZWQoKTsKKyAgICBXRUJL
SVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUdlb2xvY2F0aW9uKGJvb2wpOworICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIGJvb2wgaXNHZW9sb2NhdGlvbkVuYWJsZWQoKTsKIAotICAgIFdFQktJ
VF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlSW5kZXhlZERhdGFiYXNlKGJvb2wpOwotICAgIFdFQktJ
VF9BUEkgc3RhdGljIGJvb2wgaXNJbmRleGVkRGF0YWJhc2VFbmFibGVkKCk7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVJbmRleGVkRGF0YWJhc2UoYm9vbCk7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpc0luZGV4ZWREYXRhYmFzZUVuYWJsZWQoKTsKIAotICAg
IFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlV2ViQXVkaW8oYm9vbCk7Ci0gICAgV0VCS0lU
X0FQSSBzdGF0aWMgYm9vbCBpc1dlYkF1ZGlvRW5hYmxlZCgpOworICAgIFdFQktJVF9FWFBPUlQg
c3RhdGljIHZvaWQgZW5hYmxlV2ViQXVkaW8oYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgYm9vbCBpc1dlYkF1ZGlvRW5hYmxlZCgpOwogCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9p
ZCBlbmFibGVQdXNoU3RhdGUoYm9vbCk7Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1B1
c2hTdGF0ZUVuYWJsZWQoYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFi
bGVQdXNoU3RhdGUoYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1B1c2hT
dGF0ZUVuYWJsZWQoYm9vbCk7CiAKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZVRv
dWNoKGJvb2wpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNUb3VjaEVuYWJsZWQoKTsK
KyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZVRvdWNoKGJvb2wpOworICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIGJvb2wgaXNUb3VjaEVuYWJsZWQoKTsKIAotICAgIFdFQktJVF9B
UEkgc3RhdGljIHZvaWQgZW5hYmxlRGV2aWNlTW90aW9uKGJvb2wpOwotICAgIFdFQktJVF9BUEkg
c3RhdGljIGJvb2wgaXNEZXZpY2VNb3Rpb25FbmFibGVkKCk7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCBlbmFibGVEZXZpY2VNb3Rpb24oYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgYm9vbCBpc0RldmljZU1vdGlvbkVuYWJsZWQoKTsKIAotICAgIFdFQktJVF9BUEkgc3Rh
dGljIHZvaWQgZW5hYmxlRGV2aWNlT3JpZW50YXRpb24oYm9vbCk7Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBpc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpOworICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIHZvaWQgZW5hYmxlRGV2aWNlT3JpZW50YXRpb24oYm9vbCk7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgYm9vbCBpc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpOwogCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVTcGVlY2hJbnB1dChib29sKTsKLSAgICBXRUJL
SVRfQVBJIHN0YXRpYyBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVkKCk7CisgICAgV0VCS0lUX0VY
UE9SVCBzdGF0aWMgdm9pZCBlbmFibGVTcGVlY2hJbnB1dChib29sKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVkKCk7CiAKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIGVuYWJsZVhIUlJlc3BvbnNlQmxvYihib29sKTsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCgpOworICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIHZvaWQgZW5hYmxlWEhSUmVzcG9uc2VCbG9iKGJvb2wpOworICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCk7CiAKLSAgICBXRUJL
SVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZUZpbGVTeXN0ZW0oYm9vbCk7Ci0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgYm9vbCBpc0ZpbGVTeXN0ZW1FbmFibGVkKCk7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCBlbmFibGVGaWxlU3lzdGVtKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIGJvb2wgaXNGaWxlU3lzdGVtRW5hYmxlZCgpOwogICAgIAotICAgIFdFQktJVF9BUEkgc3Rh
dGljIHZvaWQgZW5hYmxlSmF2YVNjcmlwdEkxOE5BUEkoYm9vbCk7Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBpc0phdmFTY3JpcHRJMThOQVBJRW5hYmxlZCgpOworICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIHZvaWQgZW5hYmxlSmF2YVNjcmlwdEkxOE5BUEkoYm9vbCk7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgYm9vbCBpc0phdmFTY3JpcHRJMThOQVBJRW5hYmxlZCgpOwogCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVRdW90YShib29sKTsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBib29sIGlzUXVvdGFFbmFibGVkKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
dm9pZCBlbmFibGVRdW90YShib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGlz
UXVvdGFFbmFibGVkKCk7CiAKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZU1lZGlh
U3RyZWFtKGJvb2wpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNNZWRpYVN0cmVhbUVu
YWJsZWQoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZU1lZGlhU3RyZWFt
KGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgaXNNZWRpYVN0cmVhbUVuYWJs
ZWQoKTsKIAogcHJpdmF0ZToKICAgICBXZWJSdW50aW1lRmVhdHVyZXMoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmlwdENvbnRyb2xsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JpcHRDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2Ny
aXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxNiArNTEsMTYgQEAgcHVibGlj
OgogICAgIC8vIG1hdGNoaW5nIGdyb3VwLgogICAgIC8vIFdpbGwgb25seSBhZmZlY3QgdjggY29u
dGV4dHMgaW5pdGlhbGl6ZWQgYWZ0ZXIgdGhpcyBjYWxsLiBUYWtlcyBvd25lcnNoaXAKICAgICAv
LyBvZiB0aGUgdjg6OkV4dGVuc2lvbiBvYmplY3QgcGFzc2VkLgotICAgIFdFQktJVF9BUEkgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJFeHRlbnNpb24odjg6OkV4dGVuc2lvbiopOworICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJFeHRlbnNpb24odjg6OkV4dGVuc2lvbiopOwogCiAg
ICAgLy8gRW5hYmxlcyBzcGVjaWFsIHNldHRpbmdzIHdoaWNoIGFyZSBvbmx5IGFwcGxpY2FibGUg
aWYgVjggaXMgZXhlY3V0ZWQKICAgICAvLyBpbiB0aGUgc2luZ2xlIHRocmVhZCB3aGljaCBtdXN0
IGJlIHRoZSBtYWluIHRocmVhZC4KICAgICAvLyBGSVhNRTogbWFrZSBhIHRyeSB0byBkeW5hbWlj
YWxseSBkZXRlY3Qgd2hlbiB0aGlzIGNvbmRpdGlvbiBpcyBicm9rZW4KICAgICAvLyBhbmQgYXV0
b21hdGljYWxseSBzd2l0Y2ggb2ZmIHNpbmdsZSB0aHJlYWQgbW9kZS4KLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIGVuYWJsZVY4U2luZ2xlVGhyZWFkTW9kZSgpOworICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIHZvaWQgZW5hYmxlVjhTaW5nbGVUaHJlYWRNb2RlKCk7CiAKICAgICAvLyBQcm9j
ZXNzIGFueSBwZW5kaW5nIEphdmFTY3JpcHQgY29uc29sZSBtZXNzYWdlcy4KLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyB2b2lkIGZsdXNoQ29uc29sZU1lc3NhZ2VzKCk7CisgICAgV0VCS0lUX0VYUE9S
VCBzdGF0aWMgdm9pZCBmbHVzaENvbnNvbGVNZXNzYWdlcygpOwogCiBwcml2YXRlOgogICAgIFdl
YlNjcmlwdENvbnRyb2xsZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNjcm9sbGJhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNjcm9sbGJhci5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNjcm9sbGJhci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAs
MTIgQEAgcHVibGljOgogICAgIH07CiAKICAgICAvLyBDcmVhdGVzIGEgV2ViU2Nyb2xsYmFyLgot
ICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlNjcm9sbGJhciogY3JlYXRlKFdlYlNjcm9sbGJhckNs
aWVudCosIE9yaWVudGF0aW9uKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTY3JvbGxi
YXIqIGNyZWF0ZShXZWJTY3JvbGxiYXJDbGllbnQqLCBPcmllbnRhdGlvbik7CiAKICAgICB2aXJ0
dWFsIH5XZWJTY3JvbGxiYXIoKSB7fQogCiAgICAgLy8gR2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRo
ZSBzY3JvbGxiYXIgaW4gcGl4ZWxzLgotICAgIFdFQktJVF9BUEkgc3RhdGljIGludCBkZWZhdWx0
VGhpY2tuZXNzKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgaW50IGRlZmF1bHRUaGlja25l
c3MoKTsKIAogICAgIC8vIFNldHMgdGhlIHJlY3RhbmdsZSBvZiB0aGUgc2Nyb2xsYmFyLgogICAg
IHZpcnR1YWwgdm9pZCBzZXRMb2NhdGlvbihjb25zdCBXZWJSZWN0JikgPSAwOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VhcmNoYWJsZUZvcm1EYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VhcmNoYWJsZUZvcm1E
YXRhLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VhcmNoYWJsZUZvcm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgV2ViU2VhcmNoYWJsZUZvcm1EYXRhIHsKIHB1YmxpYzoKICAgICAvLyBJZiB0aGUgcHJv
dmlkZWQgZm9ybSBpcyBzdWl0YWJsZSBmb3IgYXV0b21hdGVkIHNlYXJjaGluZywgaXNWYWxpZCgp
CiAgICAgLy8gd2lsbCByZXR1cm4gZmFsc2UuCi0gICAgV0VCS0lUX0FQSSBXZWJTZWFyY2hhYmxl
Rm9ybURhdGEoY29uc3QgV2ViRm9ybUVsZW1lbnQmLCBjb25zdCBXZWJJbnB1dEVsZW1lbnQmIHNl
bGVjdGVkSW5wdXRFbGVtZW50ID0gV2ViSW5wdXRFbGVtZW50KCkpOworICAgIFdFQktJVF9FWFBP
UlQgV2ViU2VhcmNoYWJsZUZvcm1EYXRhKGNvbnN0IFdlYkZvcm1FbGVtZW50JiwgY29uc3QgV2Vi
SW5wdXRFbGVtZW50JiBzZWxlY3RlZElucHV0RWxlbWVudCA9IFdlYklucHV0RWxlbWVudCgpKTsK
IAogICAgIGJvb2wgaXNWYWxpZCgpIHsgcmV0dXJuIG1fdXJsLmlzVmFsaWQoKTsgfQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5T3JpZ2lu
LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNDUgKzU2LDQ1IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIFdFQktJVF9BUEkgc3RhdGlj
IFdlYlNlY3VyaXR5T3JpZ2luIGNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgV2Vi
U3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlNl
Y3VyaXR5T3JpZ2luIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgV0VC
S0lUX0FQSSBzdGF0aWMgV2ViU2VjdXJpdHlPcmlnaW4gY3JlYXRlKGNvbnN0IFdlYlVSTCYpOwor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlNlY3VyaXR5T3JpZ2luIGNyZWF0ZUZyb21EYXRh
YmFzZUlkZW50aWZpZXIoY29uc3QgV2ViU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpOworICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlNlY3VyaXR5T3JpZ2luIGNyZWF0ZUZyb21TdHJpbmco
Y29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViU2VjdXJpdHlP
cmlnaW4gY3JlYXRlKGNvbnN0IFdlYlVSTCYpOwogCi0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0
KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mKTsKIAogICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3QgeyByZXR1cm4gIW1fcHJpdmF0ZTsgfQogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcg
cHJvdG9jb2woKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBob3N0KCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBzaG9ydCBwb3J0KCkgY29uc3Q7CisgICAgV0VCS0lU
X0VYUE9SVCBXZWJTdHJpbmcgcHJvdG9jb2woKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdl
YlN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBzaG9ydCBw
b3J0KCkgY29uc3Q7CiAKICAgICAvLyBUaGUgZW1wdHkgV2ViU2VjdXJpdHlPcmlnaW4gaXMgdGhl
IGxlYXN0IHByaXZpbGVnZWQgV2ViU2VjdXJpdHlPcmlnaW4uCi0gICAgV0VCS0lUX0FQSSBib29s
IGlzRW1wdHkoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNFbXB0eSgpIGNvbnN0
OwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgV2ViU2VjdXJpdHlPcmlnaW4gY2FuIHNj
cmlwdCBvYmplY3RzIGluIHRoZSBnaXZlbgogICAgIC8vIFNlY3VyaXR5T3JpZ2luLiBGb3IgZXhh
bXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbGxvd2luZwogICAgIC8vIHNjcmlwdCBm
cm9tIG9uZSBzZWN1cml0eSBvcmlnaW4gdG8gcmVhZCBvciB3cml0ZSBvYmplY3RzIGZyb20KICAg
ICAvLyBhbm90aGVyIFNlY3VyaXR5T3JpZ2luLgotICAgIFdFQktJVF9BUEkgYm9vbCBjYW5BY2Nl
c3MoY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJv
b2wgY2FuQWNjZXNzKGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJikgY29uc3Q7CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhpcyBXZWJTZWN1cml0eU9yaWdpbiBjYW4gcmVhZCBjb250ZW50IHJl
dHJpZXZlZCBmcm9tCiAgICAgLy8gdGhlIGdpdmVuIFVSTC4gRm9yIGV4YW1wbGUsIGNhbGwgdGhp
cyBmdW5jdGlvbiBiZWZvcmUgYWxsb3dpbmcgc2NyaXB0CiAgICAgLy8gZnJvbSBhIGdpdmVuIHNl
Y3VyaXR5IG9yaWdpbiB0byByZWNlaXZlIGNvbnRlbnRzIGZyb20gYSBnaXZlbiBVUkwuCi0gICAg
V0VCS0lUX0FQSSBib29sIGNhblJlcXVlc3QoY29uc3QgV2ViVVJMJikgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBib29sIGNhblJlcXVlc3QoY29uc3QgV2ViVVJMJikgY29uc3Q7CiAKICAgICAv
LyBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBXZWJTZWN1cml0eU9yaWdp
bi4gIFRoZSBlbXB0eQogICAgIC8vIFdlYlNlY3VyaXR5T3JpZ2luIGlzIHJlcHJlc2VudGVkIGJ5
ICJudWxsIi4gIFRoZSByZXByZXNlbnRhdGlvbiBvZiBhCiAgICAgLy8gbm9uLWVtcHR5IFdlYlNl
Y3VyaXR5T3JpZ2luIHJlc2VtYmxlcyBhIHN0YW5kYXJkIFVSTC4KLSAgICBXRUJLSVRfQVBJIFdl
YlN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9u
IG9mIHRoaXMgV2ViU2VjdXJpdHlPcmlnaW4gdGhhdCBjYW4KICAgICAvLyBiZSB1c2VkIGFzIGEg
ZmlsZS4gIFNob3VsZCBiZSB1c2VkIGluIHN0b3JhZ2UgQVBJcyBvbmx5LgotICAgIFdFQktJVF9B
UEkgV2ViU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgV2ViU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJu
cyB0cnVlIGlmIHRoaXMgV2ViU2VjdXJpdHlPcmlnaW4gY2FuIGFjY2VzcyB1c2VybmFtZXMgYW5k
IAogICAgIC8vIHBhc3N3b3JkcyBzdG9yZWQgaW4gcGFzc3dvcmQgbWFuYWdlci4KLSAgICBXRUJL
SVRfQVBJIGJvb2wgY2FuQWNjZXNzUGFzc3dvcmRNYW5hZ2VyKCkgY29uc3Q7CisgICAgV0VCS0lU
X0VYUE9SVCBib29sIGNhbkFjY2Vzc1Bhc3N3b3JkTWFuYWdlcigpIGNvbnN0OwogCiAjaWYgV0VC
S0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViU2VjdXJpdHlPcmlnaW4oY29uc3QgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYpOwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiA5MjMx
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDM1ICs0MywzNSBAQCBwdWJsaWM6CiAgICAgLy8gUmVnaXN0
ZXJzIGEgVVJMIHNjaGVtZSB0byBiZSB0cmVhdGVkIGFzIGEgbG9jYWwgc2NoZW1lIChpLmUuLCB3
aXRoIHRoZQogICAgIC8vIHNhbWUgc2VjdXJpdHkgcnVsZXMgYXMgdGhvc2UgYXBwbGllZCB0byAi
ZmlsZSIgVVJMcykuIFRoaXMgbWVhbnMgdGhhdAogICAgIC8vIG5vcm1hbCBwYWdlcyBjYW5ub3Qg
bGluayB0byBvciBhY2Nlc3MgVVJMcyBvZiB0aGlzIHNjaGVtZS4KLSAgICBXRUJLSVRfQVBJIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBXZWJTdHJpbmcmKTsKKyAg
ICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChjb25z
dCBXZWJTdHJpbmcmKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIFVSTCBzY2hlbWUgdG8gYmUgdHJl
YXRlZCBhcyBhIG5vQWNjZXNzIHNjaGVtZS4gVGhpcyBtZWFucwogICAgIC8vIHRoYXQgcGFnZXMg
bG9hZGVkIHdpdGggdGhpcyBVUkwgc2NoZW1lIGNhbm5vdCBhY2Nlc3MgcGFnZXMgbG9hZGVkIHdp
dGgKICAgICAvLyBhbnkgb3RoZXIgVVJMIHNjaGVtZS4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25z
dCBXZWJTdHJpbmcmKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIFVSTCBzY2hlbWUgdG8gYmUgdHJl
YXRlZCBhcyBkaXNwbGF5LWlzb2xhdGVkLiBUaGlzIG1lYW5zCiAgICAgLy8gdGhhdCBwYWdlcyBj
YW5ub3QgZGlzcGxheSB0aGVzZSBVUkxzIHVubGVzcyB0aGV5IGFyZSBmcm9tIHRoZSBzYW1lCiAg
ICAgLy8gc2NoZW1lLiBGb3IgZXhhbXBsZSwgcGFnZXMgaW4gb3RoZXIgb3JpZ2luIGNhbm5vdCBj
cmVhdGUgaWZyYW1lcyBvcgogICAgIC8vIGh5cGVybGlua3MgdG8gVVJMcyB3aXRoIHRoZSBzY2hl
bWUuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxh
eUlzb2xhdGVkKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBXZWJTdHJpbmcmKTsK
IAogICAgIC8vIFJlZ2lzdGVycyBhIFVSTCBzY2hlbWUgdG8gbm90IGdlbmVyYXRlIG1peGVkIGNv
bnRlbnQgd2FybmluZ3Mgd2hlbgogICAgIC8vIGluY2x1ZGVkIGJ5IGFuIEhUVFBTIHBhZ2UuCi0g
ICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0
IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxT
Y2hlbWVBc1NlY3VyZShjb25zdCBXZWJTdHJpbmcmKTsKIAogICAgIC8vIFN1cHBvcnQgZm9yIHdo
aXRlbGlzdGluZyBhY2Nlc3MgdG8gb3JpZ2lucyBiZXlvbmQgdGhlIHNhbWUtb3JpZ2luIHBvbGlj
eS4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KAorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoCiAgICAgICAgIGNvbnN0IFdlYlVSTCYgc291cmNlT3JpZ2luLCBjb25zdCBXZWJT
dHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsCiAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgZGVz
dGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKLSAgICBXRUJL
SVRfQVBJIHN0YXRpYyB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KAorICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoCiAgICAgICAgIGNvbnN0IFdlYlVSTCYgc291cmNlT3JpZ2luLCBjb25zdCBXZWJTdHJpbmcm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsCiAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgZGVzdGluYXRp
b25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOworICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiAKICAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgdGhlIHVybCBzaG91bGQgYmUgYWxsb3dlZCB0byBzZWUgdGhlIHJl
ZmVycmVyCiAgICAgLy8gYmFzZWQgb24gdGhlaXIgcmVzcGVjdGl2ZSBwcm90b2NvbHMuCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBzaG91bGRIaWRlUmVmZXJyZXIoY29uc3QgV2ViVVJMJiB1
cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGlj
IGJvb2wgc2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IFdlYlVSTCYgdXJsLCBjb25zdCBXZWJTdHJp
bmcmIHJlZmVycmVyKTsKIAogcHJpdmF0ZToKICAgICBXZWJTZWN1cml0eVBvbGljeSgpOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VsZWN0RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlbGVjdEVsZW1lbnQu
aAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDkgKzU0LDkgQEAgcHVibGljOgog
ICAgIH0KICAgICB2b2lkIGFzc2lnbihjb25zdCBXZWJTZWxlY3RFbGVtZW50JiBlbGVtZW50KSB7
IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWduKGVsZW1lbnQpOyB9CiAKLSAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgV0VCS0lUX0FQSSBXZWJT
dHJpbmcgdmFsdWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIFdlYlZlY3RvcjxXZWJFbGVtZW50
PiBsaXN0SXRlbXMoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VmFsdWUoY29u
c3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgdmFsdWUoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlZlY3RvcjxXZWJFbGVtZW50PiBsaXN0SXRlbXMoKSBj
b25zdDsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYlNlbGVjdEVsZW1lbnQo
Y29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50PiYpOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDE4ICs1MSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAK
LSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgZnJvbVN0cmlu
Zyhjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUgZnJvbVN0cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKIAogICAgIC8vIENy
ZWF0ZSBhIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0aGF0IHJlcHJlc2VudHMgYSBzZXJpYWxp
emF0aW9uIGVycm9yLgotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSBjcmVhdGVJbnZhbGlkKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlIGNyZWF0ZUludmFsaWQoKTsKIAotICAgIFdFQktJVF9BUEkgdm9pZCBy
ZXNldCgpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKIAog
ICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CiAK
ICAgICAvLyBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCiAjaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+Jik7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRXb3JrZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRXb3JrZXIuaAko
cmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTaGFy
ZWRXb3JrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBjbGFzcyBXZWJVUkw7
CiBjbGFzcyBXZWJTaGFyZWRXb3JrZXIgewogcHVibGljOgogICAgIC8vIEludm9rZWQgZnJvbSB0
aGUgd29ya2VyIHRocmVhZCB0byBpbnN0YW50aWF0ZSBhIFdlYlNoYXJlZFdvcmtlciB0aGF0IGlu
dGVyYWN0cyB3aXRoIHRoZSBXZWJLaXQgd29ya2VyIGNvbXBvbmVudHMuCi0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgV2ViU2hhcmVkV29ya2VyKiBjcmVhdGUoV2ViQ29tbW9uV29ya2VyQ2xpZW50Kik7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViU2hhcmVkV29ya2VyKiBjcmVhdGUoV2ViQ29t
bW9uV29ya2VyQ2xpZW50Kik7CiAKICAgICB2aXJ0dWFsIH5XZWJTaGFyZWRXb3JrZXIoKSB7fTsK
IApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0
ZW5lcjsKIAogY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jayA6IHB1YmxpYyBXZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXIgewogcHVibGljOgotICAgIFdFQktJVF9BUEkgc3RhdGljIFdl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIGNyZWF0ZSgKKyAgICBXRUJLSVRfRVhQT1JUIHN0
YXRpYyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKiBjcmVhdGUoCiAgICAgICAgIFdlYlNw
ZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKTsKICAgICB2aXJ0dWFsIH5XZWJTcGVlY2hJbnB1
dENvbnRyb2xsZXJNb2NrKCkgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNwZWVjaElucHV0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRSZXN1bHQuaAkocmV2aXNpb24gOTIzMTIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw4IEBAIHB1YmxpYzoKICAgICBXZWJTcGVlY2hJbnB1
dFJlc3VsdCgpIHsgfQogICAgIH5XZWJTcGVlY2hJbnB1dFJlc3VsdCgpIHsgcmVzZXQoKTsgfQog
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldChjb25zdCBXZWJTdHJpbmcmIHV0dGVyYW5jZSwgZG91
YmxlIGNvbmZpZGVuY2UpOwotICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXQoY29uc3QgV2ViU3RyaW5nJiB1dHRlcmFuY2UsIGRvdWJsZSBjb25m
aWRlbmNlKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgogICAgIFdlYlNwZWVjaElucHV0UmVzdWx0KGNvbnN0IFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdD4mKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBA
IGNsYXNzIFdlYlVSTDsKIC8vIEZJWE1FOiBNYWtlIHRoaXMgKG9yIHNvbWV0aGluZykgd29yayBm
b3IgU2Vzc2lvblN0b3JhZ2UhCiBjbGFzcyBXZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVyIHsKIHB1
YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVyKiBj
cmVhdGUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTdG9yYWdlRXZlbnREaXNwYXRj
aGVyKiBjcmVhdGUoKTsKIAogICAgIHZpcnR1YWwgfldlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXIo
KSB7IH0KIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZU5h
bWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlN0b3JhZ2VOYW1lc3BhY2UuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3
LDggKzQ3LDggQEAgcHVibGljOgogICAgIC8vIHdoZXJlIHRoZSBTUUxpdGUgZGF0YWJhc2VzIHRo
YXQgbWFrZSBMb2NhbFN0b3JhZ2UgZGF0YSBwZXJzaXN0ZW50IGFyZSBsb2NhdGVkLgogICAgIC8v
IElmIHBhdGggaXMgZW1wdHksIGRhdGEgd2lsbCBub3QgcGVyc2lzdC4gWW91IHNob3VsZCBjYWxs
IGRlbGV0ZSBvbiB0aGUgcmV0dXJuZWQKICAgICAvLyBvYmplY3Qgd2hlbiB5b3UncmUgZmluaXNo
ZWQuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlTG9j
YWxTdG9yYWdlTmFtZXNwYWNlKGNvbnN0IFdlYlN0cmluZyYgYmFja2luZ0RpcmVjdG9yeVBhdGgs
IHVuc2lnbmVkIHF1b3RhKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTdG9yYWdlTmFtZXNw
YWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlTG9jYWxTdG9y
YWdlTmFtZXNwYWNlKGNvbnN0IFdlYlN0cmluZyYgYmFja2luZ0RpcmVjdG9yeVBhdGgsIHVuc2ln
bmVkIHF1b3RhKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTdG9yYWdlTmFtZXNwYWNl
KiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CiAKICAgICAv
LyBUaGUgcXVvdGEgZm9yIGVhY2ggc3RvcmFnZSBhcmVhLiAgU3VnZ2VzdGVkIGJ5IHRoZSBzcGVj
LgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhID0gNSAqIDEw
MjQgKiAxMDI0OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5n
LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDIyICs2OSwyMiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsK
LSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYlN0cmluZyYpOwotICAgIFdFQktJ
VF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViVUNoYXIqIGRhdGEsIHNpemVfdCBsZW4pOworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3Np
Z24oY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25z
dCBXZWJVQ2hhciogZGF0YSwgc2l6ZV90IGxlbik7CiAKLSAgICBXRUJLSVRfQVBJIGJvb2wgZXF1
YWxzKGNvbnN0IFdlYlN0cmluZyYgcykgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGVx
dWFscyhjb25zdCBXZWJTdHJpbmcmIHMpIGNvbnN0OwogCi0gICAgV0VCS0lUX0FQSSBzaXplX3Qg
bGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBjb25zdCBXZWJVQ2hhciogZGF0YSgpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgc2l6ZV90IGxlbmd0aCgpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgY29uc3QgV2ViVUNoYXIqIGRhdGEoKSBjb25zdDsKIAogICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuICFsZW5ndGgoKTsgfQogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Qg
eyByZXR1cm4gIW1fcHJpdmF0ZTsgfQogCi0gICAgV0VCS0lUX0FQSSBXZWJDU3RyaW5nIHV0Zjgo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkNTdHJpbmcgdXRmOCgpIGNvbnN0OwogCi0g
ICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViU3RyaW5nIGZyb21VVEY4KGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBsZW5ndGgpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlN0cmluZyBmcm9tVVRG
OChjb25zdCBjaGFyKiBkYXRhKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTdHJpbmcg
ZnJvbVVURjgoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisgICAgV0VCS0lUX0VY
UE9SVCBzdGF0aWMgV2ViU3RyaW5nIGZyb21VVEY4KGNvbnN0IGNoYXIqIGRhdGEpOwogCiAgICAg
dGVtcGxhdGUgPGludCBOPiBXZWJTdHJpbmcoY29uc3QgY2hhciAoJmRhdGEpW05dKQogICAgICAg
ICA6IG1fcHJpdmF0ZSgwKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VGVzdGluZ1N1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJUZXN0aW5nU3VwcG9ydC5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlRlc3RpbmdTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAgY2xhc3MgV2ViRnJhbWU7CiAKIGNsYXNzIFdlYlRlc3RpbmdTdXBwb3J0
IHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGluamVjdEludGVybmFsc09i
amVjdChXZWJGcmFtZSopOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW5qZWN0SW50
ZXJuYWxzT2JqZWN0KFdlYkZyYW1lKik7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJUaHJlYWRTYWZlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRocmVhZFNhZmVEYXRhLmgJKHJldmlzaW9uIDkyMzEy
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtNDksMTEgKzQ5LDExIEBAIHB1YmxpYzoKICAgICBXZWJUaHJlYWRT
YWZlRGF0YSgpIHsgfQogICAgIH5XZWJUaHJlYWRTYWZlRGF0YSgpIHsgcmVzZXQoKTsgfQogCi0g
ICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJUaHJlYWRTYWZlRGF0YSYpOwotICAg
IFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24o
Y29uc3QgV2ViVGhyZWFkU2FmZURhdGEmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQo
KTsKIAotICAgIFdFQktJVF9BUEkgc2l6ZV90IHNpemUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJ
IGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHNpemVfdCBzaXpl
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Q7CiAK
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhc2l6ZSgpOyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgJKHJl
dmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9h
ZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw0NyArNTEsNDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgV0VCS0lUX0FQSSB2b2lkIGluaXRpYWxp
emUoKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQg
YXNzaWduKGNvbnN0IFdlYlVSTExvYWRUaW1pbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
aW5pdGlhbGl6ZSgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViVVJMTG9hZFRpbWluZyYpOwogCiAgICAgYm9v
bCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KIAotICAgIFdF
QktJVF9BUEkgZG91YmxlIHJlcXVlc3RUaW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lk
IHNldFJlcXVlc3RUaW1lKGRvdWJsZSB0aW1lKTsKKyAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBy
ZXF1ZXN0VGltZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0VGlt
ZShkb3VibGUgdGltZSk7CiAKLSAgICBXRUJLSVRfQVBJIGludCBwcm94eVN0YXJ0KCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFByb3h5U3RhcnQoaW50IHN0YXJ0KTsKKyAgICBXRUJL
SVRfRVhQT1JUIGludCBwcm94eVN0YXJ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldFByb3h5U3RhcnQoaW50IHN0YXJ0KTsKIAotICAgIFdFQktJVF9BUEkgaW50IHByb3h5RW5k
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFByb3h5RW5kKGludCBlbmQpOworICAg
IFdFQktJVF9FWFBPUlQgaW50IHByb3h5RW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldFByb3h5RW5kKGludCBlbmQpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgZG5zU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RE5TU3RhcnQoaW50IHN0YXJ0KTsKKyAg
ICBXRUJLSVRfRVhQT1JUIGludCBkbnNTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRETlNTdGFydChpbnQgc3RhcnQpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgZG5zRW5k
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEROU0VuZChpbnQgZW5kKTsKKyAgICBX
RUJLSVRfRVhQT1JUIGludCBkbnNFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0RE5TRW5kKGludCBlbmQpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgY29ubmVjdFN0YXJ0KCkg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldENvbm5lY3RTdGFydChpbnQgc3RhcnQpOwor
ICAgIFdFQktJVF9FWFBPUlQgaW50IGNvbm5lY3RTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBzZXRDb25uZWN0U3RhcnQoaW50IHN0YXJ0KTsKIAotICAgIFdFQktJVF9BUEkg
aW50IGNvbm5lY3RFbmQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0Q29ubmVjdEVu
ZChpbnQgZW5kKTsKKyAgICBXRUJLSVRfRVhQT1JUIGludCBjb25uZWN0RW5kKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldENvbm5lY3RFbmQoaW50IGVuZCk7CiAKLSAgICBXRUJL
SVRfQVBJIGludCBzZW5kU3RhcnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2Vu
ZFN0YXJ0KGludCBzdGFydCk7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgc2VuZFN0YXJ0KCkgY29u
c3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFNlbmRTdGFydChpbnQgc3RhcnQpOwogCi0g
ICAgV0VCS0lUX0FQSSBpbnQgc2VuZEVuZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBz
ZXRTZW5kRW5kKGludCBlbmQpOworICAgIFdFQktJVF9FWFBPUlQgaW50IHNlbmRFbmQoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0U2VuZEVuZChpbnQgZW5kKTsKIAotICAgIFdF
QktJVF9BUEkgaW50IHJlY2VpdmVIZWFkZXJzRW5kKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2
b2lkIHNldFJlY2VpdmVIZWFkZXJzRW5kKGludCBlbmQpOworICAgIFdFQktJVF9FWFBPUlQgaW50
IHJlY2VpdmVIZWFkZXJzRW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFJl
Y2VpdmVIZWFkZXJzRW5kKGludCBlbmQpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgc3NsU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U1NMU3RhcnQoaW50IHN0YXJ0KTsKKyAg
ICBXRUJLSVRfRVhQT1JUIGludCBzc2xTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRTU0xTdGFydChpbnQgc3RhcnQpOwogCi0gICAgV0VCS0lUX0FQSSBpbnQgc3NsRW5k
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFNTTEVuZChpbnQgZW5kKTsKKyAgICBX
RUJLSVRfRVhQT1JUIGludCBzc2xFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0U1NMRW5kKGludCBlbmQpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2Vi
VVJMTG9hZFRpbWluZyhjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nPiYpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVx
dWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVS
TFJlcXVlc3QuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJVUkxSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDgxICs5NCw4MSBAQCBw
dWJsaWM6CiAgICAgICAgIHNldFVSTCh1cmwpOwogICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9p
ZCBpbml0aWFsaXplKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lU
X0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJVUkxSZXF1ZXN0Jik7CisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIGluaXRpYWxpemUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYlVSTFJlcXVlc3QmKTsKIAotICAg
IFdFQktJVF9BUEkgYm9vbCBpc051bGwoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wg
aXNOdWxsKCkgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIFdlYlVSTCB1cmwoKSBjb25zdDsKLSAg
ICBXRUJLSVRfQVBJIHZvaWQgc2V0VVJMKGNvbnN0IFdlYlVSTCYpOworICAgIFdFQktJVF9FWFBP
UlQgV2ViVVJMIHVybCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRVUkwoY29u
c3QgV2ViVVJMJik7CiAKICAgICAvLyBVc2VkIHRvIGltcGxlbWVudCB0aGlyZC1wYXJ0eSBjb29r
aWUgYmxvY2tpbmcuCi0gICAgV0VCS0lUX0FQSSBXZWJVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoY29u
c3QgV2ViVVJMJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJVUkwgZmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Rmlyc3RQYXJ0eUZvckNvb2tp
ZXMoY29uc3QgV2ViVVJMJik7CiAKLSAgICBXRUJLSVRfQVBJIGJvb2wgYWxsb3dDb29raWVzKCkg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEFsbG93Q29va2llcyhib29sIGFsbG93Q29v
a2llcyk7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGFsbG93Q29va2llcygpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXRBbGxvd0Nvb2tpZXMoYm9vbCBhbGxvd0Nvb2tpZXMpOwog
CiAgICAgLy8gQ29udHJvbHMgd2hldGhlciB1c2VyIG5hbWUsIHBhc3N3b3JkLCBhbmQgY29va2ll
cyBtYXkgYmUgc2VudCB3aXRoIHRoZQogICAgIC8vIHJlcXVlc3QuIChJZiBmYWxzZSwgdGhpcyBv
dmVycmlkZXMgYWxsb3dDb29raWVzLikKLSAgICBXRUJLSVRfQVBJIGJvb2wgYWxsb3dTdG9yZWRD
cmVkZW50aWFscygpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzKGJvb2wgYWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CisgICAgV0VCS0lUX0VYUE9S
VCBib29sIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhib29sIGFsbG93U3RvcmVkQ3JlZGVudGlh
bHMpOwogCi0gICAgV0VCS0lUX0FQSSBDYWNoZVBvbGljeSBjYWNoZVBvbGljeSgpIGNvbnN0Owot
ICAgIFdFQktJVF9BUEkgdm9pZCBzZXRDYWNoZVBvbGljeShDYWNoZVBvbGljeSk7CisgICAgV0VC
S0lUX0VYUE9SVCBDYWNoZVBvbGljeSBjYWNoZVBvbGljeSgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBzZXRDYWNoZVBvbGljeShDYWNoZVBvbGljeSk7CiAKLSAgICBXRUJLSVRfQVBJ
IFdlYlN0cmluZyBodHRwTWV0aG9kKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhU
VFBNZXRob2QoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcg
aHR0cE1ldGhvZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRIVFRQTWV0aG9k
KGNvbnN0IFdlYlN0cmluZyYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgaHR0cEhlYWRl
ckZpZWxkKGNvbnN0IFdlYlN0cmluZyYgbmFtZSkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lk
IHNldEhUVFBIZWFkZXJGaWVsZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmlu
ZyYgdmFsdWUpOwotICAgIFdFQktJVF9BUEkgdm9pZCBhZGRIVFRQSGVhZGVyRmllbGQoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKLSAgICBXRUJLSVRfQVBJ
IHZvaWQgY2xlYXJIVFRQSGVhZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lKTsKLSAgICBX
RUJLSVRfQVBJIHZvaWQgdmlzaXRIVFRQSGVhZGVyRmllbGRzKFdlYkhUVFBIZWFkZXJWaXNpdG9y
KikgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNv
bnN0IFdlYlN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEhU
VFBIZWFkZXJGaWVsZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFs
dWUpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgY2xlYXJIVFRQSGVhZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lKTsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgdmlzaXRIVFRQSGVhZGVyRmllbGRzKFdlYkhUVFBIZWFkZXJWaXNp
dG9yKikgY29uc3Q7CiAKLSAgICBXRUJLSVRfQVBJIFdlYkhUVFBCb2R5IGh0dHBCb2R5KCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhUVFBCb2R5KGNvbnN0IFdlYkhUVFBCb2R5Jik7
CisgICAgV0VCS0lUX0VYUE9SVCBXZWJIVFRQQm9keSBodHRwQm9keSgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBzZXRIVFRQQm9keShjb25zdCBXZWJIVFRQQm9keSYpOwogCiAgICAg
Ly8gQ29udHJvbHMgd2hldGhlciB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzIGFyZSBnZW5lcmF0ZWQg
d2hlbiBhIHJlcXVlc3QKICAgICAvLyBoYXMgYSBib2R5LgotICAgIFdFQktJVF9BUEkgYm9vbCBy
ZXBvcnRVcGxvYWRQcm9ncmVzcygpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXBv
cnRVcGxvYWRQcm9ncmVzcyhib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgcmVwb3J0VXBs
b2FkUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0UmVwb3J0VXBs
b2FkUHJvZ3Jlc3MoYm9vbCk7CiAKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGxvYWQgdGltaW5n
IGluZm8gaXMgY29sbGVjdGVkIGZvciB0aGUgcmVxdWVzdC4KLSAgICBXRUJLSVRfQVBJIGJvb2wg
cmVwb3J0TG9hZFRpbWluZygpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXBvcnRM
b2FkVGltaW5nKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgYm9vbCByZXBvcnRMb2FkVGltaW5n
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFJlcG9ydExvYWRUaW1pbmcoYm9v
bCk7CiAKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjdHVhbCBoZWFkZXJzIHNlbnQgYW5kIHJl
Y2VpdmVkIGZvciByZXF1ZXN0IGFyZQogICAgIC8vIGNvbGxlY3RlZCBhbmQgcmVwb3J0ZWQuCi0g
ICAgV0VCS0lUX0FQSSBib29sIHJlcG9ydFJhd0hlYWRlcnMoKSBjb25zdDsKLSAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0UmVwb3J0UmF3SGVhZGVycyhib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIGJv
b2wgcmVwb3J0UmF3SGVhZGVycygpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRS
ZXBvcnRSYXdIZWFkZXJzKGJvb2wpOwogCi0gICAgV0VCS0lUX0FQSSBUYXJnZXRUeXBlIHRhcmdl
dFR5cGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VGFyZ2V0VHlwZShUYXJnZXRU
eXBlKTsKKyAgICBXRUJLSVRfRVhQT1JUIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUpOwogCiAgICAg
Ly8gVHJ1ZSBpZiB0aGUgcmVxdWVzdCB3YXMgdXNlciBpbml0aWF0ZWQuCi0gICAgV0VCS0lUX0FQ
SSBib29sIGhhc1VzZXJHZXN0dXJlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhh
c1VzZXJHZXN0dXJlKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBoYXNVc2VyR2VzdHVy
ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRIYXNVc2VyR2VzdHVyZShib29s
KTsKIAogICAgIC8vIEEgY29uc3VtZXIgY29udHJvbGxlZCB2YWx1ZSBpbnRlbmRlZCB0byBiZSB1
c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgIC8vIHJlcXVlc3Rvci4KLSAgICBXRUJLSVRfQVBJIGlu
dCByZXF1ZXN0b3JJRCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXF1ZXN0b3JJ
RChpbnQpOworICAgIFdFQktJVF9FWFBPUlQgaW50IHJlcXVlc3RvcklEKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RvcklEKGludCk7CiAKICAgICAvLyBBIGNvbnN1
bWVyIGNvbnRyb2xsZWQgdmFsdWUgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUK
ICAgICAvLyBwcm9jZXNzIG9mIHRoZSByZXF1ZXN0b3IuCi0gICAgV0VCS0lUX0FQSSBpbnQgcmVx
dWVzdG9yUHJvY2Vzc0lEKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcXVlc3Rv
clByb2Nlc3NJRChpbnQpOworICAgIFdFQktJVF9FWFBPUlQgaW50IHJlcXVlc3RvclByb2Nlc3NJ
RCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0b3JQcm9jZXNzSUQo
aW50KTsKIAogICAgIC8vIEFsbG93cyB0aGUgcmVxdWVzdCB0byBiZSBtYXRjaGVkIHVwIHdpdGgg
aXRzIGFwcCBjYWNoZSBob3N0LgotICAgIFdFQktJVF9BUEkgaW50IGFwcENhY2hlSG9zdElEKCkg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEFwcENhY2hlSG9zdElEKGludCBpZCk7Cisg
ICAgV0VCS0lUX0VYUE9SVCBpbnQgYXBwQ2FjaGVIb3N0SUQoKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgc2V0QXBwQ2FjaGVIb3N0SUQoaW50IGlkKTsKIAogICAgIC8vIElmIHRydWUs
IHRoZSByZXNwb25zZSBib2R5IHdpbGwgYmUgZG93bmxvYWRlZCB0byBhIGZpbGUgbWFuYWdlZCBi
eSB0aGUKICAgICAvLyBXZWJVUkxMb2FkZXIuICBTZWUgV2ViVVJMUmVzcG9uc2U6OmRvd25sb2Fk
ZWRGaWxlUGF0aC4KLSAgICBXRUJLSVRfQVBJIGJvb2wgZG93bmxvYWRUb0ZpbGUoKSBjb25zdDsK
LSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RG93bmxvYWRUb0ZpbGUoYm9vbCk7CisgICAgV0VCS0lU
X0VYUE9SVCBib29sIGRvd25sb2FkVG9GaWxlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldERvd25sb2FkVG9GaWxlKGJvb2wpOwogCiAgICAgLy8gRXh0cmEgZGF0YSBhc3NvY2lh
dGVkIHdpdGggdGhlIHVuZGVybHlpbmcgcmVzb3VyY2UgcmVxdWVzdC4gUmVzb3VyY2UKICAgICAv
LyByZXF1ZXN0cyBjYW4gYmUgY29waWVkLiBJZiBub24tbnVsbCwgZWFjaCBjb3B5IG9mIGEgcmVz
b3VyY2UgcmVxdWVzdHMKQEAgLTE3Niw4ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgLy8gZGVsZXRl
ZCB3aGVuIHRoZSBsYXN0IHJlc291cmNlIHJlcXVlc3QgaXMgZGVzdHJveWVkLiBTZXR0aW5nIHRo
ZSBleHRyYQogICAgIC8vIGRhdGEgcG9pbnRlciB3aWxsIGNhdXNlIHRoZSB1bmRlcmx5aW5nIHJl
c291cmNlIHJlcXVlc3QgdG8gYmUKICAgICAvLyBkaXNzb2NpYXRlZCBmcm9tIGFueSBleGlzdGlu
ZyBub24tbnVsbCBleHRyYSBkYXRhIHBvaW50ZXIuCi0gICAgV0VCS0lUX0FQSSBFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRFeHRyYURhdGEoRXh0
cmFEYXRhKik7CisgICAgV0VCS0lUX0VYUE9SVCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7CiAKICNp
ZiBkZWZpbmVkKFdFQktJVF9JTVBMRU1FTlRBVElPTikKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHRvTXV0YWJsZVJlc291cmNlUmVxdWVzdCgpOwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCShyZXZpc2lvbiA5MjMxMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDY3ICs2Niw2NyBAQCBwdWJsaWM6CiAgICAgICAgIHNldFVSTCh1cmwpOwog
ICAgIH0KIAotICAgIFdFQktJVF9BUEkgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgV0VCS0lUX0FQ
SSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJVUkxS
ZXNwb25zZSYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKCk7CisgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihj
b25zdCBXZWJVUkxSZXNwb25zZSYpOwogCi0gICAgV0VCS0lUX0FQSSBib29sIGlzTnVsbCgpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc051bGwoKSBjb25zdDsKIAotICAgIFdFQktJ
VF9BUEkgV2ViVVJMIHVybCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRVUkwoY29u
c3QgV2ViVVJMJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJVUkwgdXJsKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIHNldFVSTChjb25zdCBXZWJVUkwmKTsKIAotICAgIFdFQktJVF9B
UEkgdW5zaWduZWQgY29ubmVjdGlvbklEKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNl
dENvbm5lY3Rpb25JRCh1bnNpZ25lZCk7CisgICAgV0VCS0lUX0VYUE9SVCB1bnNpZ25lZCBjb25u
ZWN0aW9uSUQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Q29ubmVjdGlvbklE
KHVuc2lnbmVkKTsKIAotICAgIFdFQktJVF9BUEkgYm9vbCBjb25uZWN0aW9uUmV1c2VkKCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldENvbm5lY3Rpb25SZXVzZWQoYm9vbCk7CisgICAg
V0VCS0lUX0VYUE9SVCBib29sIGNvbm5lY3Rpb25SZXVzZWQoKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgc2V0Q29ubmVjdGlvblJldXNlZChib29sKTsKIAotICAgIFdFQktJVF9BUEkg
V2ViVVJMTG9hZFRpbWluZyBsb2FkVGltaW5nKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldExv
YWRUaW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2Vi
VVJMTG9hZFRpbWluZyBsb2FkVGltaW5nKCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldExv
YWRUaW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYpOwogCi0gICAgV0VCS0lUX0FQSSBXZWJI
VFRQTG9hZEluZm8gaHR0cExvYWRJbmZvKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhUVFBM
b2FkSW5mbyhjb25zdCBXZWJIVFRQTG9hZEluZm8mKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkhU
VFBMb2FkSW5mbyBodHRwTG9hZEluZm8oKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SFRU
UExvYWRJbmZvKGNvbnN0IFdlYkhUVFBMb2FkSW5mbyYpOwogCi0gICAgV0VCS0lUX0FQSSBkb3Vi
bGUgcmVzcG9uc2VUaW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc3BvbnNl
VGltZShkb3VibGUpOworICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIHJlc3BvbnNlVGltZSgpIGNv
bnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRSZXNwb25zZVRpbWUoZG91YmxlKTsKIAot
ICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQ
SSB2b2lkIHNldE1JTUVUeXBlKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQg
V2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldE1J
TUVUeXBlKGNvbnN0IFdlYlN0cmluZyYpOwogCi0gICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEV4cGVj
dGVkQ29udGVudExlbmd0aChsb25nIGxvbmcpOworICAgIFdFQktJVF9FWFBPUlQgbG9uZyBsb25n
IGV4cGVjdGVkQ29udGVudExlbmd0aCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBz
ZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobG9uZyBsb25nKTsKIAotICAgIFdFQktJVF9BUEkgV2Vi
U3RyaW5nIHRleHRFbmNvZGluZ05hbWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdl
YlN0cmluZyB0ZXh0RW5jb2RpbmdOYW1lKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJik7CiAKLSAgICBXRUJLSVRfQVBJ
IFdlYlN0cmluZyBzdWdnZXN0ZWRGaWxlTmFtZSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRTdWdnZXN0ZWRGaWxlTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyBzdWdnZXN0ZWRGaWxlTmFtZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBzZXRTdWdnZXN0ZWRGaWxlTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIFdF
QktJVF9BUEkgaW50IGh0dHBTdGF0dXNDb2RlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lk
IHNldEhUVFBTdGF0dXNDb2RlKGludCk7CisgICAgV0VCS0lUX0VYUE9SVCBpbnQgaHR0cFN0YXR1
c0NvZGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SFRUUFN0YXR1c0NvZGUo
aW50KTsKIAotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGh0dHBTdGF0dXNUZXh0KCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFdlYlN0cmluZyYp
OworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGh0dHBTdGF0dXNUZXh0KCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEhUVFBTdGF0dXNUZXh0KGNvbnN0IFdlYlN0cmluZyYp
OwogCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEhUVFBIZWFkZXJGaWVs
ZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOwotICAgIFdF
QktJVF9BUEkgdm9pZCBhZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBj
b25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgY2xlYXJIVFRQSGVh
ZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgdmlz
aXRIVFRQSGVhZGVyRmllbGRzKFdlYkhUVFBIZWFkZXJWaXNpdG9yKikgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJTdHJpbmcgaHR0cEhlYWRlckZpZWxkKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBhZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIHZhbHVlKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgY2xlYXJIVFRQSGVh
ZGVyRmllbGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
dmlzaXRIVFRQSGVhZGVyRmllbGRzKFdlYkhUVFBIZWFkZXJWaXNpdG9yKikgY29uc3Q7CiAKLSAg
ICBXRUJLSVRfQVBJIGRvdWJsZSBsYXN0TW9kaWZpZWREYXRlKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSB2b2lkIHNldExhc3RNb2RpZmllZERhdGUoZG91YmxlKTsKKyAgICBXRUJLSVRfRVhQT1JU
IGRvdWJsZSBsYXN0TW9kaWZpZWREYXRlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldExhc3RNb2RpZmllZERhdGUoZG91YmxlKTsKIAotICAgIFdFQktJVF9BUEkgbG9uZyBsb25n
IGFwcENhY2hlSUQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0QXBwQ2FjaGVJRChs
b25nIGxvbmcpOworICAgIFdFQktJVF9FWFBPUlQgbG9uZyBsb25nIGFwcENhY2hlSUQoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0QXBwQ2FjaGVJRChsb25nIGxvbmcpOwogCi0g
ICAgV0VCS0lUX0FQSSBXZWJVUkwgYXBwQ2FjaGVNYW5pZmVzdFVSTCgpIGNvbnN0OwotICAgIFdF
QktJVF9BUEkgdm9pZCBzZXRBcHBDYWNoZU1hbmlmZXN0VVJMKGNvbnN0IFdlYlVSTCYpOworICAg
IFdFQktJVF9FWFBPUlQgV2ViVVJMIGFwcENhY2hlTWFuaWZlc3RVUkwoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0QXBwQ2FjaGVNYW5pZmVzdFVSTChjb25zdCBXZWJVUkwmKTsK
IAogICAgIC8vIEEgY29uc3VtZXIgY29udHJvbGxlZCB2YWx1ZSBpbnRlbmRlZCB0byBiZSB1c2Vk
IHRvIHJlY29yZCBvcGFxdWUKICAgICAvLyBzZWN1cml0eSBpbmZvIHJlbGF0ZWQgdG8gdGhpcyBy
ZXF1ZXN0LgotICAgIFdFQktJVF9BUEkgV2ViQ1N0cmluZyBzZWN1cml0eUluZm8oKSBjb25zdDsK
LSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2VjdXJpdHlJbmZvKGNvbnN0IFdlYkNTdHJpbmcmKTsK
KyAgICBXRUJLSVRfRVhQT1JUIFdlYkNTdHJpbmcgc2VjdXJpdHlJbmZvKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIHNldFNlY3VyaXR5SW5mbyhjb25zdCBXZWJDU3RyaW5nJik7CiAK
ICNpZiBkZWZpbmVkKFdFQktJVF9JTVBMRU1FTlRBVElPTikKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiB0b011dGFibGVSZXNvdXJjZVJlc3BvbnNlKCk7CkBAIC0xMzQsNDUgKzEzNCw0
NSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIC8vIEZsYWcgd2hldGhlciB0aGlzIHJlcXVlc3Qg
d2FzIHNlcnZlZCBmcm9tIHRoZSBkaXNrIGNhY2hlIGVudHJ5LgotICAgIFdFQktJVF9BUEkgYm9v
bCB3YXNDYWNoZWQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0V2FzQ2FjaGVkKGJv
b2wpOworICAgIFdFQktJVF9FWFBPUlQgYm9vbCB3YXNDYWNoZWQoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgc2V0V2FzQ2FjaGVkKGJvb2wpOwogCiAgICAgLy8gRmxhZyB3aGV0aGVy
IHRoaXMgcmVxdWVzdCB3YXMgbG9hZGVkIHZpYSB0aGUgU1BEWSBwcm90b2NvbCBvciBub3QuCiAg
ICAgLy8gU1BEWSBpcyBhbiBleHBlcmltZW50YWwgd2ViIHByb3RvY29sLCBzZWUgaHR0cDovL2Rl
di5jaHJvbWl1bS5vcmcvc3BkeQotICAgIFdFQktJVF9BUEkgYm9vbCB3YXNGZXRjaGVkVmlhU1BE
WSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRXYXNGZXRjaGVkVmlhU1BEWShib29s
KTsKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgd2FzRmV0Y2hlZFZpYVNQRFkoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0V2FzRmV0Y2hlZFZpYVNQRFkoYm9vbCk7CiAKICAgICAv
LyBGbGFnIHdoZXRoZXIgdGhpcyByZXF1ZXN0IHdhcyBsb2FkZWQgYWZ0ZXIgdGhlIFRMUy9OZXh0
LVByb3RvY29sLU5lZ290aWF0aW9uIHdhcyB1c2VkLgogICAgIC8vIFRoaXMgaXMgcmVsYXRlZCB0
byBTUERZLgotICAgIFdFQktJVF9BUEkgYm9vbCB3YXNOcG5OZWdvdGlhdGVkKCkgY29uc3Q7Ci0g
ICAgV0VCS0lUX0FQSSB2b2lkIHNldFdhc05wbk5lZ290aWF0ZWQoYm9vbCk7CisgICAgV0VCS0lU
X0VYUE9SVCBib29sIHdhc05wbk5lZ290aWF0ZWQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0V2FzTnBuTmVnb3RpYXRlZChib29sKTsKIAogICAgIC8vIEZsYWcgd2hldGhlciB0
aGlzIHJlcXVlc3Qgd2FzIG1hZGUgd2hlbiAiQWx0ZXJuYXRlLVByb3RvY29sOiB4eHgiCiAgICAg
Ly8gaXMgcHJlc2VudCBpbiBzZXJ2ZXIncyByZXNwb25zZS4KLSAgICBXRUJLSVRfQVBJIGJvb2wg
d2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZv
aWQgc2V0V2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGUoYm9vbCk7CisgICAgV0VCS0lUX0VY
UE9SVCBib29sIHdhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHNldFdhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlKGJvb2wpOwog
CiAgICAgLy8gRmxhZyB3aGV0aGVyIHRoaXMgcmVxdWVzdCB3YXMgbG9hZGVkIHZpYSBhbiBleHBs
aWNpdCBwcm94eSAoSFRUUCwgU09DS1MsIGV0YykuCi0gICAgV0VCS0lUX0FQSSBib29sIHdhc0Zl
dGNoZWRWaWFQcm94eSgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRXYXNGZXRjaGVk
VmlhUHJveHkoYm9vbCk7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIHdhc0ZldGNoZWRWaWFQcm94
eSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRXYXNGZXRjaGVkVmlhUHJveHko
Ym9vbCk7CiAKICAgICAvLyBGbGFnIHdoZXRoZXIgdGhpcyByZXF1ZXN0IGlzIHBhcnQgb2YgYSBt
dWx0aXBhcnQgcmVzcG9uc2UuCi0gICAgV0VCS0lUX0FQSSBib29sIGlzTXVsdGlwYXJ0UGF5bG9h
ZCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRJc011bHRpcGFydFBheWxvYWQoYm9v
bCk7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzTXVsdGlwYXJ0UGF5bG9hZCgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRJc011bHRpcGFydFBheWxvYWQoYm9vbCk7CiAKICAg
ICAvLyBUaGlzIGluZGljYXRlcyB0aGUgbG9jYXRpb24gb2YgYSBkb3dubG9hZGVkIHJlc3BvbnNl
IGlmIHRoZQogICAgIC8vIFdlYlVSTFJlcXVlc3QgaGFkIHRoZSBkb3dubG9hZFRvRmlsZSBmbGFn
IHNldCB0byB0cnVlLiAgVGhpcyBmaWxlIHBhdGgKICAgICAvLyByZW1haW5zIHZhbGlkIGZvciB0
aGUgbGlmZXRpbWUgb2YgdGhlIFdlYlVSTExvYWRlciB1c2VkIHRvIGNyZWF0ZSBpdC4KLSAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyBkb3dubG9hZEZpbGVQYXRoKCkgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSB2b2lkIHNldERvd25sb2FkRmlsZVBhdGgoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VC
S0lUX0VYUE9SVCBXZWJTdHJpbmcgZG93bmxvYWRGaWxlUGF0aCgpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXREb3dubG9hZEZpbGVQYXRoKGNvbnN0IFdlYlN0cmluZyYpOwogCiAg
ICAgLy8gUmVtb3RlIElQIGFkZHJlc3Mgb2YgdGhlIHNvY2tldCB3aGljaCBmZXRjaGVkIHRoaXMg
cmVzb3VyY2UuCi0gICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgcmVtb3RlSVBBZGRyZXNzKCkgY29u
c3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlbW90ZUlQQWRkcmVzcyhjb25zdCBXZWJTdHJp
bmcmKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyByZW1vdGVJUEFkZHJlc3MoKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0UmVtb3RlSVBBZGRyZXNzKGNvbnN0IFdlYlN0
cmluZyYpOwogCiAgICAgLy8gUmVtb3RlIHBvcnQgbnVtYmVyIG9mIHRoZSBzb2NrZXQgd2hpY2gg
ZmV0Y2hlZCB0aGlzIHJlc291cmNlLgotICAgIFdFQktJVF9BUEkgdW5zaWduZWQgc2hvcnQgcmVt
b3RlUG9ydCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZW1vdGVQb3J0KHVuc2ln
bmVkIHNob3J0KTsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIHNob3J0IHJlbW90ZVBvcnQo
KSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0UmVtb3RlUG9ydCh1bnNpZ25lZCBz
aG9ydCk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGFzc2lnbihXZWJVUkxSZXNwb25zZVByaXZh
dGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlz
aW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw5ICs1OCw5IEBAIHN0cnVjdCBXZWJQb2ludDsKIAogY2xhc3Mg
V2ViVmlldyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgotICAgIFdFQktJVF9BUEkgc3Rh
dGljIGNvbnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbzsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBjb25zdCBkb3VibGUgbWluVGV4dFNpemVNdWx0aXBsaWVyOwotICAgIFdFQktJVF9B
UEkgc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXI7CisgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvOworICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXI7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgY29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlw
bGllcjsKIAogICAgIC8vIENvbnRyb2xzIHRoZSB0aW1lIHRoYXQgdXNlciBzY3JpcHRzIGluamVj
dGVkIGludG8gdGhlIGRvY3VtZW50IHJ1bi4KICAgICBlbnVtIFVzZXJTY3JpcHRJbmplY3RBdCB7
CkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGVzIGEgV2ViVmlldyB0aGF0
IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ugd2lsbCBuZWVkIHRvCiAgICAgLy8gY2FsbCBp
bml0aWFsaXplTWFpbkZyYW1lIHRvIGZpbmlzaCB0aGUgaW5pdGlhbGl6YXRpb24uICBJdCBpcyB2
YWxpZAogICAgIC8vIHRvIHBhc3MgbnVsbCBjbGllbnQgcG9pbnRlcnMuCi0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgV2ViVmlldyogY3JlYXRlKFdlYlZpZXdDbGllbnQqKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyBXZWJWaWV3KiBjcmVhdGUoV2ViVmlld0NsaWVudCopOwogCiAgICAgLy8gQWZ0
ZXIgY3JlYXRpbmcgYSBXZWJWaWV3LCB5b3Ugc2hvdWxkIGltbWVkaWF0ZWx5IGNhbGwgdGhpcyBt
ZXRob2QuCiAgICAgLy8gWW91IGNhbiBvcHRpb25hbGx5IG1vZGlmeSB0aGUgc2V0dGluZ3MgYmVm
b3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCkBAIC0yMDAsOCArMjAwLDggQEAgcHVibGljOgogCiAg
ICAgLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IGJldHdlZW4gem9vbSBsZXZlbCBhbmQg
em9vbSBmYWN0b3IuICB6b29tCiAgICAgLy8gZmFjdG9yIGlzIHpvb20gcGVyY2VudCAvIDEwMCwg
c28gMzAwJSA9IDMuMC4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBkb3VibGUgem9vbUxldmVsVG9a
b29tRmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIGRvdWJs
ZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CisgICAgV0VCS0lUX0VYUE9S
VCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsK
KyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRv
dWJsZSBmYWN0b3IpOwogCiAKICAgICAvLyBNZWRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMwNiwxOCArMzA2LDE4
IEBAIHB1YmxpYzoKICAgICAvLyBQb3B1cCBtZW51IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFNldHMgd2hldGhlciBz
ZWxlY3QgcG9wdXAgbWVudXMgc2hvdWxkIGJlIHJlbmRlcmVkIGJ5IHRoZSBicm93c2VyLgotICAg
IFdFQktJVF9BUEkgc3RhdGljIHZvaWQgc2V0VXNlRXh0ZXJuYWxQb3B1cE1lbnVzKGJvb2wpOwor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0VXNlRXh0ZXJuYWxQb3B1cE1lbnVzKGJv
b2wpOwogCiAKICAgICAvLyBWaXNpdGVkIGxpbmsgc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFRlbGxzIGFsbCBXZWJWaWV3
IGluc3RhbmNlcyB0byB1cGRhdGUgdGhlIHZpc2l0ZWQgbGluayBzdGF0ZSBmb3IgdGhlCiAgICAg
Ly8gc3BlY2lmaWVkIGhhc2guCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCB1cGRhdGVWaXNp
dGVkTGlua1N0YXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBoYXNoKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyB2b2lkIHVwZGF0ZVZpc2l0ZWRMaW5rU3RhdGUodW5zaWduZWQgbG9uZyBsb25nIGhh
c2gpOwogCiAgICAgLy8gVGVsbHMgYWxsIFdlYlZpZXcgaW5zdGFuY2VzIHRvIHVwZGF0ZSB0aGUg
dmlzaXRlZCBzdGF0ZSBmb3IgYWxsCiAgICAgLy8gdGhlaXIgbGlua3MuCi0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgdm9pZCByZXNldFZpc2l0ZWRMaW5rU3RhdGUoKTsKKyAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyB2b2lkIHJlc2V0VmlzaXRlZExpbmtTdGF0ZSgpOwogCiAKICAgICAvLyBDdXN0b20g
Y29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KQEAgLTMzMiwyMiArMzMyLDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlRm9yZWdyb3VuZENvbG9yKSA9IDA7CiAK
ICAgICAvLyBVc2VyIHNjcmlwdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGFkZFVzZXJT
Y3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3RBdCBpbmplY3RBdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VXNlckNvbnRlbnRJbmplY3RJbiBpbmplY3RJbik7Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9p
ZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2Vi
U3RyaW5nPiYgcGF0dGVybnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVc2VyQ29udGVudEluamVjdEluIGluamVjdEluLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlclN0eWxlSW5qZWN0aW9uVGltZSBpbmplY3Rp
b25UaW1lID0gVXNlclN0eWxlSW5qZWN0SW5TdWJzZXF1ZW50RG9jdW1lbnRzKTsKLSAgICBXRUJL
SVRfQVBJIHN0YXRpYyB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CisgICAgV0VCS0lUX0VY
UE9SVCBzdGF0aWMgdm9pZCBhZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
VmVjdG9yPFdlYlN0cmluZz4mIHBhdHRlcm5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXQgaW5qZWN0QXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJDb250ZW50SW5qZWN0SW4gaW5q
ZWN0SW4pOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQo
Y29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHBhdHRlcm5z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlckNv
bnRlbnRJbmplY3RJbiBpbmplY3RJbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVzZXJTdHlsZUluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSA9IFVz
ZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cyk7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCiAgICAgLy8gTW9kYWwgZGlhbG9n
IHN1cHBvcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICAvLyBDYWxsIHRoZXNlIG1ldGhvZHMgYmVmb3JlIGFuZCBhZnRlciBydW5uaW5nIGEg
bmVzdGVkLCBtb2RhbCBldmVudCBsb29wCiAgICAgLy8gdG8gc3VzcGVuZCBzY3JpcHQgY2FsbGJh
Y2tzIGFuZCByZXNvdXJjZSBsb2Fkcy4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHdpbGxF
bnRlck1vZGFsTG9vcCgpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZGlkRXhpdE1vZGFs
TG9vcCgpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgd2lsbEVudGVyTW9kYWxMb29w
KCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBkaWRFeGl0TW9kYWxMb29wKCk7CiAK
ICAgICAvLyBHUFUgYWNjZWxlcmF0aW9uIHN1cHBvcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViV29ya2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViV29ya2VyLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViV29ya2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xh
c3MgV2ViV29ya2VyQ2xpZW50OwogY2xhc3MgV2ViV29ya2VyIHsKIHB1YmxpYzoKICAgICAvLyBJ
bnN0YW50aWF0ZXMgYSBidWlsdC1pbiBXZWJXb3JrZXIuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMg
V2ViV29ya2VyKiBjcmVhdGUoV2ViV29ya2VyQ2xpZW50Kik7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgV2ViV29ya2VyKiBjcmVhdGUoV2ViV29ya2VyQ2xpZW50Kik7CiAKICAgICB2aXJ0dWFs
IH5XZWJXb3JrZXIoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJDb250ZXh0KGNv
bnN0IFdlYlVSTCYgc2NyaXB0VVJMLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvZ3RrL1dlYkZvbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvZ3RrL1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvZ3RrL1dlYkZvbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIC8vCiAgICAgLy8gUmV0dXJuczogdGhlIGZvbnQg
ZmFtaWx5IG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgcmVxdWVzdCBjb3VsZCBub3QgYmUKICAg
ICAvLyBzYXRpc2ZpZWQuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViQ1N0cmluZyBmYW1pbHlG
b3JDaGFycyhjb25zdCBXZWJVQ2hhciogY2hhcmFjdGVycywgc2l6ZV90IG51bUNoYXJhY3RlcnMs
IGNvbnN0IGNoYXIqIHByZWZlcnJlZExvY2FsZSk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
V2ViQ1N0cmluZyBmYW1pbHlGb3JDaGFycyhjb25zdCBXZWJVQ2hhciogY2hhcmFjdGVycywgc2l6
ZV90IG51bUNoYXJhY3RlcnMsIGNvbnN0IGNoYXIqIHByZWZlcnJlZExvY2FsZSk7CiAKICAgICAv
LyBGaWxsIG91dCB0aGUgZ2l2ZW4gV2ViRm9udFJlbmRlclN0eWxlIHdpdGggdGhlIHVzZXIncyBw
cmVmZXJlbmNlcyBmb3IKICAgICAvLyByZW5kZXJpbmcgdGhlIGdpdmVuIGZvbnQgYXQgdGhlIGdp
dmVuIHNpemUuCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAvLyAgICAgKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgIC8vICAgICBJOiBpdGFsaWMgZmxhZwogICAg
IC8vICAgICBCOiBib2xkIGZsYWcKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHJlbmRlclN0
eWxlRm9yU3RyaWtlKGNvbnN0IGNoYXIqIGZhbWlseSwgaW50IHNpemVBbmRTdHlsZSwgV2ViRm9u
dFJlbmRlclN0eWxlKiByZXN1bHQpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVu
ZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBX
ZWJGb250UmVuZGVyU3R5bGUqIHJlc3VsdCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2d0ay9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2d0ay9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5oCShyZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NywxMiArNDcsMTIgQEAgY2xhc3MgV2ViTW91c2VXaGVlbEV2ZW50OwogCiBjbGFzcyBX
ZWJJbnB1dEV2ZW50RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
S2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50S2V5Kik7Ci0gICAgV0VC
S0lUX0FQSSBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50KHdjaGFyX3QgY2hh
cmFjdGVyLCBpbnQgc3RhdGUsIGRvdWJsZSB0aW1lU3RhbXBTZWNvbmRzKTsKLSAgICBXRUJLSVRf
QVBJIHN0YXRpYyBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQoY29uc3QgR2RrRXZlbnRCdXR0b24q
KTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQoY29uc3Qg
R2RrRXZlbnRNb3Rpb24qKTsKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJNb3VzZUV2ZW50IG1v
dXNlRXZlbnQoY29uc3QgR2RrRXZlbnRDcm9zc2luZyopOwotICAgIFdFQktJVF9BUEkgc3RhdGlj
IFdlYk1vdXNlV2hlZWxFdmVudCBtb3VzZVdoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnRTY3JvbGwq
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZl
bnQoY29uc3QgR2RrRXZlbnRLZXkqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJLZXli
b2FyZEV2ZW50IGtleWJvYXJkRXZlbnQod2NoYXJfdCBjaGFyYWN0ZXIsIGludCBzdGF0ZSwgZG91
YmxlIHRpbWVTdGFtcFNlY29uZHMpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYk1vdXNl
RXZlbnQgbW91c2VFdmVudChjb25zdCBHZGtFdmVudEJ1dHRvbiopOworICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudChjb25zdCBHZGtFdmVudE1vdGlvbiop
OworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudChjb25z
dCBHZGtFdmVudENyb3NzaW5nKik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViTW91c2VX
aGVlbEV2ZW50IG1vdXNlV2hlZWxFdmVudChjb25zdCBHZGtFdmVudFNjcm9sbCopOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaAkocmV2aXNpb24gOTIz
MTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVy
U3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7IHN0cnVjdCBGb250UmVuZGVyU3R5CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3Qg
V0VCS0lUX0FQSSBXZWJGb250UmVuZGVyU3R5bGUgeworc3RydWN0IFdFQktJVF9FWFBPUlQgV2Vi
Rm9udFJlbmRlclN0eWxlIHsKICAgICAvLyBFYWNoIG9mIHRoZSB1c2UqIG1lbWJlcnMgYmVsb3cg
Y2FuIHRha2Ugb25lIG9mIHRocmVlIHZhbHVlczoKICAgICAvLyAgIDA6IG9mZgogICAgIC8vICAg
MTogb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRS
ZW5kZXJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9s
aW51eC9XZWJGb250UmVuZGVyaW5nLmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udFJlbmRlcmluZy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MSwxMSArNDEsMTEgQEAgY2xhc3MgV2ViRm9udFJlbmRlcmluZyB7CiBwdWJsaWM6CiAg
ICAgLy8gU2V0IGdsb2JhbCBmb250IHJlbmRlcmVyaW5nIHByZWZlcmVuY2VzLgogCi0gICAgV0VC
S0lUX0FQSSBzdGF0aWMgdm9pZCBzZXRIaW50aW5nKFNrUGFpbnQ6OkhpbnRpbmcpOwotICAgIFdF
QktJVF9BUEkgc3RhdGljIHZvaWQgc2V0QW50aUFsaWFzKGJvb2wgb24pOwotICAgIFdFQktJVF9B
UEkgc3RhdGljIHZvaWQgc2V0U3VicGl4ZWxHbHlwaHMoYm9vbCBvbik7Ci0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgdm9pZCBzZXRMQ0RPcmRlcihTa0ZvbnRIb3N0OjpMQ0RPcmRlcik7Ci0gICAgV0VC
S0lUX0FQSSBzdGF0aWMgdm9pZCBzZXRMQ0RPcmllbnRhdGlvbihTa0ZvbnRIb3N0OjpMQ0RPcmll
bnRhdGlvbik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRIaW50aW5nKFNrUGFp
bnQ6OkhpbnRpbmcpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QW50aUFsaWFz
KGJvb2wgb24pOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0U3VicGl4ZWxHbHlw
aHMoYm9vbCBvbik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRMQ0RPcmRlcihT
a0ZvbnRIb3N0OjpMQ0RPcmRlcik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRM
Q0RPcmllbnRhdGlvbihTa0ZvbnRIb3N0OjpMQ0RPcmllbnRhdGlvbik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2xpbnV4
L1dlYlJlbmRlclRoZW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvbGludXgvV2ViUmVuZGVyVGhlbWUuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJSZW5kZXJUaGVtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gU2V0IGNhcmV0
IGJsaW5rIGludGVydmFsIGZvciB0ZXh0IGlucHV0IGFyZWFzLgotV0VCS0lUX0FQSSB2b2lkIHNl
dENhcmV0QmxpbmtJbnRlcnZhbChkb3VibGUpOworV0VCS0lUX0VYUE9SVCB2b2lkIHNldENhcmV0
QmxpbmtJbnRlcnZhbChkb3VibGUpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYklucHV0
RXZlbnRGYWN0b3J5LmgJKHJldmlzaW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDEwICs0OSwxMCBAQCBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CiAKIGNsYXNzIFdlYklucHV0
RXZlbnRGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJLZXlib2Fy
ZEV2ZW50IGtleWJvYXJkRXZlbnQoTlNFdmVudCopOwotICAgIFdFQktJVF9BUEkgc3RhdGljIFdl
YktleWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudCh3Y2hhcl90IGNoYXJhY3RlciwgaW50IG1vZGlm
aWVycywgZG91YmxlIHRpbWVTdGFtcFNlY29uZHMpOwotICAgIFdFQktJVF9BUEkgc3RhdGljIFdl
Yk1vdXNlRXZlbnQgbW91c2VFdmVudChOU0V2ZW50KiwgTlNWaWV3Kik7Ci0gICAgV0VCS0lUX0FQ
SSBzdGF0aWMgV2ViTW91c2VXaGVlbEV2ZW50IG1vdXNlV2hlZWxFdmVudChOU0V2ZW50KiwgTlNW
aWV3Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2Fy
ZEV2ZW50KE5TRXZlbnQqKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJLZXlib2FyZEV2
ZW50IGtleWJvYXJkRXZlbnQod2NoYXJfdCBjaGFyYWN0ZXIsIGludCBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lU3RhbXBTZWNvbmRzKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJNb3VzZUV2
ZW50IG1vdXNlRXZlbnQoTlNFdmVudCosIE5TVmlldyopOworICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIFdlYk1vdXNlV2hlZWxFdmVudCBtb3VzZVdoZWVsRXZlbnQoTlNFdmVudCosIE5TVmlldyop
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuaAkocmV2
aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViU2Ny
ZWVuSW5mb0ZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
V2ViU2NyZWVuSW5mbzsKIAogY2xhc3MgV2ViU2NyZWVuSW5mb0ZhY3RvcnkgewogcHVibGljOgot
ICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlNjcmVlbkluZm8gc2NyZWVuSW5mbyhOU1ZpZXcqKTsK
KyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTY3JlZW5JbmZvIHNjcmVlbkluZm8oTlNWaWV3
Kik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL21hYy9XZWJTdWJzdHJpbmdVdGlsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlN1YnN0cmluZ1V0aWwuaAkocmV2aXNpb24g
OTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViU3Vic3RyaW5n
VXRpbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdlYlN1YnN0cmlu
Z1V0aWwgewogcHVibGljOgogICAgIC8vIFJldHVybnMgYW4gYXV0b3JlbGVhc2VkIE5TQXR0cmli
dXRlZFN0cmluZyB0aGF0IGlzIGEgc3Vic3RyaW5nIG9mIHRoZQogICAgIC8vIEZyYW1lIGF0IHRo
ZSBnaXZlbiByYW5nZSwgb3IgbmlsIG9uIGVycm9yLgotICAgIFdFQktJVF9BUEkgc3RhdGljIE5T
QXR0cmlidXRlZFN0cmluZyogYXR0cmlidXRlZFN1YnN0cmluZ0luUmFuZ2UoV2ViRnJhbWUqLAor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIE5TQXR0cmlidXRlZFN0cmluZyogYXR0cmlidXRlZFN1
YnN0cmluZ0luUmFuZ2UoV2ViRnJhbWUqLAogICAgICAgICBzaXplX3QgbG9jYXRpb24sCiAgICAg
ICAgIHNpemVfdCBsZW5ndGgpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oCShyZXZpc2lvbiA5
MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJJbnB1dEV2ZW50
RmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw5IEBAIGNsYXNzIFdlYk1vdXNl
V2hlZWxFdmVudDsKIAogY2xhc3MgV2ViSW5wdXRFdmVudEZhY3RvcnkgewogcHVibGljOgotICAg
IFdFQktJVF9BUEkgc3RhdGljIFdlYktleWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudChIV05ELCBV
SU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViTW91c2VFdmVu
dCBtb3VzZUV2ZW50KEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBXRUJLSVRfQVBJ
IHN0YXRpYyBXZWJNb3VzZVdoZWVsRXZlbnQgbW91c2VXaGVlbEV2ZW50KEhXTkQsIFVJTlQsIFdQ
QVJBTSwgTFBBUkFNKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50
IGtleWJvYXJkRXZlbnQoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOworICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudChIV05ELCBVSU5ULCBXUEFSQU0s
IExQQVJBTSk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViTW91c2VXaGVlbEV2ZW50IG1v
dXNlV2hlZWxFdmVudChIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CiAKICAgICAvLyBXaW5k
b3dzIG9ubHkgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gd2hldGhlciBhIGNsaWNrIHdhcyBhIHNp
bmdsZSBvcgogICAgIC8vIGRvdWJsZSBjbGljaywgd2hpbGUgd2UgbmVlZCB0byBrbm93IHRoZSBj
bGljayBjb3VudCBwYXN0IHR3by4gVGhlCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICAv
LyB0aGF0IGluZm9ybWF0aW9uLiBJbiBzb21lIGNhc2VzLCBsaWtlIGZhc3QtcnVubmluZyB0ZXN0
cywgdGhhdAogICAgIC8vIGluZm9ybWF0aW9uIGlzIGtub3duIHRvIGJlIHN0YWxlIGFuZCBuZWVk
cyB0byBiZSByZXNldDsgdGhhdCBpcyB0aGUKICAgICAvLyBmdW5jdGlvbiBvZiByZXNldExhc3RD
bGlja1N0YXRlKCkuCi0gICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZXNldExhc3RDbGlja1N0
YXRlKCk7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldExhc3RDbGlja1N0YXRl
KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oCShy
ZXZpc2lvbiA5MjMxMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJT
Y3JlZW5JbmZvRmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHN0cnVj
dCBXZWJTY3JlZW5JbmZvOwogCiBjbGFzcyBXZWJTY3JlZW5JbmZvRmFjdG9yeSB7CiBwdWJsaWM6
Ci0gICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViU2NyZWVuSW5mbyBzY3JlZW5JbmZvKEhXTkQpOwor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlNjcmVlbkluZm8gc2NyZWVuSW5mbyhIV05EKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmgJKHJldmlz
aW9uIDkyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMveDExL1dlYlNjcmVl
bkluZm9GYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFdl
YlNjcmVlbkluZm87CiAKIGNsYXNzIFdlYlNjcmVlbkluZm9GYWN0b3J5IHsKIHB1YmxpYzoKLSAg
ICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTY3JlZW5JbmZvIHNjcmVlbkluZm8oRGlzcGxheSosIGlu
dCBzY3JlZW5OdW1iZXIpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlNjcmVlbkluZm8g
c2NyZWVuSW5mbyhEaXNwbGF5KiwgaW50IHNjcmVlbk51bWJlcik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVW5pdFRl
c3RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJVbml0
VGVzdHMuaAkocmV2aXNpb24gOTIzMTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYlVuaXRUZXN0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiAvLyBJbiBjaHJvbWl1bSBtdWx0aS1kbGwgYnVpbGQsIHdlYmtpdCB1bml0
dGVzdCBjb2RlIGFyZSBjb21waWxlZCBpbiB3ZWJraXQuZGxsLgogLy8gVGhpcyBpcyB0aGUgQVBJ
IHRvIHJ1biBhbGwgdW5pdHRlc3RzIGluc2lkZSB3ZWJraXQuZGxsLgotV0VCS0lUX0FQSSBpbnQg
UnVuQWxsVW5pdFRlc3RzKGludCBhcmdjLCBjaGFyKiogYXJndik7CitXRUJLSVRfRVhQT1JUIGlu
dCBSdW5BbGxVbml0VGVzdHMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAK
</data>
<flag name="review"
          id="98228"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>