<?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>40507</bug_id>
          
          <creation_ts>2010-06-11 16:49:54 -0700</creation_ts>
          <short_desc>Rename the rest of the *Tokenizer classes to *DocumentParser</short_desc>
          <delta_ts>2010-06-12 19:17:05 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>40491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237146</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 16:49:54 -0700</bug_when>
    <thetext>Rename the rest of the *Tokenizer classes to *DocumentParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237157</commentid>
    <comment_count>1</comment_count>
      <attachid>58529</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 16:58:10 -0700</bug_when>
    <thetext>Created attachment 58529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237158</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 17:00:21 -0700</bug_when>
    <thetext>This is mostly looking for a rubber stamp.  The changes are much smaller than the diff-size would have you believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237164</commentid>
    <comment_count>3</comment_count>
      <attachid>58529</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-11 17:16:33 -0700</bug_when>
    <thetext>Comment on attachment 58529
Patch

Ok...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237265</commentid>
    <comment_count>4</comment_count>
      <attachid>58529</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-12 03:14:42 -0700</bug_when>
    <thetext>Comment on attachment 58529
Patch

Rejecting patch 58529 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 58529, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
date_status
    return NetworkTransaction().run(lambda: self._post_status_to_server(queue_name, status, patch, results_file))
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 56, in run
    self._check_for_timeout()
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 63, in _check_for_timeout
    raise NetworkTimeout()
webkitpy.common.net.networktransaction.NetworkTimeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237388</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-12 18:04:28 -0700</bug_when>
    <thetext>That generally mean there was a build error.  I&apos;ll check locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237393</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-12 18:41:57 -0700</bug_when>
    <thetext>Yes, the build failed due to another patch landing before this one and adding new methods to HTML5Tokenizer which didn&apos;t get properly renamed.  Landing by hand now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237434</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-12 19:17:05 -0700</bug_when>
    <thetext>Committed r61073: &lt;http://trac.webkit.org/changeset/61073&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58529</attachid>
            <date>2010-06-11 16:58:10 -0700</date>
            <delta_ts>2010-06-12 03:14:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40507-20100611165808.patch</filename>
            <type>text/plain</type>
            <size>174154</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1NGFmZjNkM2QzNGI0NDBkZjlmN2QwNjg2MzE0YmNkMmM1MzcyMDc1Li43
MTczYzhkZTM4MjlkN2NhMGY0OTQwN2JkOWM2NmQyMWVkZTJlZDc5IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMDYtMTEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0
aGUgcmVzdCBvZiB0aGUgKlRva2VuaXplciBjbGFzc2VzIHRvICpEb2N1bWVudFBhcnNlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1MDcKKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAgLSBmaXhlZCBhIGNvbW1lbnQgdG8gbWF0
Y2ggbmV3IG5hbWVzLgorCiAyMDEwLTA2LTExICBKZWRyemVqIE5vd2Fja2kgIDxqZWRyemVqLm5v
d2Fja2lAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCA1ZTAyMDQ5MDIyMWJlZGViOTU1YzAzZDA4YTdlMTliZGM3
MDM1YmEzLi43Njk0MGVkN2YzNzBlZTc1ZjUxY2RiYjU0NTQ3NTBhMDAwMGMwYWNjIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaApAQCAtMTAzNSw3ICsxMDM1LDcgQEAgb24gTWluR1cuIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KICNkZWZpbmUgRU5BQkxF
X1BBTl9TQ1JPTExJTkcgMQogI2VuZGlmCiAKLS8qIFVzZSB0aGUgUVhtbFN0cmVhbVJlYWRlciBp
bXBsZW1lbnRhdGlvbiBmb3IgWE1MVG9rZW5pemVyICovCisvKiBVc2UgdGhlIFFYbWxTdHJlYW1S
ZWFkZXIgaW1wbGVtZW50YXRpb24gZm9yIFhNTERvY3VtZW50UGFyc2VyICovCiAvKiBVc2UgdGhl
IFFYbWxRdWVyeSBpbXBsZW1lbnRhdGlvbiBmb3IgWFNMVFByb2Nlc3NvciAqLwogI2lmIFBMQVRG
T1JNKFFUKQogI2RlZmluZSBXVEZfVVNFX1FYTUxTVFJFQU0gMQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDE5ZjZhMjhkZWE5ZWViMmU2
NmZhMTU0ZWQ3YWMyNzcxZGU1NjAzYzQuLjY4ZWQ0OTAzZjZjMmUzYWM2YzJjMTMzOGVmNDUyMDhh
ZTdhZjU0MjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0Fu
ZHJvaWQubWsKQEAgLTE4MCw5ICsxODAsOSBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9T
UkNfRklMRVMpIFwKIAlkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKIAlkb20vV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmNwcCBcCiAJZG9tL1doZWVsRXZlbnQuY3BwIFwKLQlkb20vWE1MVG9r
ZW5pemVyLmNwcCBcCi0JZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwIFwKLQlkb20vWE1MVG9r
ZW5pemVyU2NvcGUuY3BwIFwKKwlkb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwIFwKKwlkb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBcCisJZG9tL1hNTERvY3VtZW50UGFyc2VyU2NvcGUu
Y3BwIFwKIAlkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgXAogCVwK
IAllZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBcCkBAIC0yNTAsNyArMjUwLDcgQEAgTE9D
QUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9Gb3JtRGF0YUxpc3Qu
Y3BwIFwKIAlodG1sL0hUTUw1RW50aXR5UGFyc2VyLmNwcCBcCiAJaHRtbC9IVE1MNUxleGVyLmNw
cCBcCi0JaHRtbC9IVE1MNVRva2VuaXplci5jcHAgXAorCWh0bWwvSFRNTDVEb2N1bWVudFBhcnNl
ci5jcHAgXAogCWh0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAgXAogCWh0bWwvSFRNTDVTY3JpcHRS
dW5uZXIuY3BwIFwKIAlodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmNwcCBcCkBAIC0yNjUsNyArMjY1
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9IVE1M
UGFyc2VyLmNwcCBcCiAJaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAgXAogCWh0bWwvSFRN
TFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwIFwKLQlodG1sL0hUTUxUb2tlbml6ZXIuY3BwIFwKKwlo
dG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgXAogCWh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dC5jcHAgXAogCWh0bWwvSW1hZ2VEYXRhLmNwcCBcCiAJaHRtbC9JbWFnZVJlc2l6ZXJUaHJlYWQu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDg1NDA0NzViOTZmNWQwMWFjMTRmZDk1M2Y1NDMwM2JiYWU3MmJkY2Eu
LjllNGNiNjE5NmZiYzMzYTNlNjBkNTgzZTM2OGI1OWEzZDNlMGE3OGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODM0
LDkgKzgzNCw5IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hl
ZWxFdmVudC5jcHAKLSAgICBkb20vWE1MVG9rZW5pemVyLmNwcAotICAgIGRvbS9YTUxUb2tlbml6
ZXJMaWJ4bWwyLmNwcAotICAgIGRvbS9YTUxUb2tlbml6ZXJTY29wZS5jcHAKKyAgICBkb20vWE1M
RG9jdW1lbnRQYXJzZXIuY3BwCisgICAgZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAK
KyAgICBkb20vWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAKIAogICAgIGRvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAogCkBAIC05MDYsNyArOTA2LDcgQEAgU0VUKFdl
YkNvcmVfU09VUkNFUwogICAgIGh0bWwvRm9ybURhdGFMaXN0LmNwcAogICAgIGh0bWwvSFRNTDVF
bnRpdHlQYXJzZXIuY3BwCiAgICAgaHRtbC9IVE1MNUxleGVyLmNwcAotICAgIGh0bWwvSFRNTDVU
b2tlbml6ZXIuY3BwCisgICAgaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAogICAgIGh0bWwv
SFRNTDVUcmVlQnVpbGRlci5jcHAKICAgICBodG1sL0hUTUw1U2NyaXB0UnVubmVyLmNwcAogICAg
IGh0bWwvSFRNTEFsbENvbGxlY3Rpb24uY3BwCkBAIC05ODksNyArOTg5LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCiAgICAgaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAK
LSAgICBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCisgICAgaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCiAgICAgaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudC5jcHAKICAgICBodG1sL0ltYWdlRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNjY2YyNGJhYzYxZTA1YTg4
YWY2NzExMTJhMzg0ZmRjN2ZhZTFhMi4uNzNhM2NlMWM5NGM5MDNmZWE5MjcwNTNkYjA0MWJkNGJl
YWY5OGFhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTIsNiArMiwzODAgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KIAorICAgICAgICBSZW5hbWUgdGhlIHJlc3Qgb2YgdGhlICpUb2tlbml6ZXIgY2xhc3Nl
cyB0byAqRG9jdW1lbnRQYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwNTA3CisKKyAgICAgICAgVGhpcyBzZWFyY2gvcmVwbGFjZSB3YXMgZG9u
ZSBieSBkby13ZWJjb3JlLXJlbmFtZS4KKyAgICAgICAgSnVzdCBsb29raW5nIGZvciBhIHJ1YmJl
ciBzdGFtcC4KKyAgICAgICAgCisgICAgICAgIFhNTFRva2VuaXplciA9PiBYTUxEb2N1bWVudFBh
cnNlcgorICAgICAgICBYTUxUb2tlbml6ZXJMaWJ4bWwyID0+IFhNTERvY3VtZW50UGFyc2VyTGli
eG1sMgorICAgICAgICBYTUxUb2tlbml6ZXJRdCA9PiBYTUxEb2N1bWVudFBhcnNlclF0CisgICAg
ICAgIFhNTFRva2VuaXplclNjb3BlID0+IFhNTERvY3VtZW50UGFyc2VyU2NvcGUKKyAgICAgICAg
SFRNTDVUb2tlbml6ZXIgPT4gSFRNTDVEb2N1bWVudFBhcnNlcgorICAgICAgICBIVE1MVG9rZW5p
emVyID0+IEhUTUxEb2N1bWVudFBhcnNlcgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdl
LCB0aHVzIG5vIHRlc3RzLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2hlZXQ6OmNoZWNrTG9hZGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6d3JpdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFhNTEVuY29kaW5nKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50UGFyc2VyOjph
c0hUTUxUb2tlbml6ZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKiBk
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpp
c1dNTERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwdXNo
Q3VycmVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBvcEN1
cnJlbnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjbGVhckN1
cnJlbnROb2RlU3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6Ondy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpoYW5kbGVFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpleGl0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlWEhUTUxQYXJzZXJFcnJvckhlYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2spOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjppc1dhaXRpbmdGb3JTY3JpcHRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXVzZVBhcnNpbmcpOgorICAgICAgICAq
IGRvbS9YTUxEb2N1bWVudFBhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhNTFBh
cnNlckNvbnRleHQ6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4
dDo6WE1MUGFyc2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpzZXRJc1hIVE1MRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmlzWEhUTUxEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c2V0SXNYSFRNTE1Q
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmlzWEhUTUxN
UERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjp3ZWxsRm9y
bWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjb250ZXh0KToKKyAg
ICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjp+UGVuZGluZ0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjphcHBlbmRTdGFydEVsZW1lbnROU0NhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OmFwcGVuZEVuZEVsZW1lbnRO
U0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OmFwcGVuZENo
YXJhY3RlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjph
cHBlbmRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQ
ZW5kaW5nQ2FsbGJhY2tzOjphcHBlbmRDREFUQUJsb2NrQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UGVuZGluZ0NhbGxiYWNrczo6YXBwZW5kQ29tbWVudENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OmFwcGVuZEludGVybmFsU3Vic2V0Q2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6YXBwZW5kRXJyb3JDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpjYWxsQW5kUmVtb3ZlRmly
c3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjppc0VtcHR5
KToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OlBlbmRpbmdDYWxsYmFjazo6
flBlbmRpbmdDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpQ
ZW5kaW5nU3RhcnRFbGVtZW50TlNDYWxsYmFjazo6flBlbmRpbmdTdGFydEVsZW1lbnROU0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OlBlbmRpbmdTdGFydEVs
ZW1lbnROU0NhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFj
a3M6OlBlbmRpbmdFbmRFbGVtZW50TlNDYWxsYmFjazo6Y2FsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZW5kaW5nQ2FsbGJhY2tzOjpQZW5kaW5nQ2hhcmFjdGVyc0NhbGxiYWNrOjp+UGVuZGluZ0No
YXJhY3RlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpQ
ZW5kaW5nQ2hhcmFjdGVyc0NhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRp
bmdDYWxsYmFja3M6OlBlbmRpbmdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DYWxsYmFjazo6flBlbmRp
bmdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5k
aW5nQ2FsbGJhY2tzOjpQZW5kaW5nUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2FsbGJhY2s6OmNhbGwp
OgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ0NEQVRBQmxvY2tD
YWxsYmFjazo6flBlbmRpbmdDREFUQUJsb2NrQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ0NEQVRBQmxvY2tDYWxsYmFjazo6Y2FsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpQZW5kaW5nQ29tbWVudENhbGxiYWNrOjp+
UGVuZGluZ0NvbW1lbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJh
Y2tzOjpQZW5kaW5nQ29tbWVudENhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
bmRpbmdDYWxsYmFja3M6OlBlbmRpbmdJbnRlcm5hbFN1YnNldENhbGxiYWNrOjp+UGVuZGluZ0lu
dGVybmFsU3Vic2V0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNr
czo6UGVuZGluZ0ludGVybmFsU3Vic2V0Q2FsbGJhY2s6OmNhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVuZGluZ0NhbGxiYWNrczo6KToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoRnVuYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZzZXRCdWZmZXI6Ok9mZnNldEJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpPZmZzZXRCdWZmZXI6OnJlYWRPdXRCeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRBbGxvd0V4dGVybmFsTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRnVuYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpyZWFkRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZUZ1bmMp
OgorICAgICAgICAoV2ViQ29yZTo6Y2xvc2VGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmVycm9y
RnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxQYXJzZXJDb250ZXh0OjpjcmVhdGVTdHJpbmdQ
YXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5
UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVu
dFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxQYXJzZXJDb250ZXh0Ojp+WE1MUGFyc2Vy
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6flhNTERvY3Vt
ZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpkb1dyaXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRs
ZUVsZW1lbnROYW1lc3BhY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZUVsZW1lbnRBdHRy
aWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1l
bnROcyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5z
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjaGFyYWN0ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjplcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2luZ0luc3RydWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjZGF0YUJsb2NrKToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTERvY3VtZW50UGFyc2VyOjpjb21tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERv
Y3VtZW50UGFyc2VyOjpzdGFydERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3Vt
ZW50UGFyc2VyOjplbmREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBh
cnNlcjo6aW50ZXJuYWxTdWJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VG9rZW5pemVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmhhY2tBcm91bmRMaWJYTUxFbnRpdHlCdWcpOgorICAgICAgICAo
V2ViQ29yZTo6c3RhcnRFbGVtZW50TnNIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmVuZEVs
ZW1lbnROc0hhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyc0hhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc2luZ0luc3RydWN0aW9uSGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpjZGF0YUJsb2NrSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpjb21tZW50
SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjp3YXJuaW5nSGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpmYXRhbEVycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxFcnJv
ckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJl
ZFhIVE1MRW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OmdldFhIVE1MRW50aXR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldEVudGl0eUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRE
b2N1bWVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kRG9jdW1lbnRIYW5kbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsU3Vic2V0SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpleHRlcm5hbFN1YnNldEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6aWdub3JhYmxl
V2hpdGVzcGFjZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmluaXRpYWxpemVQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50
UGFyc2VyOjpkb0VuZCk6CisgICAgICAgIChXZWJDb3JlOjp4bWxEb2NQdHJGb3JTdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmxpbmVOdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZXNT
dGFydEVsZW1lbnROc0hhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VBdHRyaWJ1dGVz
KToKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RW50aXR5UmVzb2x2ZXI6OnJlc29sdmVVbmRlY2xhcmVkRW50aXR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6flhNTERvY3VtZW50UGFyc2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpkb1dyaXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjppbml0aWFsaXplUGFyc2VyQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZG9FbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmxpbmVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6OnJlc3VtZVBhcnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYTUxEb2N1
bWVudEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZXNTdGFydEVsZW1lbnRO
c0hhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VBdHRyaWJ1dGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OnByZWZpeEZyb21RTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVFbGVt
ZW50TmFtZXNwYWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVFbGVtZW50QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUVuZEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlQ2hhcmFjdGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlQ2RhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlQ29tbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MRG9jdW1lbnRQYXJzZXI6Omhhc0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERv
Y3VtZW50UGFyc2VyOjpwYXJzZUR0ZCk6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2Vy
U2NvcGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyU2Nv
cGU6OlhNTERvY3VtZW50UGFyc2VyU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXJTY29wZTo6flhNTERvY3VtZW50UGFyc2VyU2NvcGUpOgorICAgICAgICAqIGRvbS9Y
TUxEb2N1bWVudFBhcnNlclNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9YTUxUb2tlbml6
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9YTUxUb2tlbml6ZXIuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBkb20vWE1MVG9rZW5pemVyTGlieG1sMi5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogZG9tL1hNTFRva2VuaXplclF0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vWE1MVG9r
ZW5pemVyU2NvcGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9YTUxUb2tlbml6ZXJTY29w
ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1l
bnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVE
b2N1bWVudFBhcnNlcjo6fkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTDVEb2N1bWVudFBhcnNlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
NURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1
bWVudFBhcnNlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNl
cjo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmF0dGVtcHRU
b0VuZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjplbmRJZkRlbGF5
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZmluaXNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGluZ1NjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpsaW5lTnVtYmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpodG1sUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmlzV2FpdGluZ0ZvclNjcmlwdHMpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0
RXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OndhdGNo
Rm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpzdG9wV2F0
Y2hpbmdGb3JMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnNo
b3VsZExvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVE
b2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURv
Y3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURv
Y3VtZW50UGFyc2VyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpzY3JpcHQpOgorICAgICAgICAqIGh0
bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1
RG9jdW1lbnRQYXJzZXI6OklucHV0U3RyZWFtOjpJbnB1dFN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpJbnB1dFN0cmVhbTo6YXBwZW5kVG9FbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6SW5wdXRTdHJlYW06Omluc2VydEF0
Q3VycmVudEluc2VydGlvblBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQ
YXJzZXI6OklucHV0U3RyZWFtOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3Vt
ZW50UGFyc2VyOjpJbnB1dFN0cmVhbTo6Y3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
NURvY3VtZW50UGFyc2VyOjpJbnB1dFN0cmVhbTo6c3BsaXRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OklucHV0U3RyZWFtOjptZXJnZUZyb20pOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6SW5zZXJ0aW9uUG9pbnRSZWNvcmQ6Oklu
c2VydGlvblBvaW50UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJz
ZXI6Okluc2VydGlvblBvaW50UmVjb3JkOjp+SW5zZXJ0aW9uUG9pbnRSZWNvcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5Xcml0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MNUxleGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxleGVyOjpjb2x1bW5OdW1i
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTDVUb2tlbml6ZXIuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvSFRNTDVUb2tlbml6ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0hUTUw1
VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVyKToKKyAgICAgICAgKiBo
dG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6KToK
KyAgICAgICAgKFdlYkNvcmU6OmZpeFVwQ2hhcik6CisgICAgICAgIChXZWJDb3JlOjp0YWdNYXRj
aCk6CisgICAgICAgIChXZWJDb3JlOjpUb2tlbjo6YWRkQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50UGFyc2VyOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnNldEZvcmNlU3luY2hyb25vdXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpwcm9jZXNzTGlzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9j
dW1lbnRQYXJzZXI6OnBhcnNlTm9uSFRNTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpzY3JpcHRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudFBhcnNlcjo6c2NyaXB0RXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudFBhcnNlcjo6cGFyc2VDb21tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVu
dFBhcnNlcjo6cGFyc2VTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFy
c2VyOjpwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OnBhcnNlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnBhcnNlRW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2VEb2N0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpjb250
aW51ZVByb2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjph
ZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6d2lsbFdyaXRl
SFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFdyaXRlSFRN
TCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjplbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
Ojpwcm9jZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpw
cm9jZXNzRG9jdHlwZVRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6fkhUTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQ
YXJzZXI6OmVubGFyZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFy
c2VyOjplbmxhcmdlU2NyaXB0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVu
dFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJlYWR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZUV4dGVybmFs
U2NyaXB0c1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
Ojpjb250aW51ZUV4ZWN1dGluZ0V4dGVybmFsU2NyaXB0cyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRG9jdW1lbnRQYXJzZXI6OmlzV2FpdGluZ0ZvclNjcmlwdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzZXRTcmMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VI
VE1MRG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVOYW1lZEVudGl0
eSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpUb2tlbjo6VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6VG9rZW46On5Ub2tl
bik6CisgICAgICAgIChXZWJDb3JlOjpUb2tlbjo6aXNPcGVuVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OlRva2VuOjppc0Nsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlRva2VuOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpUb2tlbjo6YWRkVmlld1NvdXJjZUNoYXIpOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3R5cGVUb2tlbjo6RG9jdHlwZVRva2Vu
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3R5cGVUb2tlbjo6cmVzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdHlwZVRva2VuOjpzdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N0eXBlVG9r
ZW46OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6Zm9y
Y2VTeW5jaHJvbm91cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmV4
ZWN1dGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6Omxp
bmVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpjb2x1bW5O
dW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5n
Q29udGVudFdyaXR0ZW5CeVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQ
YXJzZXI6Omh0bWxQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
Ojphc0hUTUxUb2tlbml6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpjaGVja0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmNo
ZWNrU2NyaXB0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OlN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnRhZ1N0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnNldFRhZ1N0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OmVudGl0eVN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnNldEVu
dGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6
OmluU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6
OnNldEluU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3Rh
dGU6OmluU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0
ZTo6c2V0SW5TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0
YXRlOjppblhtcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRl
OjpzZXRJblhtcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRl
OjppblRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6
OnNldEluVGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0
ZTo6aW5JRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0
ZTo6c2V0SW5JRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpT
dGF0ZTo6aW5QbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpTdGF0ZTo6c2V0SW5QbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpTdGF0ZTo6aW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6c2V0SW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6aW5Db21tZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnNldEluQ29t
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlOjppbkRv
Y3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6c2V0
SW5Eb2N0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6
OmluVGV4dEFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0
ZTo6c2V0SW5UZXh0QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6
OlN0YXRlOjplc2NhcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6
U3RhdGU6OnNldEVzY2FwZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpTdGF0ZTo6aW5TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpTdGF0ZTo6c2V0SW5TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFy
c2VyOjpTdGF0ZTo6c2tpcExGKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6U3RhdGU6OnNldFNraXBMRik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJz
ZXI6OlN0YXRlOjpzdGFydFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJz
ZXI6OlN0YXRlOjpzZXRTdGFydFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQ
YXJzZXI6OlN0YXRlOjpkaXNjYXJkTEYpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpTdGF0ZTo6c2V0RGlzY2FyZExGKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudFBhcnNlcjo6U3RhdGU6OmFsbG93WWllbGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpTdGF0ZTo6c2V0QWxsb3dZaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlOjpsb2FkaW5nRXh0U2NyaXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnNldExvYWRpbmdFeHRTY3JpcHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6Zm9yY2VTeW5jaHJv
bm91cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlOjpzZXRG
b3JjZVN5bmNocm9ub3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6
U3RhdGU6OmluQW55Tm9uSFRNTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpTdGF0ZTo6aGFzVGFnU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjpTdGF0ZTo6aGFzRW50aXR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6bmVlZHNTcGVjaWFsV3JpdGVIYW5kbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlOjopOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZTo6c2V0Qml0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGU6OnRlc3RCaXQpOgorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQYXJzZXI6OnJlcG9ydEVycm9yVG9Db25zb2xlKToKKyAgICAgICAgKiBodG1sL0hUTUxQYXJz
ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvSFRNTFRva2VuaXplci5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJjZURv
Y3VtZW50OjpjcmVhdGVUb2tlbml6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudDo6YWRkVmlld1NvdXJjZVRva2VuKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3
U291cmNlRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAqIGxvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGVFBEaXJlY3RvcnlUb2tlbml6ZXI6OkZUUERpcmVjdG9yeVRva2VuaXplcik6CisgICAg
ICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlUb2tlbml6ZXI6OmxvYWREb2N1bWVudFRlbXBsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeVRva2VuaXplcjo6ZmluaXNoKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9JbWFnZURv
Y3VtZW50LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAg
ICogbG9hZGVyL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3IuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKiB3bWwvV01MRXJyb3JIYW5kbGluZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRXTUxFcnJvcik6CisgICAgICAgICogeG1sL1hT
TFN0eWxlU2hlZXRMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFN0eWxlU2hlZXQ6
OnBhcnNlU3RyaW5nKToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAg
ICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKworMjAxMC0wNi0xMSAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKICAgICAgICAgUmVuYW1lIFRva2VuaXplciB0byBEb2N1bWVudFBhcnNlciB0byBtYXRj
aCB3aGF0IGl0IGFjdHVhbGx5IGRvZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwNTA0CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDYxNWYzNDkxOWVlMDFmN2E4MGI0Njgz
ODM4MDgxYWQxYWU0M2RjNDEuLmU1ZTlkZjYyYzNiNjllZDk5MWE4YTk5YzEyNTViNzIwMzkxMGY3
NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtOTIzLDExICs5MjMsMTEgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCiAJV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAgXAogCVdlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBcCi0JV2ViQ29yZS9kb20vWE1M
VG9rZW5pemVyLmNwcCBcCi0JV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyLmggXAotCVdlYkNvcmUv
ZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwIFwKLQlXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJT
Y29wZS5jcHAgXAotCVdlYkNvcmUvZG9tL1hNTFRva2VuaXplclNjb3BlLmggXAorCVdlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcCBcCisJV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXIuaCBcCisJV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBcCisJV2Vi
Q29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAgXAorCVdlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyU2NvcGUuaCBcCiAJV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbC5jcHAgXAogCVdlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBc
CkBAIC0xMDk0LDggKzEwOTQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaHRt
bC9IVE1MNUxleGVyLmNwcCBcCiAJV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaCBcCiAJV2ViQ29y
ZS9odG1sL0hUTUw1VG9rZW4uaCBcCi0JV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcCBc
Ci0JV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmggXAorCVdlYkNvcmUvaHRtbC9IVE1MNURv
Y3VtZW50UGFyc2VyLmNwcCBcCisJV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaCBc
CiAJV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRN
TDVUcmVlQnVpbGRlci5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwIFwK
QEAgLTEyNjIsOCArMTI2Miw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQu
Y3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oIFwKLQlXZWJDb3JlL2h0bWwv
SFRNTFRva2VuaXplci5jcHAgXAotCVdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmggXAorCVdl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50UGFyc2VyLmggXAogCVdlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcCBcCiAJ
V2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxWaWV3
U291cmNlRG9jdW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYWNjNWMwNDUxODc0OTE3MmNkZTliZWVjNzdiZGM2
ODMyODczOWUzMS4uYTM0YWJlNDRlM2I0NmZlZWUwMWM5ODgxMDExOWM3YmYyMjU4MTNlNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTEyNjEsMTIgKzEyNjEsMTIgQEAKICAgICAgICAgICAgICdkb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9XaGVlbEV2ZW50LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1doZWVsRXZlbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1hNTFRva2VuaXplci5jcHAn
LAotICAgICAgICAgICAgJ2RvbS9YTUxUb2tlbml6ZXIuaCcsCi0gICAgICAgICAgICAnZG9tL1hN
TFRva2VuaXplckxpYnhtbDIuY3BwJywKLSAgICAgICAgICAgICdkb20vWE1MVG9rZW5pemVyU2Nv
cGUuY3BwJywKLSAgICAgICAgICAgICdkb20vWE1MVG9rZW5pemVyU2NvcGUuaCcsCi0gICAgICAg
ICAgICAnZG9tL1hNTFRva2VuaXplclF0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1hNTERvY3Vt
ZW50UGFyc2VyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1hNTERvY3VtZW50UGFyc2VyLmgnLAor
ICAgICAgICAgICAgJ2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwJywKKyAgICAgICAg
ICAgICdkb20vWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Y
TUxEb2N1bWVudFBhcnNlclNjb3BlLmgnLAorICAgICAgICAgICAgJ2RvbS9YTUxEb2N1bWVudFBh
cnNlclF0LmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9hbmRyb2lkL0VkaXRvckFuZHJvaWQu
Y3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL2Nocm9taXVtL0VkaXRvckNocm9taXVtLmNwcCcs
CiAgICAgICAgICAgICAnZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tJywKQEAgLTE0ODAsOCArMTQ4
MCw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MNUVudGl0eVBhcnNlci5oJywKICAgICAgICAg
ICAgICdodG1sL0hUTUw1TGV4ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUw1TGV4ZXIu
aCcsCi0gICAgICAgICAgICAnaHRtbC9IVE1MNVRva2VuaXplci5jcHAnLAotICAgICAgICAgICAg
J2h0bWwvSFRNTDVUb2tlbml6ZXIuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAnLAogICAgICAgICAgICAgJ2h0
bWwvSFRNTDVUcmVlQnVpbGRlci5oJywKICAgICAgICAgICAgICdodG1sL0hUTUw1U2NyaXB0UnVu
bmVyLmNwcCcsCkBAIC0xNjUyLDggKzE2NTIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3Bw
JywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuaCcsCi0gICAgICAgICAgICAn
aHRtbC9IVE1MVG9rZW5pemVyLmNwcCcsCi0gICAgICAgICAgICAnaHRtbC9IVE1MVG9rZW5pemVy
LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
VUxpc3RFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50Lmgn
LAogICAgICAgICAgICAgJ2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDNhMmFkZDJk
Yjk4ZTg3NTc3M2MzNjUxYTEyZmM4ZjNlYTE0OTc5Ni4uODliOGIzZmYyYThmYjMzNzZiNzlhNDNm
MmE0NzU1NDRmMjdiODQ0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC01MzUsOCArNTM1LDggQEAgU09VUkNFUyArPSBcCiAgICAg
ZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgXAogICAgIGRvbS9XaGVlbEV2ZW50LmNwcCBcCi0gICAgZG9tL1hNTFRva2VuaXpl
ci5jcHAgXAotICAgIGRvbS9YTUxUb2tlbml6ZXJRdC5jcHAgXAorICAgIGRvbS9YTUxEb2N1bWVu
dFBhcnNlci5jcHAgXAorICAgIGRvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBcCiAgICAgZG9t
L2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIFwKICAgICBlZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAg
XApAQCAtNjEzLDcgKzYxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvRm9ybURhdGFMaXN0
LmNwcCBcCiAgICAgaHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHAgXAogICAgIGh0bWwvSFRNTDVM
ZXhlci5jcHAgXAotICAgIGh0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIFwKKyAgICBodG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuY3BwIFwKICAgICBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwIFwKICAg
ICBodG1sL0hUTUw1U2NyaXB0UnVubmVyLmNwcCBcCiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlv
bi5jcHAgXApAQCAtNjk2LDcgKzY5Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwIFwKLSAgICBodG1sL0hUTUxUb2tlbml6
ZXIuY3BwIFwKKyAgICBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGh0bWwvSFRN
TFVMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAg
XAogICAgIGh0bWwvSW1hZ2VEYXRhLmNwcCBcCkBAIC0xMjc2LDcgKzEyNzYsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCiAgICAgZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5oIFwKICAgICBkb20vV2hlZWxFdmVudC5oIFwKLSAgICBkb20vWE1MVG9r
ZW5pemVyLmggXAorICAgIGRvbS9YTUxEb2N1bWVudFBhcnNlci5oIFwKICAgICBlZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmggXAogICAgIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBcCiAg
ICAgZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmggXApAQCAtMTQzNSw3ICsxNDM1LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKICAg
ICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50
LmggXAotICAgIGh0bWwvSFRNTFRva2VuaXplci5oIFwKKyAgICBodG1sL0hUTUxEb2N1bWVudFBh
cnNlci5oIFwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDE5MzM3ZDRkNDQyNzA3NDliOGM0ZTZk
MGZiNTRlNTY0ODliZjRlZWQuLjQ4MjkwODA2M2VkNDFlOGRmMzZlNjNmMGIzYzM5ZGQ0NGY4ZTNm
YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzAyNTcsMjMgKzMw
MjU3LDIzIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxYTUxUb2tlbml6ZXIuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxY
TUxEb2N1bWVudFBhcnNlci5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cWE1MVG9rZW5pemVyLmgiDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFhNTERvY3VtZW50UGFyc2VyLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cWE1MVG9rZW5pemVyTGlieG1sMi5jcHAi
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFhNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cWE1MVG9rZW5pemVyU2NvcGUuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxYTUxE
b2N1bWVudFBhcnNlclNjb3BlLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxYTUxUb2tlbml6ZXJTY29wZS5oIg0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxYTUxEb2N1bWVudFBhcnNlclNjb3BlLmgiDQogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC0zMTA1NywxMSArMzEwNTcsMTEgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MNVRv
a2VuaXplci5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MNURvY3VtZW50UGFy
c2VyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcSFRNTDVUb2tlbml6ZXIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XEhUTUw1RG9jdW1lbnRQYXJzZXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
QEAgLTM1MjIxLDExICszNTIyMSwxMSBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUb2tlbml6ZXIuY3BwIg0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTERvY3VtZW50UGFyc2VyLmNwcCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRva2VuaXpl
ci5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTERvY3VtZW50UGFyc2VyLmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGMxNWMxMWI5MmU5ZDY4N2ViMjhkOGQ2YTMzZjEyZjk4NzEy
YWNkNDIuLjdlZjFhZWViMWQyNzQxMzc5ZmZkY2U2NDZmNWIyNTJjMzYwMTk5M2UgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTY1LDcgKzExNjUsNyBA
QAogCQk1MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBRkUzMzBD
RUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTIxRDQ2RjYxMUFFQzk4MTAwNTE0
NjEzIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tICov
OyB9OwogCQk1MjFENDZGODExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMUQ0NkY3MTFBRUM5QjEwMDUx
NDYxMyAvKiBLaWxsUmluZy5oICovOyB9OwotCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyog
WE1MVG9rZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGli
eG1sMi5jcHAgKi87IH07CisJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTRDNTBGN0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWRO
YW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUw
QTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAv
KiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNTkxMzk1M0IxMTA3NTg0NTAwODNFQzU1IC8qIEpOSUJyaWRnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkxMzk1M0ExMTA3NTg0
NTAwODNFQzU1IC8qIEpOSUJyaWRnZS5oICovOyB9OwpAQCAtMTE5Myw4ICsxMTkzLDggQEAKIAkJ
NTlFRTEyMkUxMTA2MDgwRjAwODg1MTE2IC8qIEpOSVV0aWxpdHlQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUVFMTIyRDExMDYwODBGMDA4
ODUxMTYgLyogSk5JVXRpbGl0eVByaXZhdGUuaCAqLzsgfTsKIAkJNTlFRTEyMzAxMTA2MDgxRjAw
ODg1MTE2IC8qIEpOSVV0aWxpdHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTlFRTEyMkYxMTA2MDgxRjAwODg1MTE2IC8qIEpOSVV0aWxpdHkuY3Bw
ICovOyB9OwogCQk1OUVFMTIzMjExMDYwODI5MDA4ODUxMTYgLyogSk5JVXRpbGl0eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlFRTEyMzExMTA2MDgy
OTAwODg1MTE2IC8qIEpOSVV0aWxpdHkuaCAqLzsgfTsKLQkJNUQxNUUzQUIwRjlFNkFDMTAwOUUw
RTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVEMTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6
ZXJTY29wZS5jcHAgKi87IH07Ci0JCTVEMTVFM0FDMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tl
bml6ZXJTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUQxNUUzQUEwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggKi87IH07
CisJCTVEMTVFM0FCMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMTVFM0E5
MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcCAqLzsgfTsKKwkJ
NUQxNUUzQUMwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMTVFM0FBMEY5RTZB
QzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmggKi87IH07CiAJCTVEODc0RjEz
MEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdERDBBRjU4OUFE
MDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovOyB9OwogCQk1RDg4
RUU5MTExNDA3RkQzMDBCQzNBQkMgLyogRE9NU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQyMjQxODkxMDdFNzg2RjAwNzY2QTg3IC8qIERPTVNWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaCAq
LzsgfTsKIAkJNUQ4OEVFOTIxMTQwN0ZGNDAwQkMzQUJDIC8qIERPTVNWR0ZFTW9ycGhvbG9neUVs
ZW1lbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQyMjQxOEIxMDdFNzg2RjAwNzY2QTg3IC8qIERPTVNWR0ZF
TW9ycGhvbG9neUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwpAQCAtMjQ4NSwxMCArMjQ4NSwxMCBA
QAogCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIzQzAyREU0Mzk2MDE4
NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk4RTYwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIz
RjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFRjA4MjQ1RTU5MDAxRTlBQkMgLyog
SFRNTFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUyM0QyNTEwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxQYXJzZXIuaCAqLzsgfTsKLQkJOTNG
MTk4RjAwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNEMjUzMDJERTQzOTYwMTg2MzVDQSAv
KiBIVE1MVG9rZW5pemVyLmggKi87IH07CisJCTkzRjE5OEYwMDgyNDVFNTkwMDFFOUFCQyAvKiBI
VE1MRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MjNEMjUzMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnRQYXJzZXIu
aCAqLzsgfTsKIAkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29k
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNE
Mjc5MDJERTQzRDcwMTg2MzVDQSAvKiBUZXh0UmVzb3VyY2VEZWNvZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk5MTgwODI0NUU1OTAw
MUU5QUJDIC8qIFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0YxOTkyMTA4MjQ1RTU5MDAx
RTlBQkMgLyogWE1MVG9rZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTIzRDMwQTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGMTk5
MjEwODI0NUU1OTAwMUU5QUJDIC8qIFhNTERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDMwQTAyREU0NDc2MDE4NjM1Q0Eg
LyogWE1MRG9jdW1lbnRQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0YxOTkyRjA4MjQ1RTU5MDAxRTlBQkMgLyogQ3Vyc29yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY4NDAyREUz
Qjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODYzQTAy
REUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOTk1MDA4MjQ1RTU5MDAxRTlBQkMgLyogQ2FjaGVQ
b2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
ODc4NjQ5MDJERTNBOUEwMUVBNDEyMiAvKiBDYWNoZVBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTE1LDEwICsyNTE1LDEwIEBACiAJ
CTkzRjE5QTkxMDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyM0QyM0IwMkRFNDM5NjAxODYz
NUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi87IH07CiAJCTkzRjE5QTkyMDgyNDVFNTkwMDFFOUFC
QyAvKiBIVE1MRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTIzRDIzRTAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuY3BwICov
OyB9OwogCQk5M0YxOUE5QjA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDI1MDAyREU0Mzk2
MDE4NjM1Q0EgLyogSFRNTFBhcnNlci5jcHAgKi87IH07Ci0JCTkzRjE5QTlDMDgyNDVFNTkwMDFF
OUFCQyAvKiBIVE1MVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MjNEMjUyMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MVG9rZW5pemVy
LmNwcCAqLzsgfTsKKwkJOTNGMTlBOUMwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxEb2N1bWVudFBh
cnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTIzRDI1MjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50UGFyc2VyLmNwcCAqLzsgfTsK
IAkJOTNGMTlBOUQwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29kZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyM0QyNzgwMkRF
NDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURlY29kZXIuY3BwICovOyB9OwogCQk5M0YxOUFC
OTA4MjQ1RTU5MDAxRTlBQkMgLyogUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNw
cCAqLzsgfTsKLQkJOTNGMTlBQkMwODI0NUU1OTAwMUU5QUJDIC8qIFhNTFRva2VuaXplci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDMwOTAy
REU0NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmNwcCAqLzsgfTsKKwkJOTNGMTlBQkMwODI0
NUU1OTAwMUU5QUJDIC8qIFhNTERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNEMzA5MDJERTQ0NzYwMTg2MzVDQSAvKiBY
TUxEb2N1bWVudFBhcnNlci5jcHAgKi87IH07CiAJCTkzRjE5QUQ1MDgyNDVFNTkwMDFFOUFCQyAv
KiBSZW5kZXJUcmVlQXNUZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTU1QTQyMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJUcmVlQXNUZXh0
LmNwcCAqLzsgfTsKIAkJOTNGMTlBRTEwODI0NUU1OTAwMUU5QUJDIC8qIEJsb2NrRXhjZXB0aW9u
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1Rjgw
Njk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi87IH07CiAJCTkzRjE5
QUU1MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5R2VuZXJhdG9yLm0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEIyQjFGODA1NkJFRjNBMDBEMkI3
NzEgLyogV2ViQ29yZUtleUdlbmVyYXRvci5tICovOyB9OwpAQCAtMjk3MCw4ICsyOTcwLDggQEAK
IAkJQTg2NjI5RDIwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDQzA5REEyQjQ3MDA5
NjMzQTUgLyogSlNNb3VzZUV2ZW50LmNwcCAqLzsgfTsKIAkJQTg2NjI5RDMwOURBMkI0ODAwOTYz
M0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTg2NjI5Q0QwOURBMkI0NzAwOTYzM0E1IC8qIEpTS2V5Ym9hcmRFdmVu
dC5oICovOyB9OwogCQlBODY2MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYy
OUNFMDlEQTJCNDcwMDk2MzNBNSAvKiBKU0tleWJvYXJkRXZlbnQuY3BwICovOyB9OwotCQlBODcx
MDM4QTExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MTAzODgxMUEyOTQ3MDAwREJENTBF
IC8qIEhUTUw1VG9rZW5pemVyLmNwcCAqLzsgfTsKLQkJQTg3MTAzOEIxMUEyOTQ3MDAwREJENTBF
IC8qIEhUTUw1VG9rZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODcxMDM4OTExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIuaCAq
LzsgfTsKKwkJQTg3MTAzOEExMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1RG9jdW1lbnRQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MTAz
ODgxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OworCQlB
ODcxMDM4QjExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MTAzODkxMUEyOTQ3MDAw
REJENTBFIC8qIEhUTUw1RG9jdW1lbnRQYXJzZXIuaCAqLzsgfTsKIAkJQTg3MUQ0NTYwQTEyN0NC
QzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxRDQ0QzBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBs
dWdJbkVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBODcxRDQ1NzBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MUQ0NEQw
QTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50LmNwcCAqLzsgfTsKIAkJQTg3MUQ0
NTgwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFENDRFMEExMjdDQkMwMEIxMkE2OCAv
KiBIVE1MUGFyYW1FbGVtZW50LmggKi87IH07CkBAIC02ODIxLDcgKzY4MjEsNyBAQAogCQk1MUZB
RkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlVHJhY2tlckNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyogS2lsbFJp
bmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLaWxsUmlu
Z01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIxRDQ2RjcxMUFFQzlCMTAw
NTE0NjEzIC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtp
bGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU0QzUwRjdBMEU4MDFERjMw
MDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MRG9jdW1lbnRQYXJz
ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1
MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFF1YWxpZmllZE5hbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJNTkxMzk1M0ExMTA3NTg0NTAwODNFQzU1IC8qIEpOSUJyaWRnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKTklCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY4NTAsOCArNjg1MCw4IEBACiAJCTU5RUUxMjJEMTEwNjA4MEYwMDg4NTExNiAv
KiBKTklVdGlsaXR5UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBK
TklVdGlsaXR5UHJpdmF0ZS5oOyBwYXRoID0ganNjL0pOSVV0aWxpdHlQcml2YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5RUUxMjJGMTEwNjA4MUYwMDg4NTExNiAvKiBKTklV
dGlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpOSVV0aWxp
dHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OUVFMTIzMTExMDYwODI5MDA4
ODUxMTYgLyogSk5JVXRpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
TklVdGlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVEMTVFM0E5MEY5RTZB
QzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYTUxUb2tlbml6ZXJTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTVEMTVFM0FBMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29w
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUb2tlbml6ZXJTY29wZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1RDE1RTNBOTBGOUU2QUMxMDA5RTBFM0Yg
LyogWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNUQxNUUzQUEwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTERvY3VtZW50UGFyc2Vy
U2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MRG9jdW1lbnRQYXJz
ZXJTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDkyNUI2NTBGNjRENERE
MDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1RDkyNUI2NjBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNURBNUUwRkExMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViU29ja2V0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NDUsOCArODQ0NSw4IEBACiAJCUE4
NjYyOUNDMDlEQTJCNDcwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4NjYyOUNEMDlEQTJCNDcwMDk2MzNBNSAvKiBKU0tleWJvYXJkRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTS2V5Ym9hcmRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODY2MjlDRTA5REEyQjQ3MDA5NjMzQTUg
LyogSlNLZXlib2FyZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0tleWJvYXJkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
ODcxMDM4ODExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTDVUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBODcxMDM4OTExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tl
bml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTDVUb2tlbml6ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg3MTAzODgxMUEyOTQ3MDAwREJENTBF
IC8qIEhUTUw1RG9jdW1lbnRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTDVEb2N1bWVudFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNURvY3VtZW50UGFyc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUw1RG9jdW1lbnRQYXJzZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MUQ0NEMwQTEyN0NCQzAwQjEyQTY4IC8q
IEhUTUxQbHVnSW5FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MUGx1Z0luRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxRDQ0
RDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBsdWdJbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVnSW5FbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MUQ0NEUwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQYXJh
bUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJhbUVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjQxLDE0ICsxMDY0MSwx
NCBAQAogCQlGNTIzRDIzRjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MjNEMjUwMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MUGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjUyM0QyNTEwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxQYXJzZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcnNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJ
RjUyM0QyNTIwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxUb2tlbml6ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRva2VuaXpl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlGNTIzRDI1MzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTFRva2VuaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVG9rZW5p
emVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OworCQlGNTIzRDI1MjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50UGFyc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxEb2N1bWVudFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQlGNTIzRDI1MzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRN
TERvY3VtZW50UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxEb2N1bWVudFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyNzgwMkRFNDNENzAxODYz
NUNBIC8qIFRleHRSZXNvdXJjZURlY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFJlc291cmNlRGVjb2Rlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTIzRDI3OTAyREU0M0Q3MDE4NjM1Q0EgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UmVzb3VyY2VE
ZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJRjUyM0QzMDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlGNTIzRDMwOTAyREU0
NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlGNTIzRDMw
QTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTFRva2VuaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJRjUyM0QzMDkw
MkRFNDQ3NjAxODYzNUNBIC8qIFhNTERvY3VtZW50UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTERvY3VtZW50UGFyc2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CisJCUY1MjNEMzBBMDJERTQ0NzYwMTg2MzVDQSAvKiBYTUxEb2N1bWVudFBhcnNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxEb2N1
bWVudFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1ODc4NTE1MDJERTM3NTkwMUVBNDEyMiAvKiBEZXByZWNhdGVkUHRy
TGlzdEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODUxNjAyREUzNzU5MDFFQTQxMjIg
LyogRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlcHJlY2F0ZWRQdHJMaXN0SW1wbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAt
MTM0NTQsOCArMTM0NTQsOCBAQAogCQkJCUE4M0IzQUVGMTFBREVGRjUwMDQ1ODgwOSAvKiBIVE1M
NVNjcmlwdFJ1bm5lci5oICovLAogCQkJCUE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1M
NVNjcmlwdFJ1bm5lckhvc3QuaCAqLywKIAkJCQk5N0U4QjNDMjExQTI4OTA4MDAxNjk0MDkgLyog
SFRNTDVUb2tlbi5oICovLAotCQkJCUE4NzEwMzg4MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRv
a2VuaXplci5jcHAgKi8sCi0JCQkJQTg3MTAzODkxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9r
ZW5pemVyLmggKi8sCisJCQkJQTg3MTAzODgxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1RG9jdW1l
bnRQYXJzZXIuY3BwICovLAorCQkJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNURv
Y3VtZW50UGFyc2VyLmggKi8sCiAJCQkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1
VHJlZUJ1aWxkZXIuY3BwICovLAogCQkJCUE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1M
NVRyZWVCdWlsZGVyLmggKi8sCiAJCQkJQkM5N0UyMzkxMDkxNDQ5NTAwMTBEMzYxIC8qIEhUTUxB
bGxDb2xsZWN0aW9uLmNwcCAqLywKQEAgLTEzNjk5LDggKzEzNjk5LDggQEAKIAkJCQlBODcxREMx
RDBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFRpdGxlRWxlbWVudC5jcHAgKi8sCiAJCQkJQTg3MURD
MUMwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxUaXRsZUVsZW1lbnQuaCAqLywKIAkJCQlBODBFN0FB
RTBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTFRpdGxlRWxlbWVudC5pZGwgKi8sCi0JCQkJRjUyM0Qy
NTIwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxUb2tlbml6ZXIuY3BwICovLAotCQkJCUY1MjNEMjUz
MDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MVG9rZW5pemVyLmggKi8sCisJCQkJRjUyM0QyNTIwMkRF
NDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudFBhcnNlci5jcHAgKi8sCisJCQkJRjUyM0QyNTMw
MkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudFBhcnNlci5oICovLAogCQkJCUE4RUE3OUU3
MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBNzlF
NjBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTFVMaXN0RWxlbWVudC5oICovLAogCQkJCTFBODVCMUQ1
MEExQjIzNkMwMEQ4Qzg3QyAvKiBIVE1MVUxpc3RFbGVtZW50LmlkbCAqLywKQEAgLTE2ODMwLDEx
ICsxNjgzMCwxMSBAQAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50
LmNwcCAqLywKIAkJCQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oICov
LAogCQkJCTkzRUVDMUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50LmlkbCAqLywKLQkJ
CQlGNTIzRDMwOTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmNwcCAqLywKLQkJCQlG
NTIzRDMwQTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MVG9rZW5pemVyLmggKi8sCi0JCQkJNTRDNTBG
N0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTFRva2VuaXplckxpYnhtbDIuY3BwICovLAotCQkJCTVE
MTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5jcHAgKi8sCi0JCQkJ
NUQxNUUzQUEwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggKi8sCisJCQkJ
RjUyM0QzMDkwMkRFNDQ3NjAxODYzNUNBIC8qIFhNTERvY3VtZW50UGFyc2VyLmNwcCAqLywKKwkJ
CQlGNTIzRDMwQTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MRG9jdW1lbnRQYXJzZXIuaCAqLywKKwkJ
CQk1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cCAqLywKKwkJCQk1RDE1RTNBOTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MRG9jdW1lbnRQYXJzZXJT
Y29wZS5jcHAgKi8sCisJCQkJNUQxNUUzQUEwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTERvY3VtZW50
UGFyc2VyU2NvcGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZG9tOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTE4MDE4LDcgKzE4MDE4LDcgQEAKIAkJCQlBODNCM0FGMTExQURFRkY1
MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4N0Yx
NjM1MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3RThCM0MzMTFBMjg5MDgwMDE2OTQwOSAvKiBIVE1MNVRva2VuLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBODcxMDM4QjExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4NzEwMzhCMTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNURv
Y3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODc5QzYyNjExQTlEMUY3MDA1OTIz
N0EgLyogSFRNTDVUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5N0UyM0ExMDkx
NDQ5NTAwMTBEMzYxIC8qIEhUTUxBbGxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OENGRjdBQjBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hvckVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTgxMDgsNyArMTgxMDgsNyBAQAogCQkJCUE4NzFEQjI1MEExNTBCRDYwMEIxMkE2
OCAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5
RDYwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4NzFEQzI4MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MVGl0bGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQk5M0YxOThGMDA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTFRva2VuaXpl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGMTk4RjAwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxE
b2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTc5RjIwQTE5MTZERjAwQThF
RjVGIC8qIEhUTUxVTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0FCMENE
NjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0NENzREQzBBNEM4RDM1MDA1RkRBNkQgLyogSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xOTQ1NCw4ICsxOTQ1NCw4IEBACiAJCQkJQTgzM0M4MEQwQTJDRjI1NjAw
RDU3NjY0IC8qIFhNTE5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTVBMzZENzExMDQ1NzIw
MDBCN0I2MzkgLyogWE1MTlNOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRUIwQThE
MThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjE5
OTIxMDgyNDVFNTkwMDFFOUFCQyAvKiBYTUxUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTVEMTVFM0FDMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNGMTk5MjEwODI0NUU1OTAwMUU5QUJDIC8qIFhNTERvY3VtZW50UGFyc2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1RDE1RTNBQzBGOUU2QUMxMDA5RTBFM0YgLyogWE1MRG9j
dW1lbnRQYXJzZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCN0ZDNjkwQThCOTJFQzAw
RDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREE1QjBE
MkEzMUY3MDBCOTkxOEYgLyogWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QjdGQzZDMEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV4cHJlc3Npb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjAzNDgsNyArMjAzNDgsNyBAQAogCQkJCTk3NkU4OTYwMTFDMENBM0EwMEVBOUNBOSAv
KiBIVE1MNUVudGl0eVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0U4QjM1NjExQTIz
Q0UyMDAxNjk0MDkgLyogSFRNTDVMZXhlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODNCM0FG
MDExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTg3MTAzOEExMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9rZW5pemVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUE4NzEwMzhBMTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNURvY3VtZW50
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzlDNjI1MTFBOUQxRjcwMDU5MjM3QSAv
KiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTdFMjNCMTA5MTQ0
OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OENGRjdBNDBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hvckVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yMDQzOCw3ICsyMDQzOCw3IEBACiAJCQkJQTg3MURCMjYwQTE1MEJENjAwQjEy
QTY4IC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
MTM2OUQ3MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4NzFEQzI5MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MVGl0bGVFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzRjE5QTlDMDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1M
VG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRjE5QTlDMDgyNDVFNTkwMDFFOUFC
QyAvKiBIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTc5RjMw
QTE5MTZERjAwQThFRjVGIC8qIEhUTUxVTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ0NjEzQUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNDRDc0RTUwQTRDOERERjAwNUZEQTZEIC8qIEhUTUxWaWV3U291cmNl
RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTc2MSw5ICsyMTc2MSw5IEBACiAJCQkJ
QTgzM0M4MEMwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxNUEzNkQ5MTEwNDU3MjcwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQ0U1M0VBMEE4RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTkzRjE5QUJDMDgyNDVFNTkwMDFFOUFCQyAvKiBYTUxUb2tlbml6
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTRDNTBGN0IwRTgwMURGMzAwOTgzMkEwIC8qIFhN
TFRva2VuaXplckxpYnhtbDIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNUQxNUUzQUIwRjlFNkFD
MTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
RjE5QUJDMDgyNDVFNTkwMDFFOUFCQyAvKiBYTUxEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyogWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVEMTVFM0FCMEY5RTZBQzEwMDlFMEUzRiAv
KiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjdGQzY4
MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQUI3RkM2QjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFeHByZXNzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQjdGQzZFMEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV4cHJlc3Npb25O
b2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
aGVldC5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAxOTJjNDNmNGU1
YjAyMTViYTNkZGYzYTYwMzFhMjRiMjI3ZDg0MDNjLi5hZDYzMjY1NjZmYjQ4ODg3NTRiOTVjMDFi
OGI3ZDQ2ZGQ2NTM3MmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNw
cAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtMjA3LDcgKzIwNyw3IEBA
IHZvaWQgQ1NTU3R5bGVTaGVldDo6Y2hlY2tMb2FkZWQoKQogICAgIGlmIChwYXJlbnQoKSkKICAg
ICAgICAgcGFyZW50KCktPmNoZWNrTG9hZGVkKCk7CiAKLSAgICAvLyBBdm9pZCB8dGhpc3wgYmVp
bmcgZGVsZXRlZCBieSBzY3JpcHRzIHRoYXQgcnVuIHZpYSBIVE1MVG9rZW5pemVyOjpleGVjdXRl
U2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpLgorICAgIC8vIEF2b2lkIHx0aGlzfCBiZWlu
ZyBkZWxldGVkIGJ5IHNjcmlwdHMgdGhhdCBydW4gdmlhIEhUTUxEb2N1bWVudFBhcnNlcjo6ZXhl
Y3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKS4KICAgICAvLyBTZWUgPHJkYXI6Ly9w
cm9ibGVtLzY2MjIzMDA+LgogICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBwcm90ZWN0b3IodGhp
cyk7CiAgICAgbV9sb2FkQ29tcGxldGVkID0gb3duZXJOb2RlKCkgPyBvd25lck5vZGUoKS0+c2hl
ZXRMb2FkZWQoKSA6IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjVkNjMzODg4YzU1N2JlNWIzOGViNzM0
NmUwNDdkZWRkNzdiYzQ0MS4uOGViMTFjNmQwMTBkMDljZmYxNzQ3NTUyMDFkZDFlMmRhNWI4OWI1
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNzksNyArNzksNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIK
ICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnRQ
YXJzZXIuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVt
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKQEAgLTEzNSw3ICsxMzUsNyBAQAogI2lu
Y2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1
ZGUgIlhNTE5hbWVzLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CkBAIC0xNjY0
LDcgKzE2NjQsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRWaXN1YWxseU9yZGVyZWQoKQogRG9jdW1l
bnRQYXJzZXIqIERvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIoKQogewogICAgIC8vIEZJWE1FOiB0
aGlzIHNob3VsZCBwcm9iYWJseSBwYXNzIHRoZSBmcmFtZSBpbnN0ZWFkCi0gICAgcmV0dXJuIG5l
dyBYTUxUb2tlbml6ZXIodGhpcywgdmlldygpKTsKKyAgICByZXR1cm4gbmV3IFhNTERvY3VtZW50
UGFyc2VyKHRoaXMsIHZpZXcoKSk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6Om9wZW4oRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQpCkBAIC0xOTU4LDcgKzE5NTgsNyBAQCB2b2lkIERvY3VtZW50Ojp3cml0
ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHRleHQsIERvY3VtZW50KiBvd25lckRvY3VtZW50KQog
CiAgICAgQVNTRVJUKG1fdG9rZW5pemVyKTsKICAgICBib29sIHdhc0ZvcmNlZFN5bmNocm9ub3Vz
ID0gZmFsc2U7Ci0gICAgSFRNTFRva2VuaXplciogdG9rZW5pemVyID0gbV90b2tlbml6ZXItPmFz
SFRNTFRva2VuaXplcigpOworICAgIEhUTUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyID0gbV90
b2tlbml6ZXItPmFzSFRNTFRva2VuaXplcigpOwogICAgIGlmICh0b2tlbml6ZXIpIHsKICAgICAg
ICAgd2FzRm9yY2VkU3luY2hyb25vdXMgPSB0b2tlbml6ZXItPmZvcmNlU3luY2hyb25vdXMoKTsK
ICAgICAgICAgdG9rZW5pemVyLT5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
MTMzNTY2OTM2Mzc5ZjI3YzU0MjVjZGY2NjQ2N2U2ZmYwNmQzMWE3Ni4uZjlmYjA5NzY2ZTgzNWZk
Y2ViZTdhNzVkZTNmMzEzZTY0NTdkNjJhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMTksNyArMzE5LDcgQEAgcHVi
bGljOgogICAgIFN0cmluZyB4bWxWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV94bWxWZXJzaW9u
OyB9CiAgICAgYm9vbCB4bWxTdGFuZGFsb25lKCkgY29uc3QgeyByZXR1cm4gbV94bWxTdGFuZGFs
b25lOyB9CiAKLSAgICB2b2lkIHNldFhNTEVuY29kaW5nKGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcp
IHsgbV94bWxFbmNvZGluZyA9IGVuY29kaW5nOyB9IC8vIHJlYWQtb25seSBwcm9wZXJ0eSwgb25s
eSB0byBiZSBzZXQgZnJvbSBYTUxUb2tlbml6ZXIKKyAgICB2b2lkIHNldFhNTEVuY29kaW5nKGNv
bnN0IFN0cmluZyYgZW5jb2RpbmcpIHsgbV94bWxFbmNvZGluZyA9IGVuY29kaW5nOyB9IC8vIHJl
YWQtb25seSBwcm9wZXJ0eSwgb25seSB0byBiZSBzZXQgZnJvbSBYTUxEb2N1bWVudFBhcnNlcgog
ICAgIHZvaWQgc2V0WE1MVmVyc2lvbihjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRYTUxTdGFuZGFsb25lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
UGFyc2VyLmgKaW5kZXggZTZkY2ExZmM3YjczNDZkMTQxOTBjY2Y3MmI2YTdhYzNkZDQ4YWRmYS4u
ZThiZWJmOTliODAyMTQwY2FhNjEzNmQ0MGY5OTI5OTIwMDZhZGEwYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNl
ci5oCkBAIC0yNiw3ICsyNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBI
VE1MUGFyc2VyOwotICAgIGNsYXNzIEhUTUxUb2tlbml6ZXI7CisgICAgY2xhc3MgSFRNTERvY3Vt
ZW50UGFyc2VyOwogICAgIGNsYXNzIFNlZ21lbnRlZFN0cmluZzsKICAgICBjbGFzcyBYU1NBdWRp
dG9yOwogCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB2b2lkIGV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkge30KIAogICAg
ICAgICB2aXJ0dWFsIEhUTUxQYXJzZXIqIGh0bWxQYXJzZXIoKSBjb25zdCB7IHJldHVybiAwOyB9
Ci0gICAgICAgIHZpcnR1YWwgSFRNTFRva2VuaXplciogYXNIVE1MVG9rZW5pemVyKCkgeyByZXR1
cm4gMDsgfQorICAgICAgICB2aXJ0dWFsIEhUTUxEb2N1bWVudFBhcnNlciogYXNIVE1MVG9rZW5p
emVyKCkgeyByZXR1cm4gMDsgfQogCiAgICAgICAgIFhTU0F1ZGl0b3IqIHhzc0F1ZGl0b3IoKSBj
b25zdCB7IHJldHVybiBtX1hTU0F1ZGl0b3I7IH0KICAgICAgICAgdm9pZCBzZXRYU1NBdWRpdG9y
KFhTU0F1ZGl0b3IqIGF1ZGl0b3IpIHsgbV9YU1NBdWRpdG9yID0gYXVkaXRvcjsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCAyYTY5ZGJhMDBiODJmZjg0YzBjMTZkOGZlYjVjNmM4NzljYjA3MGQ5Li45MzgyM2JiNzJh
M2VlYmY1YWJlYTNiM2E0NjcyOTMxYzRjOGNlZTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNDIsNyArNDIsNyBA
QAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUg
IkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgpAQCAt
NTIsNyArNTIsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlRleHRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVy
LmgiCisjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5jcHAKaW5kZXggMTk0ZGQ5YWQwM2MwZmJiYTJiMzJkYzc3MTU0ZDBhNzlmNDk3OGQzMC4uZjhh
ZWYxZjc0MTU3ODcwZGM2NjU3YzI4ZjM1NDNkMmZhZGM2NjI2ZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIKLSNp
bmNsdWRlICJYTUxUb2tlbml6ZXIuaCIgLy8gZm9yIHBhcnNlQXR0cmlidXRlcygpCisjaW5jbHVk
ZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIgLy8gZm9yIHBhcnNlQXR0cmlidXRlcygpCiAjaW5jbHVk
ZSAiTWVkaWFMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL1hNTFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5j
cHAKc2ltaWxhcml0eSBpbmRleCA5MSUKcmVuYW1lIGZyb20gV2ViQ29yZS9kb20vWE1MVG9rZW5p
emVyLmNwcApyZW5hbWUgdG8gV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4
IDFkOThkZmUzYjIxYzU3YmU2YTJiNGE1ZDk1NWU3ODNkNjE2MmMxZmEuLjk4N2U5YjE2ZmIzMzNh
YTlhMjcxNzUxN2U4NGJmZWMwYzJiMDQ1NDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTFRv
a2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0y
NCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlhNTFRv
a2VuaXplci5oIgorI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAKICNpbmNsdWRlICJD
REFUQVNlY3Rpb24uaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKQEAgLTcwLDcgKzcwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIGNvbnN0IGludCBtYXhFcnJvcnMgPSAyNTsK
IAogI2lmIEVOQUJMRShXTUwpCi1ib29sIFhNTFRva2VuaXplcjo6aXNXTUxEb2N1bWVudCgpIGNv
bnN0Citib29sIFhNTERvY3VtZW50UGFyc2VyOjppc1dNTERvY3VtZW50KCkgY29uc3QKIHsKICAg
ICBpZiAobV9kb2MpCiAgICAgICAgIHJldHVybiBtX2RvYy0+aXNXTUxEb2N1bWVudCgpOwpAQCAt
NzksNyArNzksNyBAQCBib29sIFhNTFRva2VuaXplcjo6aXNXTUxEb2N1bWVudCgpIGNvbnN0CiB9
CiAjZW5kaWYKIAotdm9pZCBYTUxUb2tlbml6ZXI6OnB1c2hDdXJyZW50Tm9kZShOb2RlKiBuKQor
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHVzaEN1cnJlbnROb2RlKE5vZGUqIG4pCiB7CiAgICAg
QVNTRVJUKG4pOwogICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKQEAgLTkxLDcgKzkxLDcgQEAg
dm9pZCBYTUxUb2tlbml6ZXI6OnB1c2hDdXJyZW50Tm9kZShOb2RlKiBuKQogICAgICAgICBoYW5k
bGVFcnJvcihmYXRhbCwgIkV4Y2Vzc2l2ZSBub2RlIG5lc3RpbmcuIiwgbGluZU51bWJlcigpLCBj
b2x1bW5OdW1iZXIoKSk7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpwb3BDdXJyZW50Tm9kZSgp
Cit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwb3BDdXJyZW50Tm9kZSgpCiB7CiAgICAgaWYgKCFt
X2N1cnJlbnROb2RlKQogICAgICAgICByZXR1cm47CkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBY
TUxUb2tlbml6ZXI6OnBvcEN1cnJlbnROb2RlKCkKICAgICBtX2N1cnJlbnROb2RlU3RhY2sucmVt
b3ZlTGFzdCgpOwogfQogCi12b2lkIFhNTFRva2VuaXplcjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNr
KCkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNsZWFyQ3VycmVudE5vZGVTdGFjaygpCiB7CiAg
ICAgaWYgKG1fY3VycmVudE5vZGUgJiYgbV9jdXJyZW50Tm9kZSAhPSBtX2RvYykKICAgICAgICAg
bV9jdXJyZW50Tm9kZS0+ZGVyZWYoKTsKQEAgLTExOSwyOCArMTE5LDI4IEBAIHZvaWQgWE1MVG9r
ZW5pemVyOjpjbGVhckN1cnJlbnROb2RlU3RhY2soKQogICAgIH0KIH0KIAotdm9pZCBYTUxUb2tl
bml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCAvKmFwcGVuZERhdGEq
LykKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYg
cywgYm9vbCAvKmFwcGVuZERhdGEqLykKIHsKICAgICBTdHJpbmcgcGFyc2VTdHJpbmcgPSBzLnRv
U3RyaW5nKCk7Ci0gICAgCisKICAgICBpZiAobV9zYXdYU0xUcmFuc2Zvcm0gfHwgIW1fc2F3Rmly
c3RFbGVtZW50KQogICAgICAgICBtX29yaWdpbmFsU291cmNlRm9yVHJhbnNmb3JtICs9IHBhcnNl
U3RyaW5nOwogCiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCB8fCBtX3Nhd1hTTFRyYW5zZm9ybSkK
ICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgaWYgKG1fcGFyc2VyUGF1c2VkKSB7CiAgICAg
ICAgIG1fcGVuZGluZ1NyYy5hcHBlbmQocyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
CisKICAgICBkb1dyaXRlKHMudG9TdHJpbmcoKSk7Ci0gICAgCisKICAgICAvLyBBZnRlciBwYXJz
aW5nLCBnbyBhaGVhZCBhbmQgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMuCiAgICAg
SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKIH0KIAotdm9p
ZCBYTUxUb2tlbml6ZXI6OmhhbmRsZUVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBt
LCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikKK3ZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OmhhbmRsZUVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtLCBpbnQgbGluZU51
bWJlciwgaW50IGNvbHVtbk51bWJlcikKIHsKICAgICBpZiAodHlwZSA9PSBmYXRhbCB8fCAobV9l
cnJvckNvdW50IDwgbWF4RXJyb3JzICYmIG1fbGFzdEVycm9yTGluZSAhPSBsaW5lTnVtYmVyICYm
IG1fbGFzdEVycm9yQ29sdW1uICE9IGNvbHVtbk51bWJlcikpIHsKICAgICAgICAgc3dpdGNoICh0
eXBlKSB7CkBAIC0xNTEsMjAgKzE1MSwyMCBAQCB2b2lkIFhNTFRva2VuaXplcjo6aGFuZGxlRXJy
b3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0sIGludCBsaW5lTnVtYmVyLCBpbgogICAg
ICAgICAgICAgY2FzZSBub25GYXRhbDoKICAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMg
Kz0gU3RyaW5nOjpmb3JtYXQoImVycm9yIG9uIGxpbmUgJWQgYXQgY29sdW1uICVkOiAlcyIsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgbSk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAg
ICAgbV9sYXN0RXJyb3JMaW5lID0gbGluZU51bWJlcjsKICAgICAgICAgbV9sYXN0RXJyb3JDb2x1
bW4gPSBjb2x1bW5OdW1iZXI7CiAgICAgICAgICsrbV9lcnJvckNvdW50OwogICAgIH0KLSAgICAK
KwogICAgIGlmICh0eXBlICE9IHdhcm5pbmcpCiAgICAgICAgIG1fc2F3RXJyb3IgPSB0cnVlOwot
ICAgIAorCiAgICAgaWYgKHR5cGUgPT0gZmF0YWwpCi0gICAgICAgIHN0b3BQYXJzaW5nKCk7ICAg
IAorICAgICAgICBzdG9wUGFyc2luZygpOwogfQogCi1ib29sIFhNTFRva2VuaXplcjo6ZW50ZXJU
ZXh0KCkKK2Jvb2wgWE1MRG9jdW1lbnRQYXJzZXI6OmVudGVyVGV4dCgpCiB7CiAjaWYgIVVTRShR
WE1MU1RSRUFNKQogICAgIEFTU0VSVChtX2J1ZmZlcmVkVGV4dC5zaXplKCkgPT0gMCk7CkBAIC0x
ODQsNyArMTg0LDcgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdG9TdHJpbmcoY29uc3QgeG1sQ2hh
ciogc3RyLCB1bnNpZ25lZCBsZW4pCiAjZW5kaWYKIAogCi12b2lkIFhNTFRva2VuaXplcjo6ZXhp
dFRleHQoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXhpdFRleHQoKQogewogICAgIGlmICht
X3BhcnNlclN0b3BwZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lk
IFhNTFRva2VuaXplcjo6ZXhpdFRleHQoKQogICAgIHBvcEN1cnJlbnROb2RlKCk7CiB9CiAKLXZv
aWQgWE1MVG9rZW5pemVyOjplbmQoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kKCkKIHsK
ICAgICBkb0VuZCgpOwogCkBAIC0yMTksMTMgKzIxOSwxMyBAQCB2b2lkIFhNTFRva2VuaXplcjo6
ZW5kKCkKICAgICAgICAgZXhpdFRleHQoKTsKICAgICAgICAgbV9kb2MtPnVwZGF0ZVN0eWxlU2Vs
ZWN0b3IoKTsKICAgICB9Ci0gICAgCisKICAgICBjbGVhckN1cnJlbnROb2RlU3RhY2soKTsKICAg
ICBpZiAoIW1fcGFyc2luZ0ZyYWdtZW50KQotICAgICAgICBtX2RvYy0+ZmluaXNoZWRQYXJzaW5n
KCk7ICAgIAorICAgICAgICBtX2RvYy0+ZmluaXNoZWRQYXJzaW5nKCk7CiB9CiAKLXZvaWQgWE1M
VG9rZW5pemVyOjpmaW5pc2goKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKIHsK
ICAgICBpZiAobV9wYXJzZXJQYXVzZWQpCiAgICAgICAgIG1fZmluaXNoQ2FsbGVkID0gdHJ1ZTsK
QEAgLTIzMywxMSArMjMzLDExIEBAIHZvaWQgWE1MVG9rZW5pemVyOjpmaW5pc2goKQogICAgICAg
ICBlbmQoKTsKIH0KIAotc3RhdGljIGlubGluZSBSZWZQdHI8RWxlbWVudD4gY3JlYXRlWEhUTUxQ
YXJzZXJFcnJvckhlYWRlcihEb2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZXMpIAorc3RhdGljIGlubGluZSBSZWZQdHI8RWxlbWVudD4gY3JlYXRlWEhUTUxQYXJzZXJFcnJv
ckhlYWRlcihEb2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZXMpCiB7CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IHJlcG9ydEVsZW1lbnQgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoUXVh
bGlmaWVkTmFtZShudWxsQXRvbSwgInBhcnNlcmVycm9yIiwgeGh0bWxOYW1lc3BhY2VVUkkpLCBm
YWxzZSk7CiAgICAgcmVwb3J0RWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgImRpc3Bs
YXk6IGJsb2NrOyB3aGl0ZS1zcGFjZTogcHJlOyBib3JkZXI6IDJweCBzb2xpZCAjYzc3OyBwYWRk
aW5nOiAwIDFlbSAwIDFlbTsgbWFyZ2luOiAxZW07IGJhY2tncm91bmQtY29sb3I6ICNmZGQ7IGNv
bG9yOiBibGFjayIpOwotICAgIAorCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgUmVm
UHRyPEVsZW1lbnQ+IGgzID0gZG9jLT5jcmVhdGVFbGVtZW50KGgzVGFnLCBmYWxzZSk7CiAgICAg
cmVwb3J0RWxlbWVudC0+YXBwZW5kQ2hpbGQoaDMuZ2V0KCksIGVjKTsKQEAgLTI1MSwxOCArMjUx
LDE4IEBAIHN0YXRpYyBpbmxpbmUgUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVhIVE1MUGFyc2VyRXJy
b3JIZWFkZXIoRG9jdW1lbnQqIGRvYywgY29uc3QKICAgICBoMyA9IGRvYy0+Y3JlYXRlRWxlbWVu
dChoM1RhZywgZmFsc2UpOwogICAgIHJlcG9ydEVsZW1lbnQtPmFwcGVuZENoaWxkKGgzLmdldCgp
LCBlYyk7CiAgICAgaDMtPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUoIkJlbG93IGlz
IGEgcmVuZGVyaW5nIG9mIHRoZSBwYWdlIHVwIHRvIHRoZSBmaXJzdCBlcnJvci4iKSwgZWMpOwot
ICAgIAorCiAgICAgcmV0dXJuIHJlcG9ydEVsZW1lbnQ7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVy
OjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jaygpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjppbnNl
cnRFcnJvck1lc3NhZ2VCbG9jaygpCiB7CiAjaWYgVVNFKFFYTUxTVFJFQU0pCiAgICAgaWYgKG1f
cGFyc2luZ0ZyYWdtZW50KQogICAgICAgICByZXR1cm47CiAjZW5kaWYKICAgICAvLyBPbmUgb3Ig
bW9yZSBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHBhcnNpbmcgb2YgdGhlIGNvZGUuIERpc3BsYXkg
YW4gZXJyb3IgYmxvY2sgdG8gdGhlIHVzZXIgYWJvdmUKLSAgICAvLyB0aGUgbm9ybWFsIGNvbnRl
bnQgKHRoZSBET00gdHJlZSBpcyBjcmVhdGVkIG1hbnVhbGx5IGFuZCBpbmNsdWRlcyBsaW5lL2Nv
bCBpbmZvIHJlZ2FyZGluZyAKKyAgICAvLyB0aGUgbm9ybWFsIGNvbnRlbnQgKHRoZSBET00gdHJl
ZSBpcyBjcmVhdGVkIG1hbnVhbGx5IGFuZCBpbmNsdWRlcyBsaW5lL2NvbCBpbmZvIHJlZ2FyZGlu
ZwogICAgIC8vIHdoZXJlIHRoZSBlcnJvcnMgYXJlIGxvY2F0ZWQpCiAKICAgICAvLyBDcmVhdGUg
ZWxlbWVudHMgZm9yIGRpc3BsYXkKQEAgLTMxMCwyNCArMzEwLDI0IEBAIHZvaWQgWE1MVG9rZW5p
emVyOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jaygpCiAgICAgZG9jLT51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSogdW51c2VkUmVzb3VyY2UpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSogdW51c2VkUmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RCh1bnVzZWRSZXNvdXJjZSwgdW51c2VkUmVzb3VyY2UgPT0gbV9wZW5kaW5nU2NyaXB0KTsKICAg
ICBBU1NFUlQobV9wZW5kaW5nU2NyaXB0LT5hY2Nlc3NDb3VudCgpID4gMCk7Ci0gICAgICAgIAor
CiAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fcGVuZGluZ1NjcmlwdC5nZXQoKSk7
CiAgICAgYm9vbCBlcnJvck9jY3VycmVkID0gbV9wZW5kaW5nU2NyaXB0LT5lcnJvck9jY3VycmVk
KCk7CiAKICAgICBtX3BlbmRpbmdTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICBtX3Bl
bmRpbmdTY3JpcHQgPSAwOwotICAgIAorCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGUgPSBtX3Njcmlw
dEVsZW1lbnQ7CiAgICAgbV9zY3JpcHRFbGVtZW50ID0gMDsKIAogICAgIFNjcmlwdEVsZW1lbnQq
IHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnQoZS5nZXQoKSk7CiAgICAgQVNTRVJUKHNj
cmlwdEVsZW1lbnQpOwogCi0gICAgaWYgKGVycm9yT2NjdXJyZWQpIAorICAgIGlmIChlcnJvck9j
Y3VycmVkKQogICAgICAgICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKICAg
ICBlbHNlIHsKICAgICAgICAgbV92aWV3LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlw
dChzb3VyY2VDb2RlKTsKQEAgLTMzNSwyMSArMzM1LDIxIEBAIHZvaWQgWE1MVG9rZW5pemVyOjpu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogdW51c2VkUmVzb3VyY2UpCiAgICAgfQogCiAg
ICAgbV9zY3JpcHRFbGVtZW50ID0gMDsKLSAgICAKKwogICAgIGlmICghbV9yZXF1ZXN0aW5nU2Ny
aXB0KQogICAgICAgICByZXN1bWVQYXJzaW5nKCk7CiB9CiAKLWJvb2wgWE1MVG9rZW5pemVyOjpp
c1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKK2Jvb2wgWE1MRG9jdW1lbnRQYXJzZXI6OmlzV2Fp
dGluZ0ZvclNjcmlwdHMoKSBjb25zdAogewogICAgIHJldHVybiBtX3BlbmRpbmdTY3JpcHQ7CiB9
CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpwYXVzZVBhcnNpbmcoKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6cGF1c2VQYXJzaW5nKCkKIHsKICAgICBpZiAobV9wYXJzaW5nRnJhZ21lbnQpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fcGFyc2VyUGF1c2VkID0gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlci5oCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIFdlYkNvcmUvZG9t
L1hNTFRva2VuaXplci5oCnJlbmFtZSB0byBXZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5o
CmluZGV4IDk0ODg1YzEzMDdjZWRlYTBjYjY5YmY1OGIzMGVlMTMxYzQ4ODcwMDEuLmM5NDNhNjU5
NGViYjQzZmFmZDAyY2MyMzBlMmZlOWI5NDc3NDlkOGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1hNTFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKQEAg
LTcwLDExICs3MCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKICNlbmRpZgogCi0g
ICAgY2xhc3MgWE1MVG9rZW5pemVyIDogcHVibGljIERvY3VtZW50UGFyc2VyLCBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2VDbGllbnQgeworICAgIGNsYXNzIFhNTERvY3VtZW50UGFyc2VyIDogcHVibGlj
IERvY3VtZW50UGFyc2VyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgWE1MVG9rZW5pemVyKERvY3VtZW50KiwgRnJhbWVWaWV3KiA9IDApOwotICAg
ICAgICBYTUxUb2tlbml6ZXIoRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQqLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24pOwotICAgICAgICB+WE1MVG9rZW5pemVyKCk7CisgICAgICAgIFhN
TERvY3VtZW50UGFyc2VyKERvY3VtZW50KiwgRnJhbWVWaWV3KiA9IDApOworICAgICAgICBYTUxE
b2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiwgRWxlbWVudCosIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbik7CisgICAgICAgIH5YTUxEb2N1bWVudFBhcnNlcigpOwogCiAgICAgICAg
IGVudW0gRXJyb3JUeXBlIHsgd2FybmluZywgbm9uRmF0YWwsIGZhdGFsIH07CiAKQEAgLTEyNiw3
ICsxMjYsNyBAQCBwcml2YXRlOgogI2Vsc2UKIHB1YmxpYzoKICAgICAgICAgLy8gY2FsbGJhY2tz
IGZyb20gcGFyc2VyIFNBWAotICAgICAgICB2b2lkIGVycm9yKEVycm9yVHlwZSwgY29uc3QgY2hh
ciogbWVzc2FnZSwgdmFfbGlzdCBhcmdzKSBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKTsgCisg
ICAgICAgIHZvaWQgZXJyb3IoRXJyb3JUeXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB2YV9saXN0
IGFyZ3MpIFdURl9BVFRSSUJVVEVfUFJJTlRGKDMsIDApOwogICAgICAgICB2b2lkIHN0YXJ0RWxl
bWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogeG1sUHJl
Zml4LCBjb25zdCB4bWxDaGFyKiB4bWxVUkksIGludCBuYl9uYW1lc3BhY2VzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqKiBuYW1lc3BhY2VzLCBpbnQgbmJfYXR0
cmlidXRlcywgaW50IG5iX2RlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGxpYnhtbEF0dHJpYnV0
ZXMpOwogICAgICAgICB2b2lkIGVuZEVsZW1lbnROcygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFdlYkNvcmUvZG9t
L1hNTFRva2VuaXplckxpYnhtbDIuY3BwCnJlbmFtZSB0byBXZWJDb3JlL2RvbS9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDE3ZWI0NmM2ZmY5ZDg0ZTNiZjdhMmE3MzAzZDM1MDdk
MGQyM2Q4YzkuLmZmOTg2MWFjOTMxOWY3MTU4YmRmOGFhNzZjN2RhYTVhMmQxYTlkMGUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVk
ZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgpAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdHls
ZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiIC8vIGZvciBkZWNvZGVOYW1l
ZEVudGl0eQorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIiAvLyBmb3IgZGVjb2RlTmFt
ZWRFbnRpdHkKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTUxLDcgKzUx
LDcgQEAKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgotI2luY2x1ZGUgIlhNTFRva2Vu
aXplclNjb3BlLmgiCisjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5oIgogI2luY2x1
ZGUgPGxpYnhtbC9wYXJzZXIuaD4KICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNzksMTIgKzc5LDEyIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2NhbGxiYWNrcyk7CiAgICAgfQot
ICAgIAorCiAgICAgdm9pZCBhcHBlbmRTdGFydEVsZW1lbnROU0NhbGxiYWNrKGNvbnN0IHhtbENo
YXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogeG1sUHJlZml4LCBjb25zdCB4bWxDaGFy
KiB4bWxVUkksIGludCBuYl9uYW1lc3BhY2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB4bWxDaGFyKiogbmFtZXNwYWNlcywgaW50IG5iX2F0dHJpYnV0ZXMs
IGludCBuYl9kZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBhdHRyaWJ1dGVzKQogICAgIHsKICAg
ICAgICAgUGVuZGluZ1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2sqIGNhbGxiYWNrID0gbmV3IFBlbmRp
bmdTdGFydEVsZW1lbnROU0NhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBjYWxsYmFjay0+
eG1sTG9jYWxOYW1lID0geG1sU3RyZHVwKHhtbExvY2FsTmFtZSk7CiAgICAgICAgIGNhbGxiYWNr
LT54bWxQcmVmaXggPSB4bWxTdHJkdXAoeG1sUHJlZml4KTsKICAgICAgICAgY2FsbGJhY2stPnht
bFVSSSA9IHhtbFN0cmR1cCh4bWxVUkkpOwpAQCAtOTgsMTAyICs5OCwxMDIgQEAgcHVibGljOgog
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2F0dHJpYnV0ZXM7IGkrKykgewogICAgICAg
ICAgICAgLy8gRWFjaCBhdHRyaWJ1dGUgaGFzIDUgZWxlbWVudHMgaW4gdGhlIGFycmF5OgogICAg
ICAgICAgICAgLy8gbmFtZSwgcHJlZml4LCB1cmksIHZhbHVlIGFuZCBhbiBlbmQgcG9pbnRlci4K
LSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDM7IGorKykK
ICAgICAgICAgICAgICAgICBjYWxsYmFjay0+YXR0cmlidXRlc1tpICogNSArIGpdID0geG1sU3Ry
ZHVwKGF0dHJpYnV0ZXNbaSAqIDUgKyBqXSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAg
aW50IGxlbiA9IGF0dHJpYnV0ZXNbaSAqIDUgKyA0XSAtIGF0dHJpYnV0ZXNbaSAqIDUgKyAzXTsK
IAogICAgICAgICAgICAgY2FsbGJhY2stPmF0dHJpYnV0ZXNbaSAqIDUgKyAzXSA9IHhtbFN0cm5k
dXAoYXR0cmlidXRlc1tpICogNSArIDNdLCBsZW4pOwogICAgICAgICAgICAgY2FsbGJhY2stPmF0
dHJpYnV0ZXNbaSAqIDUgKyA0XSA9IGNhbGxiYWNrLT5hdHRyaWJ1dGVzW2kgKiA1ICsgM10gKyBs
ZW47CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNh
bGxiYWNrKTsKICAgICB9CiAKICAgICB2b2lkIGFwcGVuZEVuZEVsZW1lbnROU0NhbGxiYWNrKCkK
ICAgICB7CiAgICAgICAgIFBlbmRpbmdFbmRFbGVtZW50TlNDYWxsYmFjayogY2FsbGJhY2sgPSBu
ZXcgUGVuZGluZ0VuZEVsZW1lbnROU0NhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBtX2Nh
bGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgYXBwZW5k
Q2hhcmFjdGVyc0NhbGxiYWNrKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiAgICAgewogICAg
ICAgICBQZW5kaW5nQ2hhcmFjdGVyc0NhbGxiYWNrKiBjYWxsYmFjayA9IG5ldyBQZW5kaW5nQ2hh
cmFjdGVyc0NhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBjYWxsYmFjay0+cyA9IHhtbFN0
cm5kdXAocywgbGVuKTsKICAgICAgICAgY2FsbGJhY2stPmxlbiA9IGxlbjsKLSAgICAgICAgCisK
ICAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNrKTsKICAgICB9Ci0gICAgCisKICAg
ICB2b2lkIGFwcGVuZFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNhbGxiYWNrKGNvbnN0IHhtbENoYXIq
IHRhcmdldCwgY29uc3QgeG1sQ2hhciogZGF0YSkKICAgICB7CiAgICAgICAgIFBlbmRpbmdQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb25DYWxsYmFjayogY2FsbGJhY2sgPSBuZXcgUGVuZGluZ1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbkNhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBjYWxsYmFjay0+dGFy
Z2V0ID0geG1sU3RyZHVwKHRhcmdldCk7CiAgICAgICAgIGNhbGxiYWNrLT5kYXRhID0geG1sU3Ry
ZHVwKGRhdGEpOwotICAgICAgICAKKwogICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoY2FsbGJh
Y2spOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgYXBwZW5kQ0RBVEFCbG9ja0NhbGxiYWNrKGNv
bnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiAgICAgewogICAgICAgICBQZW5kaW5nQ0RBVEFCbG9j
a0NhbGxiYWNrKiBjYWxsYmFjayA9IG5ldyBQZW5kaW5nQ0RBVEFCbG9ja0NhbGxiYWNrOwotICAg
ICAgICAKKwogICAgICAgICBjYWxsYmFjay0+cyA9IHhtbFN0cm5kdXAocywgbGVuKTsKICAgICAg
ICAgY2FsbGJhY2stPmxlbiA9IGxlbjsKLSAgICAgICAgCi0gICAgICAgIG1fY2FsbGJhY2tzLmFw
cGVuZChjYWxsYmFjayk7ICAgICAgICAKKworICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoY2Fs
bGJhY2spOwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kQ29tbWVudENhbGxiYWNrKGNvbnN0IHht
bENoYXIqIHMpCiAgICAgewogICAgICAgICBQZW5kaW5nQ29tbWVudENhbGxiYWNrKiBjYWxsYmFj
ayA9IG5ldyBQZW5kaW5nQ29tbWVudENhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBjYWxs
YmFjay0+cyA9IHhtbFN0cmR1cChzKTsKLSAgICAgICAgCi0gICAgICAgIG1fY2FsbGJhY2tzLmFw
cGVuZChjYWxsYmFjayk7ICAgICAgICAKKworICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoY2Fs
bGJhY2spOwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kSW50ZXJuYWxTdWJzZXRDYWxsYmFjayhj
b25zdCB4bWxDaGFyKiBuYW1lLCBjb25zdCB4bWxDaGFyKiBleHRlcm5hbElELCBjb25zdCB4bWxD
aGFyKiBzeXN0ZW1JRCkKICAgICB7CiAgICAgICAgIFBlbmRpbmdJbnRlcm5hbFN1YnNldENhbGxi
YWNrKiBjYWxsYmFjayA9IG5ldyBQZW5kaW5nSW50ZXJuYWxTdWJzZXRDYWxsYmFjazsKLSAgICAg
ICAgCisKICAgICAgICAgY2FsbGJhY2stPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CiAgICAgICAg
IGNhbGxiYWNrLT5leHRlcm5hbElEID0geG1sU3RyZHVwKGV4dGVybmFsSUQpOwogICAgICAgICBj
YWxsYmFjay0+c3lzdGVtSUQgPSB4bWxTdHJkdXAoc3lzdGVtSUQpOwotICAgICAgICAKLSAgICAg
ICAgbV9jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNrKTsgICAgICAgIAorCisgICAgICAgIG1fY2Fs
bGJhY2tzLmFwcGVuZChjYWxsYmFjayk7CiAgICAgfQotICAgIAotICAgIHZvaWQgYXBwZW5kRXJy
b3JDYWxsYmFjayhYTUxUb2tlbml6ZXI6OkVycm9yVHlwZSB0eXBlLCBjb25zdCB4bWxDaGFyKiBt
ZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikKKworICAgIHZvaWQgYXBw
ZW5kRXJyb3JDYWxsYmFjayhYTUxEb2N1bWVudFBhcnNlcjo6RXJyb3JUeXBlIHR5cGUsIGNvbnN0
IHhtbENoYXIqIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKQogICAg
IHsKICAgICAgICAgUGVuZGluZ0Vycm9yQ2FsbGJhY2sqIGNhbGxiYWNrID0gbmV3IFBlbmRpbmdF
cnJvckNhbGxiYWNrOwotICAgICAgICAKKwogICAgICAgICBjYWxsYmFjay0+bWVzc2FnZSA9IHht
bFN0cmR1cChtZXNzYWdlKTsKICAgICAgICAgY2FsbGJhY2stPnR5cGUgPSB0eXBlOwogICAgICAg
ICBjYWxsYmFjay0+bGluZU51bWJlciA9IGxpbmVOdW1iZXI7CiAgICAgICAgIGNhbGxiYWNrLT5j
b2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7Ci0gICAgICAgIAorCiAgICAgICAgIG1fY2FsbGJh
Y2tzLmFwcGVuZChjYWxsYmFjayk7CiAgICAgfQogCi0gICAgdm9pZCBjYWxsQW5kUmVtb3ZlRmly
c3RDYWxsYmFjayhYTUxUb2tlbml6ZXIqIHRva2VuaXplcikKKyAgICB2b2lkIGNhbGxBbmRSZW1v
dmVGaXJzdENhbGxiYWNrKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCiAgICAgewogICAg
ICAgICBPd25QdHI8UGVuZGluZ0NhbGxiYWNrPiBjYWxsYmFjayhtX2NhbGxiYWNrcy50YWtlRmly
c3QoKSk7CiAgICAgICAgIGNhbGxiYWNrLT5jYWxsKHRva2VuaXplcik7CiAgICAgfQotICAgIAor
CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja3MuaXNFbXB0eSgp
OyB9Ci0gICAgCi1wcml2YXRlOiAgICAKLSAgICBzdHJ1Y3QgUGVuZGluZ0NhbGxiYWNrIHsgIAor
Citwcml2YXRlOgorICAgIHN0cnVjdCBQZW5kaW5nQ2FsbGJhY2sgewogICAgICAgICB2aXJ0dWFs
IH5QZW5kaW5nQ2FsbGJhY2soKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MVG9r
ZW5pemVyKiB0b2tlbml6ZXIpID0gMDsKLSAgICB9OyAgCi0gICAgCisgICAgICAgIHZpcnR1YWwg
dm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpID0gMDsKKyAgICB9OworCiAg
ICAgc3RydWN0IFBlbmRpbmdTdGFydEVsZW1lbnROU0NhbGxiYWNrIDogcHVibGljIFBlbmRpbmdD
YWxsYmFjayB7CiAgICAgICAgIHZpcnR1YWwgflBlbmRpbmdTdGFydEVsZW1lbnROU0NhbGxiYWNr
KCkKICAgICAgICAgewpAQCAtMjA0LDE0ICsyMDQsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICB4bWxGcmVlKG5hbWVzcGFjZXNbaV0pOwogICAgICAgICAgICAgeG1sRnJlZShuYW1lc3Bh
Y2VzKTsKICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfYXR0cmlidXRlczsgaSsr
KQotICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgNDsgaisrKSAKKyAgICAgICAg
ICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykKICAgICAgICAgICAgICAgICAgICAg
eG1sRnJlZShhdHRyaWJ1dGVzW2kgKiA1ICsgal0pOwogICAgICAgICAgICAgeG1sRnJlZShhdHRy
aWJ1dGVzKTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwo
WE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpCisKKyAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1M
RG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikKICAgICAgICAgewotICAgICAgICAgICAgdG9rZW5p
emVyLT5zdGFydEVsZW1lbnROcyh4bWxMb2NhbE5hbWUsIHhtbFByZWZpeCwgeG1sVVJJLCAKKyAg
ICAgICAgICAgIHRva2VuaXplci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVm
aXgsIHhtbFVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfbmFt
ZXNwYWNlcywgY29uc3RfY2FzdDxjb25zdCB4bWxDaGFyKio+KG5hbWVzcGFjZXMpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0
ZWQsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hhcioqPihhdHRyaWJ1dGVzKSk7CiAgICAgICAgIH0K
QEAgLTIyNSwxMDkgKzIyNSwxMDkgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IG5iX2RlZmF1bHRl
ZDsKICAgICAgICAgeG1sQ2hhcioqIGF0dHJpYnV0ZXM7CiAgICAgfTsKLSAgICAKKwogICAgIHN0
cnVjdCBQZW5kaW5nRW5kRWxlbWVudE5TQ2FsbGJhY2sgOiBwdWJsaWMgUGVuZGluZ0NhbGxiYWNr
IHsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpIAor
ICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyKQog
ICAgICAgICB7CiAgICAgICAgICAgICB0b2tlbml6ZXItPmVuZEVsZW1lbnROcygpOwogICAgICAg
ICB9CiAgICAgfTsKLSAgICAKKwogICAgIHN0cnVjdCBQZW5kaW5nQ2hhcmFjdGVyc0NhbGxiYWNr
IDogcHVibGljIFBlbmRpbmdDYWxsYmFjayB7Ci0gICAgICAgIHZpcnR1YWwgflBlbmRpbmdDaGFy
YWN0ZXJzQ2FsbGJhY2soKSAKKyAgICAgICAgdmlydHVhbCB+UGVuZGluZ0NoYXJhY3RlcnNDYWxs
YmFjaygpCiAgICAgICAgIHsKICAgICAgICAgICAgIHhtbEZyZWUocyk7CiAgICAgICAgIH0KLSAg
ICAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpIAor
CisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHRva2VuaXplci0+Y2hhcmFjdGVycyhzLCBsZW4pOwog
ICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHhtbENoYXIqIHM7CiAgICAgICAgIGludCBs
ZW47CiAgICAgfTsKIAogICAgIHN0cnVjdCBQZW5kaW5nUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2Fs
bGJhY2sgOiBwdWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsKLSAgICAgICAgdmlydHVhbCB+UGVuZGlu
Z1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkNhbGxiYWNrKCkgCisgICAgICAgIHZpcnR1YWwgflBlbmRp
bmdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DYWxsYmFjaygpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHhtbEZyZWUodGFyZ2V0KTsKICAgICAgICAgICAgIHhtbEZyZWUoZGF0YSk7CiAgICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTFRva2VuaXplciogdG9rZW5p
emVyKSAKKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogdG9r
ZW5pemVyKQogICAgICAgICB7CiAgICAgICAgICAgICB0b2tlbml6ZXItPnByb2Nlc3NpbmdJbnN0
cnVjdGlvbih0YXJnZXQsIGRhdGEpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHht
bENoYXIqIHRhcmdldDsKICAgICAgICAgeG1sQ2hhciogZGF0YTsKICAgICB9OwotICAgIAorCiAg
ICAgc3RydWN0IFBlbmRpbmdDREFUQUJsb2NrQ2FsbGJhY2sgOiBwdWJsaWMgUGVuZGluZ0NhbGxi
YWNrIHsKLSAgICAgICAgdmlydHVhbCB+UGVuZGluZ0NEQVRBQmxvY2tDYWxsYmFjaygpIAorICAg
ICAgICB2aXJ0dWFsIH5QZW5kaW5nQ0RBVEFCbG9ja0NhbGxiYWNrKCkKICAgICAgICAgewogICAg
ICAgICAgICAgeG1sRnJlZShzKTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNhbGwoWE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpIAorCisgICAgICAgIHZpcnR1YWwg
dm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHRva2VuaXplci0+Y2RhdGFCbG9jayhzLCBsZW4pOwogICAgICAgICB9Ci0gICAgICAg
IAorCiAgICAgICAgIHhtbENoYXIqIHM7CiAgICAgICAgIGludCBsZW47CiAgICAgfTsKIAogICAg
IHN0cnVjdCBQZW5kaW5nQ29tbWVudENhbGxiYWNrIDogcHVibGljIFBlbmRpbmdDYWxsYmFjayB7
Ci0gICAgICAgIHZpcnR1YWwgflBlbmRpbmdDb21tZW50Q2FsbGJhY2soKSAKKyAgICAgICAgdmly
dHVhbCB+UGVuZGluZ0NvbW1lbnRDYWxsYmFjaygpCiAgICAgICAgIHsKICAgICAgICAgICAgIHht
bEZyZWUocyk7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxs
KFhNTFRva2VuaXplciogdG9rZW5pemVyKSAKKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChY
TUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyKQogICAgICAgICB7CiAgICAgICAgICAgICB0b2tl
bml6ZXItPmNvbW1lbnQocyk7CiAgICAgICAgIH0KIAogICAgICAgICB4bWxDaGFyKiBzOwogICAg
IH07Ci0gICAgCisKICAgICBzdHJ1Y3QgUGVuZGluZ0ludGVybmFsU3Vic2V0Q2FsbGJhY2sgOiBw
dWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsKLSAgICAgICAgdmlydHVhbCB+UGVuZGluZ0ludGVybmFs
U3Vic2V0Q2FsbGJhY2soKSAKKyAgICAgICAgdmlydHVhbCB+UGVuZGluZ0ludGVybmFsU3Vic2V0
Q2FsbGJhY2soKQogICAgICAgICB7CiAgICAgICAgICAgICB4bWxGcmVlKG5hbWUpOwogICAgICAg
ICAgICAgeG1sRnJlZShleHRlcm5hbElEKTsKICAgICAgICAgICAgIHhtbEZyZWUoc3lzdGVtSUQp
OwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxUb2tl
bml6ZXIqIHRva2VuaXplcikKKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVu
dFBhcnNlciogdG9rZW5pemVyKQogICAgICAgICB7CiAgICAgICAgICAgICB0b2tlbml6ZXItPmlu
dGVybmFsU3Vic2V0KG5hbWUsIGV4dGVybmFsSUQsIHN5c3RlbUlEKTsKICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICB4bWxDaGFyKiBuYW1lOwogICAgICAgICB4bWxDaGFyKiBleHRlcm5h
bElEOwotICAgICAgICB4bWxDaGFyKiBzeXN0ZW1JRDsgICAgICAgIAorICAgICAgICB4bWxDaGFy
KiBzeXN0ZW1JRDsKICAgICB9OwotICAgIAorCiAgICAgc3RydWN0IFBlbmRpbmdFcnJvckNhbGxi
YWNrOiBwdWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsKLSAgICAgICAgdmlydHVhbCB+UGVuZGluZ0Vy
cm9yQ2FsbGJhY2soKSAKKyAgICAgICAgdmlydHVhbCB+UGVuZGluZ0Vycm9yQ2FsbGJhY2soKQog
ICAgICAgICB7CiAgICAgICAgICAgICB4bWxGcmVlKG1lc3NhZ2UpOwogICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxUb2tlbml6ZXIqIHRva2VuaXplcikg
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXpl
cikKICAgICAgICAgewogICAgICAgICAgICAgdG9rZW5pemVyLT5oYW5kbGVFcnJvcih0eXBlLCBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihtZXNzYWdlKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
KTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgWE1MVG9rZW5pemVyOjpFcnJvclR5cGUg
dHlwZTsKKworICAgICAgICBYTUxEb2N1bWVudFBhcnNlcjo6RXJyb3JUeXBlIHR5cGU7CiAgICAg
ICAgIHhtbENoYXIqIG1lc3NhZ2U7CiAgICAgICAgIGludCBsaW5lTnVtYmVyOwogICAgICAgICBp
bnQgY29sdW1uTnVtYmVyOwogICAgIH07Ci0gICAgCisKICAgICBEZXF1ZTxQZW5kaW5nQ2FsbGJh
Y2sqPiBtX2NhbGxiYWNrczsKIH07CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpAQCAtMzM3LDE1ICszMzcsMTUgQEAgc3RhdGljIFRocmVhZElkZW50aWZpZXIgbGlieG1sTG9h
ZGVyVGhyZWFkID0gMDsKIAogc3RhdGljIGludCBtYXRjaEZ1bmMoY29uc3QgY2hhciopCiB7Ci0g
ICAgLy8gT25seSBtYXRjaCBsb2FkcyBpbml0aWF0ZWQgZHVlIHRvIHVzZXMgb2YgbGlieG1sMiBm
cm9tIHdpdGhpbiBYTUxUb2tlbml6ZXIgdG8gYXZvaWQKKyAgICAvLyBPbmx5IG1hdGNoIGxvYWRz
IGluaXRpYXRlZCBkdWUgdG8gdXNlcyBvZiBsaWJ4bWwyIGZyb20gd2l0aGluIFhNTERvY3VtZW50
UGFyc2VyIHRvIGF2b2lkCiAgICAgLy8gaW50ZXJmZXJpbmcgd2l0aCBjbGllbnQgYXBwbGljYXRp
b25zIHRoYXQgYWxzbyB1c2UgbGlieG1sMi4gIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MzUzCi0gICAgcmV0dXJuIFhNTFRva2VuaXplclNjb3BlOjpjdXJyZW50RG9j
TG9hZGVyICYmIGN1cnJlbnRUaHJlYWQoKSA9PSBsaWJ4bWxMb2FkZXJUaHJlYWQ7CisgICAgcmV0
dXJuIFhNTERvY3VtZW50UGFyc2VyU2NvcGU6OmN1cnJlbnREb2NMb2FkZXIgJiYgY3VycmVudFRo
cmVhZCgpID09IGxpYnhtbExvYWRlclRocmVhZDsKIH0KIAogY2xhc3MgT2Zmc2V0QnVmZmVyIHsK
IHB1YmxpYzoKICAgICBPZmZzZXRCdWZmZXIoY29uc3QgVmVjdG9yPGNoYXI+JiBiKSA6IG1fYnVm
ZmVyKGIpLCBtX2N1cnJlbnRPZmZzZXQoMCkgeyB9Ci0gICAgCisKICAgICBpbnQgcmVhZE91dEJ5
dGVzKGNoYXIqIG91dHB1dEJ1ZmZlciwgdW5zaWduZWQgYXNrZWRUb1JlYWQpCiAgICAgewogICAg
ICAgICB1bnNpZ25lZCBieXRlc0xlZnQgPSBtX2J1ZmZlci5zaXplKCkgLSBtX2N1cnJlbnRPZmZz
ZXQ7CkBAIC0zOTAsOCArMzkwLDggQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dFeHRlcm5hbExv
YWQoY29uc3QgS1VSTCYgdXJsKQogICAgIC8vIHJldHJpZXZlZCBjb250ZW50LiAgSWYgd2UgaGFk
IG1vcmUgY29udGV4dCwgd2UgY291bGQgcG90ZW50aWFsbHkgYWxsb3cKICAgICAvLyB0aGUgcGFy
c2VyIHRvIGxvYWQgYSBEVEQuICBBcyB0aGluZ3Mgc3RhbmQsIHdlIHRha2UgdGhlIGNvbnNlcnZh
dGl2ZQogICAgIC8vIHJvdXRlIGFuZCBhbGxvdyBzYW1lLW9yaWdpbiByZXF1ZXN0cyBvbmx5Lgot
ICAgIGlmICghWE1MVG9rZW5pemVyU2NvcGU6OmN1cnJlbnREb2NMb2FkZXItPmRvYygpLT5zZWN1
cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkpIHsKLSAgICAgICAgWE1MVG9rZW5pemVyU2Nv
cGU6OmN1cnJlbnREb2NMb2FkZXItPnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSh1cmwpOworICAg
IGlmICghWE1MRG9jdW1lbnRQYXJzZXJTY29wZTo6Y3VycmVudERvY0xvYWRlci0+ZG9jKCktPnNl
Y3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodXJsKSkgeworICAgICAgICBYTUxEb2N1bWVudFBh
cnNlclNjb3BlOjpjdXJyZW50RG9jTG9hZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UodXJs
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNDAwLDcgKzQwMCw3IEBAIHN0
YXRpYyBib29sIHNob3VsZEFsbG93RXh0ZXJuYWxMb2FkKGNvbnN0IEtVUkwmIHVybCkKIAogc3Rh
dGljIHZvaWQqIG9wZW5GdW5jKGNvbnN0IGNoYXIqIHVyaSkKIHsKLSAgICBBU1NFUlQoWE1MVG9r
ZW5pemVyU2NvcGU6OmN1cnJlbnREb2NMb2FkZXIpOworICAgIEFTU0VSVChYTUxEb2N1bWVudFBh
cnNlclNjb3BlOjpjdXJyZW50RG9jTG9hZGVyKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgp
ID09IGxpYnhtbExvYWRlclRocmVhZCk7CiAKICAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CkBA
IC00MTQsMTEgKzQxNCwxMSBAQCBzdGF0aWMgdm9pZCogb3BlbkZ1bmMoY29uc3QgY2hhciogdXJp
KQogCiAKICAgICB7Ci0gICAgICAgIERvY0xvYWRlciogZG9jTG9hZGVyID0gWE1MVG9rZW5pemVy
U2NvcGU6OmN1cnJlbnREb2NMb2FkZXI7Ci0gICAgICAgIFhNTFRva2VuaXplclNjb3BlIHNjb3Bl
KDApOworICAgICAgICBEb2NMb2FkZXIqIGRvY0xvYWRlciA9IFhNTERvY3VtZW50UGFyc2VyU2Nv
cGU6OmN1cnJlbnREb2NMb2FkZXI7CisgICAgICAgIFhNTERvY3VtZW50UGFyc2VyU2NvcGUgc2Nv
cGUoMCk7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVzdG9yZSB0aGUgb3JpZ2luYWwg
Z2xvYmFsIGVycm9yIGhhbmRsZXIgYXMgd2VsbC4KIAotICAgICAgICBpZiAoZG9jTG9hZGVyLT5m
cmFtZSgpKSAKKyAgICAgICAgaWYgKGRvY0xvYWRlci0+ZnJhbWUoKSkKICAgICAgICAgICAgIGRv
Y0xvYWRlci0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkodXJs
LCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgIH0K
IApAQCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyBpbnQgcmVhZEZ1bmModm9pZCogY29udGV4dCwg
Y2hhciogYnVmZmVyLCBpbnQgbGVuKQogICAgIC8vIERvIDAtYnl0ZSByZWFkcyBpbiBjYXNlIG9m
IGEgbnVsbCBkZXNjcmlwdG9yCiAgICAgaWYgKGNvbnRleHQgPT0gJmdsb2JhbERlc2NyaXB0b3Ip
CiAgICAgICAgIHJldHVybiAwOwotICAgICAgICAKKwogICAgIE9mZnNldEJ1ZmZlciogZGF0YSA9
IHN0YXRpY19jYXN0PE9mZnNldEJ1ZmZlcio+KGNvbnRleHQpOwogICAgIHJldHVybiBkYXRhLT5y
ZWFkT3V0Qnl0ZXMoYnVmZmVyLCBsZW4pOwogfQpAQCAtNTE3LDEzICs1MTcsMTMgQEAgUGFzc1Jl
ZlB0cjxYTUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJDb250ZXh0OjpjcmVhdGVNZW1vcnlQYXJz
ZXIoeG1sU0FYSGFuZGxlclAKICAgICBwYXJzZXItPnN0cl94bWxucyA9IHhtbERpY3RMb29rdXAo
cGFyc2VyLT5kaWN0LCBCQURfQ0FTVCAieG1sbnMiLCA1KTsKICAgICBwYXJzZXItPnN0cl94bWxf
bnMgPSB4bWxEaWN0TG9va3VwKHBhcnNlci0+ZGljdCwgWE1MX1hNTF9OQU1FU1BBQ0UsIDM2KTsK
ICAgICBwYXJzZXItPl9wcml2YXRlID0gdXNlckRhdGE7Ci0gICAgCisKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFhNTFBhcnNlckNvbnRleHQocGFyc2VyKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVhNTFRva2VuaXplcjo6WE1MVG9rZW5pemVyKERvY3Vt
ZW50KiBfZG9jLCBGcmFtZVZpZXcqIF92aWV3KQorWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3Vt
ZW50UGFyc2VyKERvY3VtZW50KiBfZG9jLCBGcmFtZVZpZXcqIF92aWV3KQogICAgIDogbV9kb2Mo
X2RvYykKICAgICAsIG1fdmlldyhfdmlldykKICAgICAsIG1fY29udGV4dCgwKQpAQCAtNTUwLDcg
KzU1MCw3IEBAIFhNTFRva2VuaXplcjo6WE1MVG9rZW5pemVyKERvY3VtZW50KiBfZG9jLCBGcmFt
ZVZpZXcqIF92aWV3KQogewogfQogCi1YTUxUb2tlbml6ZXI6OlhNTFRva2VuaXplcihEb2N1bWVu
dEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50RWxlbWVudCwgRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCitYTUxEb2N1bWVudFBhcnNlcjo6
WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBh
cmVudEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNz
aW9uKQogICAgIDogbV9kb2MoZnJhZ21lbnQtPmRvY3VtZW50KCkpCiAgICAgLCBtX3ZpZXcoMCkK
ICAgICAsIG1fY29udGV4dCgwKQpAQCAtNTc4LDIxICs1NzgsMjEgQEAgWE1MVG9rZW5pemVyOjpY
TUxUb2tlbml6ZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudEVs
ZW1lbnQsIEYKICAgICBmcmFnbWVudC0+cmVmKCk7CiAgICAgaWYgKG1fZG9jKQogICAgICAgICBt
X2RvYy0+cmVmKCk7Ci0gICAgICAgICAgCisKICAgICAvLyBBZGQgbmFtZXNwYWNlcyBiYXNlZCBv
biB0aGUgcGFyZW50IG5vZGUKICAgICBWZWN0b3I8RWxlbWVudCo+IGVsZW1TdGFjazsKICAgICB3
aGlsZSAocGFyZW50RWxlbWVudCkgewogICAgICAgICBlbGVtU3RhY2suYXBwZW5kKHBhcmVudEVs
ZW1lbnQpOwotICAgICAgICAKKwogICAgICAgICBOb2RlKiBuID0gcGFyZW50RWxlbWVudC0+cGFy
ZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW4gfHwgIW4tPmlzRWxlbWVudE5vZGUoKSkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG4pOwogICAgIH0KLSAgICAKKwogICAgIGlmIChlbGVtU3RhY2suaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgCisKICAgICBmb3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtU3Rh
Y2subGFzdCgpOyAhZWxlbVN0YWNrLmlzRW1wdHkoKTsgZWxlbVN0YWNrLnJlbW92ZUxhc3QoKSkg
ewogICAgICAgICBpZiAoTmFtZWROb2RlTWFwKiBhdHRycyA9IGVsZW1lbnQtPmF0dHJpYnV0ZXMo
KSkgewogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0dHJzLT5sZW5ndGgo
KTsgaSsrKSB7CkBAIC02MTcsNyArNjE3LDcgQEAgWE1MUGFyc2VyQ29udGV4dDo6flhNTFBhcnNl
ckNvbnRleHQoKQogICAgIHhtbEZyZWVQYXJzZXJDdHh0KG1fY29udGV4dCk7CiB9CiAKLVhNTFRv
a2VuaXplcjo6flhNTFRva2VuaXplcigpCitYTUxEb2N1bWVudFBhcnNlcjo6flhNTERvY3VtZW50
UGFyc2VyKCkKIHsKICAgICBjbGVhckN1cnJlbnROb2RlU3RhY2soKTsKICAgICBpZiAobV9wYXJz
aW5nRnJhZ21lbnQgJiYgbV9kb2MpCkBAIC02MjYsNyArNjI2LDcgQEAgWE1MVG9rZW5pemVyOjp+
WE1MVG9rZW5pemVyKCkKICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5yZW1vdmVDbGllbnQodGhp
cyk7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpkb1dyaXRlKGNvbnN0IFN0cmluZyYgcGFyc2VT
dHJpbmcpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkb1dyaXRlKGNvbnN0IFN0cmluZyYgcGFy
c2VTdHJpbmcpCiB7CiAgICAgaWYgKCFtX2NvbnRleHQpCiAgICAgICAgIGluaXRpYWxpemVQYXJz
ZXJDb250ZXh0KCk7CkBAIC02MzgsMTYgKzYzOCwxNiBAQCB2b2lkIFhNTFRva2VuaXplcjo6ZG9X
cml0ZShjb25zdCBTdHJpbmcmIHBhcnNlU3RyaW5nKQogICAgIGlmIChwYXJzZVN0cmluZy5sZW5n
dGgoKSkgewogICAgICAgICAvLyBIYWNrIGFyb3VuZCBsaWJ4bWwyJ3MgbGFjayBvZiBlbmNvZGlu
ZyBvdmVyaWRlIHN1cHBvcnQgYnkgbWFudWFsbHkKICAgICAgICAgLy8gcmVzZXR0aW5nIHRoZSBl
bmNvZGluZyB0byBVVEYtMTYgYmVmb3JlIGV2ZXJ5IGNodW5rLiAgT3RoZXJ3aXNlIGxpYnhtbAot
ICAgICAgICAvLyB3aWxsIGRldGVjdCA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSI8ZW5j
b2RpbmcgbmFtZT4iPz4gYmxvY2tzIAorICAgICAgICAvLyB3aWxsIGRldGVjdCA8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSI8ZW5jb2RpbmcgbmFtZT4iPz4gYmxvY2tzCiAgICAgICAgIC8v
IGFuZCBzd2l0Y2ggZW5jb2RpbmdzLCBjYXVzaW5nIHRoZSBwYXJzZSB0byBmYWlsLgogICAgICAg
ICBjb25zdCBVQ2hhciBCT00gPSAweEZFRkY7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg
Qk9NSGlnaEJ5dGUgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oJkJP
TSk7CiAgICAgICAgIHhtbFN3aXRjaEVuY29kaW5nKGNvbnRleHQtPmNvbnRleHQoKSwgQk9NSGln
aEJ5dGUgPT0gMHhGRiA/IFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUgOiBYTUxfQ0hBUl9FTkNP
RElOR19VVEYxNkJFKTsKIAotICAgICAgICBYTUxUb2tlbml6ZXJTY29wZSBzY29wZShtX2RvYy0+
ZG9jTG9hZGVyKCkpOworICAgICAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKG1fZG9j
LT5kb2NMb2FkZXIoKSk7CiAgICAgICAgIHhtbFBhcnNlQ2h1bmsoY29udGV4dC0+Y29udGV4dCgp
LCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihwYXJzZVN0cmluZy5jaGFyYWN0ZXJzKCkp
LCBzaXplb2YoVUNoYXIpICogcGFyc2VTdHJpbmcubGVuZ3RoKCksIDApOwogICAgIH0KLSAgICAK
KwogICAgIGlmIChtX2RvYy0+ZGVjb2RlcigpICYmIG1fZG9jLT5kZWNvZGVyKCktPnNhd0Vycm9y
KCkpIHsKICAgICAgICAgLy8gSWYgdGhlIGRlY29kZXIgc2F3IGFuIGVycm9yLCByZXBvcnQgaXQg
YXMgZmF0YWwgKHN0b3BzIHBhcnNpbmcpCiAgICAgICAgIGhhbmRsZUVycm9yKGZhdGFsLCAiRW5j
b2RpbmcgZXJyb3IiLCBjb250ZXh0LT5jb250ZXh0KCktPmlucHV0LT5saW5lLCBjb250ZXh0LT5j
b250ZXh0KCktPmlucHV0LT5jb2wpOwpAQCAtNjY1LDcgKzY2NSw3IEBAIHN0YXRpYyBpbmxpbmUg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IHhtbENoYXIqIHN0cikKIHsKICAgICBpZiAoIXN0cikKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIAorCiAgICAgcmV0dXJuIFVURjhFbmNvZGluZygp
LmRlY29kZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzdHIpLCBzdHJsZW4ocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3RyKSkpOwogfQogCkBAIC03MDgsMjYgKzcwOCwyNiBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgaGFuZGxlRWxlbWVudEF0dHJpYnV0ZXMoRWxlbWVudCogbmV3
RWxlbWVudCwgY29uc3QgeG1sQ2hhcioqCiAgICAgICAgIFN0cmluZyBhdHRyUHJlZml4ID0gdG9T
dHJpbmcoYXR0cmlidXRlc1tpXS5wcmVmaXgpOwogICAgICAgICBTdHJpbmcgYXR0clVSSSA9IGF0
dHJQcmVmaXguaXNFbXB0eSgpID8gU3RyaW5nKCkgOiB0b1N0cmluZyhhdHRyaWJ1dGVzW2ldLnVy
aSk7CiAgICAgICAgIFN0cmluZyBhdHRyUU5hbWUgPSBhdHRyUHJlZml4LmlzRW1wdHkoKSA/IGF0
dHJMb2NhbE5hbWUgOiBhdHRyUHJlZml4ICsgIjoiICsgYXR0ckxvY2FsTmFtZTsKLSAgICAgICAg
CisKICAgICAgICAgbmV3RWxlbWVudC0+c2V0QXR0cmlidXRlTlMoYXR0clVSSSwgYXR0clFOYW1l
LCBhdHRyVmFsdWUsIGVjLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICAgICAgaWYgKGVjKSAv
LyBleGNlcHRpb24gc2V0dGluZyBhdHRyaWJ1dGVzCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogfQogCi12b2lkIFhNTFRva2VuaXplcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciog
eG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGFyKiB4bWxQcmVmaXgsIGNvbnN0IHhtbENoYXIqIHht
bFVSSSwgaW50IG5iX25hbWVzcGFjZXMsCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVs
ZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIqIHhtbFBy
ZWZpeCwgY29uc3QgeG1sQ2hhciogeG1sVVJJLCBpbnQgbmJfbmFtZXNwYWNlcywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyKiogbGlieG1sTmFtZXNwYWNl
cywgaW50IG5iX2F0dHJpYnV0ZXMsIGludCBuYl9kZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBs
aWJ4bWxBdHRyaWJ1dGVzKQogewogICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKKwogICAgIGlmIChtX3BhcnNlclBhdXNlZCkgewogICAgICAgICBtX3BlbmRp
bmdDYWxsYmFja3MtPmFwcGVuZFN0YXJ0RWxlbWVudE5TQ2FsbGJhY2soeG1sTG9jYWxOYW1lLCB4
bWxQcmVmaXgsIHhtbFVSSSwgbmJfbmFtZXNwYWNlcywgbGlieG1sTmFtZXNwYWNlcywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iX2F0
dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCwgbGlieG1sQXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSNpZiBFTkFCTEUoWEhUTUxNUCkgCisjaWYgRU5BQkxFKFhIVE1MTVApCiAg
ICAgLy8gY2hlY2sgaWYgdGhlIERPQ1RZUEUgRGVjbGFyYXRpb24gb2YgWEhUTUxNUCBkb2N1bWVu
dCBleGlzdHMKICAgICBpZiAoIW1faGFzRG9jVHlwZURlY2xhcmF0aW9uICYmIG1fZG9jLT5pc1hI
VE1MTVBEb2N1bWVudCgpKSB7CiAgICAgICAgIGhhbmRsZUVycm9yKGZhdGFsLCAiRE9DVFlQRSBk
ZWNsYXJhdGlvbiBsb3N0LiIsIGxpbmVOdW1iZXIoKSwgY29sdW1uTnVtYmVyKCkpOwpAQCAtNzUw
LDkgKzc1MCw5IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxD
aGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIqIHhtCiAKICNpZiBFTkFCTEUoWEhUTUxN
UCkKICAgICBpZiAoIW1fc2F3Rmlyc3RFbGVtZW50ICYmIGlzWEhUTUxNUERvY3VtZW50KCkpIHsK
LSAgICAgICAgLy8gQXMgcGVyIHRoZSBzZWN0aW9uIDcuMSBvZiBPTUEtV0FQLVhIVE1MTVAtVjFf
MS0yMDA2MTAyMC1BLnBkZiwgCi0gICAgICAgIC8vIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0
aGUgcm9vdCBlbGVtZW50IE1VU1QgYmUgJ2h0bWwnIGFuZCAKLSAgICAgICAgLy8gZW5zdXJlIHRo
ZSBuYW1lIG9mIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBvbiB0aGUgcm9vdCBlbG1lbnQgJ2h0bWwn
IAorICAgICAgICAvLyBBcyBwZXIgdGhlIHNlY3Rpb24gNy4xIG9mIE9NQS1XQVAtWEhUTUxNUC1W
MV8xLTIwMDYxMDIwLUEucGRmLAorICAgICAgICAvLyB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQg
dGhlIHJvb3QgZWxlbWVudCBNVVNUIGJlICdodG1sJyBhbmQKKyAgICAgICAgLy8gZW5zdXJlIHRo
ZSBuYW1lIG9mIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBvbiB0aGUgcm9vdCBlbG1lbnQgJ2h0bWwn
CiAgICAgICAgIC8vIE1VU1QgYmUgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCiAgICAg
ICAgIGlmIChsb2NhbE5hbWUgIT0gSFRNTE5hbWVzOjpodG1sVGFnLmxvY2FsTmFtZSgpKSB7CiAg
ICAgICAgICAgICBoYW5kbGVFcnJvcihmYXRhbCwgIlhIVE1MTVAgZG9jdW1lbnQgZXhwZWN0cyAn
aHRtbCcgYXMgcm9vdCBlbGVtZW50LiIsIGxpbmVOdW1iZXIoKSwgY29sdW1uTnVtYmVyKCkpOwpA
QCAtNzYwLDcgKzc2MCw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpzdGFydEVsZW1lbnROcyhjb25z
dCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIqIHhtCiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAodXJpLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBtX2RlZmF1bHROYW1lc3Bh
Y2VVUkkgPSBIVE1MTmFtZXM6OnhodG1sTmFtZXNwYWNlVVJJOyAKKyAgICAgICAgICAgIG1fZGVm
YXVsdE5hbWVzcGFjZVVSSSA9IEhUTUxOYW1lczo6eGh0bWxOYW1lc3BhY2VVUkk7CiAgICAgICAg
ICAgICB1cmkgPSBtX2RlZmF1bHROYW1lc3BhY2VVUkk7CiAgICAgICAgIH0KICAgICB9CkBAIC03
NzUsNyArNzc1LDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHht
bENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogeG0KICAgICAgICAgc3RvcFBhcnNp
bmcoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIGhhbmRsZUVsZW1lbnROYW1lc3BhY2VzKG5ld0VsZW1lbnQuZ2V0KCksIGxp
YnhtbE5hbWVzcGFjZXMsIG5iX25hbWVzcGFjZXMsIGVjLCBtX3NjcmlwdGluZ1Blcm1pc3Npb24p
OwogICAgIGlmIChlYykgewpAQCAtODE1LDcgKzgxNSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpz
dGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIq
IHhtCiAgICAgICAgIG1fZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVs
ZW1lbnRBdmFpbGFibGUoKTsKIH0KIAotdm9pZCBYTUxUb2tlbml6ZXI6OmVuZEVsZW1lbnROcygp
Cit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMoKQogewogICAgIGlmIChtX3Bh
cnNlclN0b3BwZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTgyNCw3ICs4MjQsNyBAQCB2b2lkIFhN
TFRva2VuaXplcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5h
cHBlbmRFbmRFbGVtZW50TlNDYWxsYmFjaygpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IAorCiAgICAgZXhpdFRleHQoKTsKIAogICAgIE5vZGUqIG4gPSBtX2N1cnJlbnROb2RlOwpAQCAt
ODMyLDExICs4MzIsMTEgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmVuZEVsZW1lbnROcygpCiAKICAg
ICBpZiAobV9zY3JpcHRpbmdQZXJtaXNzaW9uID09IEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dl
ZCAmJiBuLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9TY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKSkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKLSAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYzsgICAgICAgCisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAgIG4t
PnJlbW92ZShlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAoIW4t
PmlzRWxlbWVudE5vZGUoKSB8fCAhbV92aWV3KSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7
CiAgICAgICAgIHJldHVybjsKQEAgLTg2NCwxMiArODY0LDEyIEBAIHZvaWQgWE1MVG9rZW5pemVy
OjplbmRFbGVtZW50TnMoKQogI2lmIEVOQUJMRShYSFRNTE1QKQogICAgIGlmICghc2NyaXB0RWxl
bWVudC0+c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpKQogICAgICAgICBtX2RvYy0+c2V0U2hv
dWxkUHJvY2Vzc05vc2NyaXB0RWxlbWVudCh0cnVlKTsKLSAgICBlbHNlIAorICAgIGVsc2UKICNl
bmRpZgogICAgIHsKICAgICAgICAgU3RyaW5nIHNjcmlwdEhyZWYgPSBzY3JpcHRFbGVtZW50LT5z
b3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOwogICAgICAgICBpZiAoIXNjcmlwdEhyZWYuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICAvLyB3ZSBoYXZlIGEgc3JjIGF0dHJpYnV0ZSAKKyAgICAgICAgICAg
IC8vIHdlIGhhdmUgYSBzcmMgYXR0cmlidXRlCiAgICAgICAgICAgICBTdHJpbmcgc2NyaXB0Q2hh
cnNldCA9IHNjcmlwdEVsZW1lbnQtPnNjcmlwdENoYXJzZXQoKTsKICAgICAgICAgICAgIGlmIChl
bGVtZW50LT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzY3JpcHRIcmVmKSAmJgogICAgICAgICAg
ICAgICAgIChtX3BlbmRpbmdTY3JpcHQgPSBtX2RvYy0+ZG9jTG9hZGVyKCktPnJlcXVlc3RTY3Jp
cHQoc2NyaXB0SHJlZiwgc2NyaXB0Q2hhcnNldCkpKSB7CkBAIC04NzksNyArODc5LDcgQEAgdm9p
ZCBYTUxUb2tlbml6ZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgICAgICAgICAgLy8gbV9wZW5k
aW5nU2NyaXB0IHdpbGwgYmUgMCBpZiBzY3JpcHQgd2FzIGFscmVhZHkgbG9hZGVkIGFuZCByZWYo
KSBleGVjdXRlZCBpdAogICAgICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTY3JpcHQpCiAgICAg
ICAgICAgICAgICAgICAgIHBhdXNlUGFyc2luZygpOwotICAgICAgICAgICAgfSBlbHNlIAorICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9zY3JpcHRFbGVtZW50ID0gMDsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3ZpZXctPmZyYW1lKCktPnNjcmlwdCgpLT5leGVj
dXRlU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC0+c2NyaXB0Q29udGVudCgp
LCBtX2RvYy0+dXJsKCksIG1fc2NyaXB0U3RhcnRMaW5lKSk7CkBAIC04ODgsMjEgKzg4OCwyMSBA
QCB2b2lkIFhNTFRva2VuaXplcjo6ZW5kRWxlbWVudE5zKCkKICAgICBwb3BDdXJyZW50Tm9kZSgp
OwogfQogCi12b2lkIFhNTFRva2VuaXplcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBp
bnQgbGVuKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFy
KiBzLCBpbnQgbGVuKQogewogICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKKwogICAgIGlmIChtX3BhcnNlclBhdXNlZCkgewogICAgICAgICBtX3BlbmRpbmdD
YWxsYmFja3MtPmFwcGVuZENoYXJhY3RlcnNDYWxsYmFjayhzLCBsZW4pOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIAorCiAgICAgaWYgKG1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSB8
fCBlbnRlclRleHQoKSkKICAgICAgICAgbV9idWZmZXJlZFRleHQuYXBwZW5kKHMsIGxlbik7CiB9
CiAKLXZvaWQgWE1MVG9rZW5pemVyOjplcnJvcihFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciog
bWVzc2FnZSwgdmFfbGlzdCBhcmdzKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXJyb3IoRXJy
b3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZhX2xpc3QgYXJncykKIHsKICAgICBp
ZiAobV9wYXJzZXJTdG9wcGVkKQogICAgICAgICByZXR1cm47CkBAIC05MTUsNyArOTE1LDcgQEAg
dm9pZCBYTUxUb2tlbml6ZXI6OmVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtZXNz
YWdlLCB2YV9saXN0IGFyZ3MpCiAgICAgaWYgKHZhc3ByaW50ZigmbSwgbWVzc2FnZSwgYXJncykg
PT0gLTEpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIAorCiAgICAgaWYgKG1fcGFyc2Vy
UGF1c2VkKQogICAgICAgICBtX3BlbmRpbmdDYWxsYmFja3MtPmFwcGVuZEVycm9yQ2FsbGJhY2so
dHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB4bWxDaGFyKj4obSksIGxpbmVOdW1iZXIoKSwg
Y29sdW1uTnVtYmVyKCkpOwogICAgIGVsc2UKQEAgLTkyNiw3ICs5MjYsNyBAQCB2b2lkIFhNTFRv
a2VuaXplcjo6ZXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZhX2xp
c3QgYXJncykKICNlbmRpZgogfQogCi12b2lkIFhNTFRva2VuaXplcjo6cHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKGNvbnN0IHhtbENoYXIqIHRhcmdldCwgY29uc3QgeG1sQ2hhciogZGF0YSkKK3ZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbihjb25zdCB4bWxDaGFyKiB0
YXJnZXQsIGNvbnN0IHhtbENoYXIqIGRhdGEpCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkK
ICAgICAgICAgcmV0dXJuOwpAQCAtOTM1LDcgKzkzNSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4bWxDaGFy
KiBkCiAgICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kUHJvY2Vzc2luZ0luc3RydWN0
aW9uQ2FsbGJhY2sodGFyZ2V0LCBkYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAK
KwogICAgIGV4aXRUZXh0KCk7CiAKICAgICAvLyAjIyMgaGFuZGxlIGV4Y2VwdGlvbnMKQEAgLTk0
Niw3ICs5NDYsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cHJvY2Vzc2luZ0luc3RydWN0aW9uKGNv
bnN0IHhtbENoYXIqIHRhcmdldCwgY29uc3QgeG1sQ2hhciogZAogICAgICAgICByZXR1cm47CiAK
ICAgICBwaS0+c2V0Q3JlYXRlZEJ5UGFyc2VyKHRydWUpOwotICAgIAorCiAgICAgaWYgKCFtX2N1
cnJlbnROb2RlLT5hZGRDaGlsZChwaS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
bV92aWV3ICYmICFwaS0+YXR0YWNoZWQoKSkKQEAgLTk2MSw3ICs5NjEsNyBAQCB2b2lkIFhNTFRv
a2VuaXplcjo6cHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IHhtbENoYXIqIHRhcmdldCwgY29u
c3QgeG1sQ2hhciogZAogI2VuZGlmCiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpjZGF0YUJsb2Nr
KGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjZGF0
YUJsb2NrKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiB7CiAgICAgaWYgKG1fcGFyc2VyU3Rv
cHBlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTcwLDcgKzk3MCw3IEBAIHZvaWQgWE1MVG9rZW5p
emVyOjpjZGF0YUJsb2NrKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiAgICAgICAgIG1fcGVu
ZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ0RBVEFCbG9ja0NhbGxiYWNrKHMsIGxlbik7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBleGl0VGV4dCgpOwogCiAgICAgUmVmUHRyPE5v
ZGU+IG5ld05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShtX2RvYywgdG9TdHJpbmcocywgbGVu
KSk7CkBAIC05ODAsNyArOTgwLDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmNkYXRhQmxvY2soY29u
c3QgeG1sQ2hhciogcywgaW50IGxlbikKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9CiAK
LXZvaWQgWE1MVG9rZW5pemVyOjpjb21tZW50KGNvbnN0IHhtbENoYXIqIHMpCit2b2lkIFhNTERv
Y3VtZW50UGFyc2VyOjpjb21tZW50KGNvbnN0IHhtbENoYXIqIHMpCiB7CiAgICAgaWYgKG1fcGFy
c2VyU3RvcHBlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTg5LDcgKzk4OSw3IEBAIHZvaWQgWE1M
VG9rZW5pemVyOjpjb21tZW50KGNvbnN0IHhtbENoYXIqIHMpCiAgICAgICAgIG1fcGVuZGluZ0Nh
bGxiYWNrcy0+YXBwZW5kQ29tbWVudENhbGxiYWNrKHMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgZXhpdFRleHQoKTsKIAogICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0g
Q29tbWVudDo6Y3JlYXRlKG1fZG9jLCB0b1N0cmluZyhzKSk7CkBAIC05OTgsNyArOTk4LDcgQEAg
dm9pZCBYTUxUb2tlbml6ZXI6OmNvbW1lbnQoY29uc3QgeG1sQ2hhciogcykKICAgICAgICAgbmV3
Tm9kZS0+YXR0YWNoKCk7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpzdGFydERvY3VtZW50KGNv
bnN0IHhtbENoYXIqIHZlcnNpb24sIGNvbnN0IHhtbENoYXIqIGVuY29kaW5nLCBpbnQgc3RhbmRh
bG9uZSkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RG9jdW1lbnQoY29uc3QgeG1sQ2hh
ciogdmVyc2lvbiwgY29uc3QgeG1sQ2hhciogZW5jb2RpbmcsIGludCBzdGFuZGFsb25lKQogewog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCkBAIC0xMDA5LDcgKzEwMDksNyBAQCB2b2lkIFhN
TFRva2VuaXplcjo6c3RhcnREb2N1bWVudChjb25zdCB4bWxDaGFyKiB2ZXJzaW9uLCBjb25zdCB4
bWxDaGFyKiBlbmNvZGluZwogICAgICAgICBtX2RvYy0+c2V0WE1MRW5jb2RpbmcodG9TdHJpbmco
ZW5jb2RpbmcpKTsKIH0KIAotdm9pZCBYTUxUb2tlbml6ZXI6OmVuZERvY3VtZW50KCkKK3ZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmVuZERvY3VtZW50KCkKIHsKICAgICBleGl0VGV4dCgpOwogI2lm
IEVOQUJMRShYSFRNTE1QKQpAQCAtMTAxNyw3ICsxMDE3LDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6
OmVuZERvY3VtZW50KCkKICNlbmRpZgogfQogCi12b2lkIFhNTFRva2VuaXplcjo6aW50ZXJuYWxT
dWJzZXQoY29uc3QgeG1sQ2hhciogbmFtZSwgY29uc3QgeG1sQ2hhciogZXh0ZXJuYWxJRCwgY29u
c3QgeG1sQ2hhciogc3lzdGVtSUQpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjppbnRlcm5hbFN1
YnNldChjb25zdCB4bWxDaGFyKiBuYW1lLCBjb25zdCB4bWxDaGFyKiBleHRlcm5hbElELCBjb25z
dCB4bWxDaGFyKiBzeXN0ZW1JRCkKIHsKICAgICBpZiAobV9wYXJzZXJTdG9wcGVkKQogICAgICAg
ICByZXR1cm47CkBAIC0xMDI2LDcgKzEwMjYsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJu
YWxTdWJzZXQoY29uc3QgeG1sQ2hhciogbmFtZSwgY29uc3QgeG1sQ2hhciogZXh0ZXJuYWxJRAog
ICAgICAgICBtX3BlbmRpbmdDYWxsYmFja3MtPmFwcGVuZEludGVybmFsU3Vic2V0Q2FsbGJhY2so
bmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IAorCiAgICAgaWYgKG1fZG9jKSB7CiAjaWYgRU5BQkxFKFdNTCkgfHwgRU5BQkxFKFhIVE1MTVAp
CiAgICAgICAgIFN0cmluZyBleHRJZCA9IHRvU3RyaW5nKGV4dGVybmFsSUQpOwpAQCAtMTA0Niw3
ICsxMDQ2LDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmludGVybmFsU3Vic2V0KGNvbnN0IHhtbENo
YXIqIG5hbWUsIGNvbnN0IHhtbENoYXIqIGV4dGVybmFsSUQKICAgICAgICAgICAgIGlmIChkdGRO
YW1lICE9IEhUTUxOYW1lczo6aHRtbFRhZy5sb2NhbE5hbWUoKSkgewogICAgICAgICAgICAgICAg
IGhhbmRsZUVycm9yKGZhdGFsLCAiSW52YWxpZCBET0NUWVBFIGRlY2xhcmF0aW9uLCBleHBlY3Rl
ZCAnaHRtbCcgYXMgcm9vdCBlbGVtZW50LiIsIGxpbmVOdW1iZXIoKSwgY29sdW1uTnVtYmVyKCkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGlmIChtX2RvYy0+aXNYSFRNTE1QRG9jdW1lbnQoKSkKICAgICAgICAg
ICAgICAgICBzZXRJc1hIVE1MTVBEb2N1bWVudCh0cnVlKTsKQEAgLTEwNjEsMTAgKzEwNjEsMTAg
QEAgdm9pZCBYTUxUb2tlbml6ZXI6OmludGVybmFsU3Vic2V0KGNvbnN0IHhtbENoYXIqIG5hbWUs
IGNvbnN0IHhtbENoYXIqIGV4dGVybmFsSUQKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgWE1M
VG9rZW5pemVyKiBnZXRUb2tlbml6ZXIodm9pZCogY2xvc3VyZSkKK3N0YXRpYyBpbmxpbmUgWE1M
RG9jdW1lbnRQYXJzZXIqIGdldFRva2VuaXplcih2b2lkKiBjbG9zdXJlKQogewogICAgIHhtbFBh
cnNlckN0eHRQdHIgY3R4dCA9IHN0YXRpY19jYXN0PHhtbFBhcnNlckN0eHRQdHI+KGNsb3N1cmUp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxYTUxUb2tlbml6ZXIqPihjdHh0LT5fcHJpdmF0ZSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFhNTERvY3VtZW50UGFyc2VyKj4oY3R4dC0+X3ByaXZh
dGUpOwogfQogCiAvLyBUaGlzIGlzIGEgaGFjayBhcm91bmQgaHR0cDovL2J1Z3ppbGxhLmdub21l
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MjE5CkBAIC0xMDkzLDcgKzEwOTMsNyBAQCBzdGF0aWMg
dm9pZCBlbmRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqLCBj
b25zdCB4bWxDaGFyKiwgYwogewogICAgIGlmIChoYWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKGNs
b3N1cmUpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBnZXRUb2tlbml6ZXIoY2xvc3Vy
ZSktPmVuZEVsZW1lbnROcygpOwogfQogCkBAIC0xMTAxLDcgKzExMDEsNyBAQCBzdGF0aWMgdm9p
ZCBjaGFyYWN0ZXJzSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBzLCBpbnQg
bGVuKQogewogICAgIGlmIChoYWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKGNsb3N1cmUpKQogICAg
ICAgICByZXR1cm47Ci0gICAgCisKICAgICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmNoYXJhY3Rl
cnMocywgbGVuKTsKIH0KIApAQCAtMTEwOSw3ICsxMTA5LDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vz
c2luZ0luc3RydWN0aW9uSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiB0YXJn
ZXQsIGMKIHsKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5wcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCBkYXRhKTsKIH0KIApAQCAtMTExNyw3ICsxMTE3LDcgQEAg
c3RhdGljIHZvaWQgY2RhdGFCbG9ja0hhbmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hh
ciogcywgaW50IGxlbikKIHsKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9z
dXJlKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUp
LT5jZGF0YUJsb2NrKHMsIGxlbik7CiB9CiAKQEAgLTExMjUsNyArMTEyNSw3IEBAIHN0YXRpYyB2
b2lkIGNvbW1lbnRIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIGNvbW1lbnQp
CiB7CiAgICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlCdWcoY2xvc3VyZSkpCiAgICAgICAg
IHJldHVybjsKLSAgICAKKwogICAgIGdldFRva2VuaXplcihjbG9zdXJlKS0+Y29tbWVudChjb21t
ZW50KTsKIH0KIApAQCAtMTEzNCw3ICsxMTM0LDcgQEAgc3RhdGljIHZvaWQgd2FybmluZ0hhbmRs
ZXIodm9pZCogY2xvc3VyZSwgY29uc3QgY2hhciogbWVzc2FnZSwgLi4uKQogewogICAgIHZhX2xp
c3QgYXJnczsKICAgICB2YV9zdGFydChhcmdzLCBtZXNzYWdlKTsKLSAgICBnZXRUb2tlbml6ZXIo
Y2xvc3VyZSktPmVycm9yKFhNTFRva2VuaXplcjo6d2FybmluZywgbWVzc2FnZSwgYXJncyk7Cisg
ICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5lcnJvcihYTUxEb2N1bWVudFBhcnNlcjo6d2Fybmlu
ZywgbWVzc2FnZSwgYXJncyk7CiAgICAgdmFfZW5kKGFyZ3MpOwogfQogCkBAIC0xMTQzLDcgKzEx
NDMsNyBAQCBzdGF0aWMgdm9pZCBmYXRhbEVycm9ySGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25z
dCBjaGFyKiBtZXNzYWdlLCAuLi4pCiB7CiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0
KGFyZ3MsIG1lc3NhZ2UpOwotICAgIGdldFRva2VuaXplcihjbG9zdXJlKS0+ZXJyb3IoWE1MVG9r
ZW5pemVyOjpmYXRhbCwgbWVzc2FnZSwgYXJncyk7CisgICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUp
LT5lcnJvcihYTUxEb2N1bWVudFBhcnNlcjo6ZmF0YWwsIG1lc3NhZ2UsIGFyZ3MpOwogICAgIHZh
X2VuZChhcmdzKTsKIH0KIApAQCAtMTE1Miw3ICsxMTUyLDcgQEAgc3RhdGljIHZvaWQgbm9ybWFs
RXJyb3JIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIC4uLikKIHsK
ICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgbWVzc2FnZSk7Ci0gICAgZ2V0
VG9rZW5pemVyKGNsb3N1cmUpLT5lcnJvcihYTUxUb2tlbml6ZXI6Om5vbkZhdGFsLCBtZXNzYWdl
LCBhcmdzKTsKKyAgICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmVycm9yKFhNTERvY3VtZW50UGFy
c2VyOjpub25GYXRhbCwgbWVzc2FnZSwgYXJncyk7CiAgICAgdmFfZW5kKGFyZ3MpOwogfQogCkBA
IC0xMjExLDcgKzEyMTEsNyBAQCBzdGF0aWMgeG1sRW50aXR5UHRyIGdldEVudGl0eUhhbmRsZXIo
dm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogbmFtZSkKICAgICAgICAgaWYgKGVudCkKICAg
ICAgICAgICAgIGVudC0+ZXR5cGUgPSBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFk7CiAgICAg
fQotICAgIAorCiAgICAgcmV0dXJuIGVudDsKIH0KIApAQCAtMTI1Niw3ICsxMjU2LDcgQEAgc3Rh
dGljIHZvaWQgaWdub3JhYmxlV2hpdGVzcGFjZUhhbmRsZXIodm9pZCosIGNvbnN0IHhtbENoYXIq
LCBpbnQpCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5
MgogfQogCi12b2lkIFhNTFRva2VuaXplcjo6aW5pdGlhbGl6ZVBhcnNlckNvbnRleHQoY29uc3Qg
Y2hhciogY2h1bmspCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjppbml0aWFsaXplUGFyc2VyQ29u
dGV4dChjb25zdCBjaGFyKiBjaHVuaykKIHsKICAgICB4bWxTQVhIYW5kbGVyIHNheDsKICAgICBt
ZW1zZXQoJnNheCwgMCwgc2l6ZW9mKHNheCkpOwpAQCAtMTI4MywyMCArMTI4MywyMCBAQCB2b2lk
IFhNTFRva2VuaXplcjo6aW5pdGlhbGl6ZVBhcnNlckNvbnRleHQoY29uc3QgY2hhciogY2h1bmsp
CiAgICAgbV9zYXdYU0xUcmFuc2Zvcm0gPSBmYWxzZTsKICAgICBtX3Nhd0ZpcnN0RWxlbWVudCA9
IGZhbHNlOwogCi0gICAgWE1MVG9rZW5pemVyU2NvcGUgc2NvcGUobV9kb2MtPmRvY0xvYWRlcigp
KTsKKyAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKG1fZG9jLT5kb2NMb2FkZXIoKSk7
CiAgICAgaWYgKG1fcGFyc2luZ0ZyYWdtZW50KQogICAgICAgICBtX2NvbnRleHQgPSBYTUxQYXJz
ZXJDb250ZXh0OjpjcmVhdGVNZW1vcnlQYXJzZXIoJnNheCwgdGhpcywgY2h1bmspOwogICAgIGVs
c2UKICAgICAgICAgbV9jb250ZXh0ID0gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlU3RyaW5nUGFy
c2VyKCZzYXgsIHRoaXMpOwogfQogCi12b2lkIFhNTFRva2VuaXplcjo6ZG9FbmQoKQordm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6ZG9FbmQoKQogewogI2lmIEVOQUJMRShYU0xUKQogICAgIGlmICht
X3Nhd1hTTFRyYW5zZm9ybSkgewogICAgICAgICB2b2lkKiBkb2MgPSB4bWxEb2NQdHJGb3JTdHJp
bmcobV9kb2MtPmRvY0xvYWRlcigpLCBtX29yaWdpbmFsU291cmNlRm9yVHJhbnNmb3JtLCBtX2Rv
Yy0+dXJsKCkuc3RyaW5nKCkpOwogICAgICAgICBtX2RvYy0+c2V0VHJhbnNmb3JtU291cmNlKG5l
dyBUcmFuc2Zvcm1Tb3VyY2UoZG9jKSk7Ci0gICAgICAgIAorCiAgICAgICAgIG1fZG9jLT5zZXRQ
YXJzaW5nKGZhbHNlKTsgLy8gTWFrZSB0aGUgZG9jIHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2ls
bCBhcHBseSB4c2wgc2hlZXRzLgogICAgICAgICBtX2RvYy0+dXBkYXRlU3R5bGVTZWxlY3Rvcigp
OwogICAgICAgICBtX2RvYy0+c2V0UGFyc2luZyh0cnVlKTsKQEAgLTEzMTAsNyArMTMxMCw3IEBA
IHZvaWQgWE1MVG9rZW5pemVyOjpkb0VuZCgpCiAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAg
ICAvLyBUZWxsIGxpYnhtbCB3ZSdyZSBkb25lLgogICAgICAgICB7Ci0gICAgICAgICAgICBYTUxU
b2tlbml6ZXJTY29wZSBzY29wZShtX2RvYy0+ZG9jTG9hZGVyKCkpOworICAgICAgICAgICAgWE1M
RG9jdW1lbnRQYXJzZXJTY29wZSBzY29wZShtX2RvYy0+ZG9jTG9hZGVyKCkpOwogICAgICAgICAg
ICAgeG1sUGFyc2VDaHVuayhjb250ZXh0KCksIDAsIDAsIDEpOwogICAgICAgICB9CiAKQEAgLTEz
MzAsNDMgKzEzMzAsNDMgQEAgdm9pZCogeG1sRG9jUHRyRm9yU3RyaW5nKERvY0xvYWRlciogZG9j
TG9hZGVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW4KICAgICBjb25zdCBVQ2hh
ciBCT00gPSAweEZFRkY7CiAgICAgY29uc3QgdW5zaWduZWQgY2hhciBCT01IaWdoQnl0ZSA9ICpy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigmQk9NKTsKIAotICAgIFhNTFRv
a2VuaXplclNjb3BlIHNjb3BlKGRvY0xvYWRlciwgZXJyb3JGdW5jLCAwKTsKKyAgICBYTUxEb2N1
bWVudFBhcnNlclNjb3BlIHNjb3BlKGRvY0xvYWRlciwgZXJyb3JGdW5jLCAwKTsKICAgICB4bWxE
b2NQdHIgc291cmNlRG9jID0geG1sUmVhZE1lbW9yeShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihzb3VyY2UuY2hhcmFjdGVycygpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2UubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5sYXRpbjEoKS5kYXRhKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9NSGlnaEJ5dGUgPT0gMHhGRiA/ICJV
VEYtMTZMRSIgOiAiVVRGLTE2QkUiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBCT01IaWdoQnl0ZSA9PSAweEZGID8gIlVURi0xNkxFIiA6ICJVVEYtMTZCRSIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFNMVF9QQVJTRV9PUFRJT05T
KTsKICAgICByZXR1cm4gc291cmNlRG9jOwogfQogI2VuZGlmCiAKLWludCBYTUxUb2tlbml6ZXI6
OmxpbmVOdW1iZXIoKSBjb25zdAoraW50IFhNTERvY3VtZW50UGFyc2VyOjpsaW5lTnVtYmVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gY29udGV4dCgpID8gY29udGV4dCgpLT5pbnB1dC0+bGluZSA6
IDE7CiB9CiAKLWludCBYTUxUb2tlbml6ZXI6OmNvbHVtbk51bWJlcigpIGNvbnN0CitpbnQgWE1M
RG9jdW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbnRl
eHQoKSA/IGNvbnRleHQoKS0+aW5wdXQtPmNvbCA6IDE7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVy
OjpzdG9wUGFyc2luZygpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpCiB7
CiAgICAgRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCk7CiAgICAgaWYgKGNvbnRleHQoKSkK
ICAgICAgICAgeG1sU3RvcFBhcnNlcihjb250ZXh0KCkpOwogfQogCi12b2lkIFhNTFRva2VuaXpl
cjo6cmVzdW1lUGFyc2luZygpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5n
KCkKIHsKICAgICBBU1NFUlQobV9wYXJzZXJQYXVzZWQpOwotICAgIAorCiAgICAgbV9wYXJzZXJQ
YXVzZWQgPSBmYWxzZTsKIAogICAgIC8vIEZpcnN0LCBleGVjdXRlIGFueSBwZW5kaW5nIGNhbGxi
YWNrcwogICAgIHdoaWxlICghbV9wZW5kaW5nQ2FsbGJhY2tzLT5pc0VtcHR5KCkpIHsKICAgICAg
ICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5jYWxsQW5kUmVtb3ZlRmlyc3RDYWxsYmFjayh0aGlzKTsK
LSAgICAgICAgCisKICAgICAgICAgLy8gQSBjYWxsYmFjayBwYXVzZWQgdGhlIHBhcnNlcgogICAg
ICAgICBpZiAobV9wYXJzZXJQYXVzZWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMzg4LDgg
KzEzODgsOCBAQCBib29sIHBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIGNo
dW5rLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRQogICAgIGlmICghY2h1bmsubGVuZ3Ro
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgWE1MVG9rZW5pemVyIHRva2VuaXplcihm
cmFnbWVudCwgcGFyZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKLSAgICAKKyAgICBYTUxEb2N1
bWVudFBhcnNlciB0b2tlbml6ZXIoZnJhZ21lbnQsIHBhcmVudCwgc2NyaXB0aW5nUGVybWlzc2lv
bik7CisKICAgICBDU3RyaW5nIGNodW5rQXNVdGY4ID0gY2h1bmsudXRmOCgpOwogICAgIHRva2Vu
aXplci5pbml0aWFsaXplUGFyc2VyQ29udGV4dChjaHVua0FzVXRmOC5kYXRhKCkpOwogCkBAIC0x
NDE5LDEyICsxNDE5LDEyIEBAIHN0YXRpYyB2b2lkIGF0dHJpYnV0ZXNTdGFydEVsZW1lbnROc0hh
bmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogeG1sTG9jCiB7CiAgICAgaWYgKHN0
cmNtcChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih4bWxMb2NhbE5hbWUpLCAiYXR0cnMi
KSAhPSAwKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0
eHQgPSBzdGF0aWNfY2FzdDx4bWxQYXJzZXJDdHh0UHRyPihjbG9zdXJlKTsKICAgICBBdHRyaWJ1
dGVQYXJzZVN0YXRlKiBzdGF0ZSA9IHN0YXRpY19jYXN0PEF0dHJpYnV0ZVBhcnNlU3RhdGUqPihj
dHh0LT5fcHJpdmF0ZSk7Ci0gICAgCisKICAgICBzdGF0ZS0+Z290QXR0cmlidXRlcyA9IHRydWU7
Ci0gICAgCisKICAgICB4bWxTQVgyQXR0cmlidXRlcyogYXR0cmlidXRlcyA9IHJlaW50ZXJwcmV0
X2Nhc3Q8eG1sU0FYMkF0dHJpYnV0ZXMqPihsaWJ4bWxBdHRyaWJ1dGVzKTsKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG5iX2F0dHJpYnV0ZXM7IGkrKykgewogICAgICAgICBTdHJpbmcgYXR0ckxv
Y2FsTmFtZSA9IHRvU3RyaW5nKGF0dHJpYnV0ZXNbaV0ubG9jYWxuYW1lKTsKQEAgLTE0MzIsNyAr
MTQzMiw3IEBAIHN0YXRpYyB2b2lkIGF0dHJpYnV0ZXNTdGFydEVsZW1lbnROc0hhbmRsZXIodm9p
ZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogeG1sTG9jCiAgICAgICAgIFN0cmluZyBhdHRyVmFs
dWUgPSB0b1N0cmluZyhhdHRyaWJ1dGVzW2ldLnZhbHVlLCB2YWx1ZUxlbmd0aCk7CiAgICAgICAg
IFN0cmluZyBhdHRyUHJlZml4ID0gdG9TdHJpbmcoYXR0cmlidXRlc1tpXS5wcmVmaXgpOwogICAg
ICAgICBTdHJpbmcgYXR0clFOYW1lID0gYXR0clByZWZpeC5pc0VtcHR5KCkgPyBhdHRyTG9jYWxO
YW1lIDogYXR0clByZWZpeCArICI6IiArIGF0dHJMb2NhbE5hbWU7Ci0gICAgICAgIAorCiAgICAg
ICAgIHN0YXRlLT5hdHRyaWJ1dGVzLnNldChhdHRyUU5hbWUsIGF0dHJWYWx1ZSk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyUXQuY3BwIGIvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVuYW1lIGZy
b20gV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyUXQuY3BwCnJlbmFtZSB0byBXZWJDb3JlL2RvbS9Y
TUxEb2N1bWVudFBhcnNlclF0LmNwcAppbmRleCA1OGM0YjQ0NWU2NzE4MWYxZjNkMzgzNTkzN2Vl
OGNkZWU1ODZhMzQ1Li5mMDdiYzVlMTIzNzYwNzBkYTM1YmE3MjVmYTVlZGFmNWVkMWNmMDcxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdC5oIgpAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50
UGFyc2VyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC03Nyw3ICs3
Nyw3IEBAIFFTdHJpbmcgRW50aXR5UmVzb2x2ZXI6OnJlc29sdmVVbmRlY2xhcmVkRW50aXR5KGNv
bnN0IFFTdHJpbmcgJm5hbWUpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVhNTFRva2VuaXplcjo6WE1MVG9rZW5pemVyKERvY3VtZW50KiBfZG9jLCBGcmFtZVZpZXcq
IF92aWV3KQorWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50KiBf
ZG9jLCBGcmFtZVZpZXcqIF92aWV3KQogICAgIDogbV9kb2MoX2RvYykKICAgICAsIG1fdmlldyhf
dmlldykKICAgICAsIG1fd3JvdGVUZXh0KGZhbHNlKQpAQCAtMTA0LDcgKzEwNCw3IEBAIFhNTFRv
a2VuaXplcjo6WE1MVG9rZW5pemVyKERvY3VtZW50KiBfZG9jLCBGcmFtZVZpZXcqIF92aWV3KQog
ICAgIG1fc3RyZWFtLnNldEVudGl0eVJlc29sdmVyKG5ldyBFbnRpdHlSZXNvbHZlcik7CiB9CiAK
LVhNTFRva2VuaXplcjo6WE1MVG9rZW5pemVyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBF
bGVtZW50KiBwYXJlbnRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gcGVybWlz
c2lvbikKK1hNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdt
ZW50KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uIHBlcm1pc3Npb24pCiAgICAgOiBtX2RvYyhmcmFnbWVudC0+ZG9jdW1lbnQoKSkK
ICAgICAsIG1fdmlldygwKQogICAgICwgbV93cm90ZVRleHQoZmFsc2UpCkBAIC0xMzEsMjEgKzEz
MSwyMSBAQCBYTUxUb2tlbml6ZXI6OlhNTFRva2VuaXplcihEb2N1bWVudEZyYWdtZW50KiBmcmFn
bWVudCwgRWxlbWVudCogcGFyZW50RWxlbWVudCwgRgogICAgIGZyYWdtZW50LT5yZWYoKTsKICAg
ICBpZiAobV9kb2MpCiAgICAgICAgIG1fZG9jLT5yZWYoKTsKLSAgICAgICAgICAKKwogICAgIC8v
IEFkZCBuYW1lc3BhY2VzIGJhc2VkIG9uIHRoZSBwYXJlbnQgbm9kZQogICAgIFZlY3RvcjxFbGVt
ZW50Kj4gZWxlbVN0YWNrOwogICAgIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7CiAgICAgICAgIGVs
ZW1TdGFjay5hcHBlbmQocGFyZW50RWxlbWVudCk7Ci0gICAgICAgIAorCiAgICAgICAgIE5vZGUq
IG4gPSBwYXJlbnRFbGVtZW50LT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbiB8fCAhbi0+
aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHBhcmVudEVsZW1l
bnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7CiAgICAgfQotICAgIAorCiAgICAgaWYgKGVs
ZW1TdGFjay5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIFFYbWxTdHJl
YW1OYW1lc3BhY2VEZWNsYXJhdGlvbnMgbmFtZXNwYWNlczsKICAgICBmb3IgKEVsZW1lbnQqIGVs
ZW1lbnQgPSBlbGVtU3RhY2subGFzdCgpOyAhZWxlbVN0YWNrLmlzRW1wdHkoKTsgZWxlbVN0YWNr
LnJlbW92ZUxhc3QoKSkgewogICAgICAgICBpZiAoTmFtZWROb2RlTWFwKiBhdHRycyA9IGVsZW1l
bnQtPmF0dHJpYnV0ZXMoKSkgewpAQCAtMTY2LDcgKzE2Niw3IEBAIFhNTFRva2VuaXplcjo6WE1M
VG9rZW5pemVyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnRFbGVt
ZW50LCBGCiAgICAgICAgIG1fZGVmYXVsdE5hbWVzcGFjZVVSSSA9IHBhcmVudEVsZW1lbnQtPm5h
bWVzcGFjZVVSSSgpOwogfQogCi1YTUxUb2tlbml6ZXI6On5YTUxUb2tlbml6ZXIoKQorWE1MRG9j
dW1lbnRQYXJzZXI6On5YTUxEb2N1bWVudFBhcnNlcigpCiB7CiAgICAgY2xlYXJDdXJyZW50Tm9k
ZVN0YWNrKCk7CiAgICAgaWYgKG1fcGFyc2luZ0ZyYWdtZW50ICYmIG1fZG9jKQpAQCAtMTc2LDcg
KzE3Niw3IEBAIFhNTFRva2VuaXplcjo6flhNTFRva2VuaXplcigpCiAgICAgZGVsZXRlIG1fc3Ry
ZWFtLmVudGl0eVJlc29sdmVyKCk7CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpkb1dyaXRlKGNv
bnN0IFN0cmluZyYgcGFyc2VTdHJpbmcpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkb1dyaXRl
KGNvbnN0IFN0cmluZyYgcGFyc2VTdHJpbmcpCiB7CiAgICAgbV93cm90ZVRleHQgPSB0cnVlOwog
CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmRvV3JpdGUoY29uc3QgU3Ry
aW5nJiBwYXJzZVN0cmluZykKICAgICByZXR1cm47CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpp
bml0aWFsaXplUGFyc2VyQ29udGV4dChjb25zdCBjaGFyKikKK3ZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OmluaXRpYWxpemVQYXJzZXJDb250ZXh0KGNvbnN0IGNoYXIqKQogewogICAgIG1fcGFyc2Vy
U3RvcHBlZCA9IGZhbHNlOwogICAgIG1fc2F3RXJyb3IgPSBmYWxzZTsKQEAgLTIwMyw3ICsyMDMs
NyBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW5pdGlhbGl6ZVBhcnNlckNvbnRleHQoY29uc3QgY2hh
ciopCiAgICAgbV9zYXdGaXJzdEVsZW1lbnQgPSBmYWxzZTsKIH0KIAotdm9pZCBYTUxUb2tlbml6
ZXI6OmRvRW5kKCkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmRvRW5kKCkKIHsKICNpZiBFTkFC
TEUoWFNMVCkKICAgICBpZiAobV9zYXdYU0xUcmFuc2Zvcm0pIHsKQEAgLTIxNCwzMSArMjE0LDMx
IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpkb0VuZCgpCiAgICAgICAgIG1fcGFyc2VyU3RvcHBlZCA9
IHRydWU7CiAgICAgfQogI2VuZGlmCi0gICAgCisKICAgICBpZiAobV9zdHJlYW0uZXJyb3IoKSA9
PSBRWG1sU3RyZWFtUmVhZGVyOjpQcmVtYXR1cmVFbmRPZkRvY3VtZW50RXJyb3IKICAgICAgICAg
fHwgKG1fd3JvdGVUZXh0ICYmICFtX3Nhd0ZpcnN0RWxlbWVudCAmJiAhbV9zYXdYU0xUcmFuc2Zv
cm0gJiYgIW1fc2F3RXJyb3IpKQogICAgICAgICBoYW5kbGVFcnJvcihmYXRhbCwgcVByaW50YWJs
ZShtX3N0cmVhbS5lcnJvclN0cmluZygpKSwgbGluZU51bWJlcigpLCBjb2x1bW5OdW1iZXIoKSk7
CiB9CiAKLWludCBYTUxUb2tlbml6ZXI6OmxpbmVOdW1iZXIoKSBjb25zdAoraW50IFhNTERvY3Vt
ZW50UGFyc2VyOjpsaW5lTnVtYmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdHJlYW0ubGlu
ZU51bWJlcigpOwogfQogCi1pbnQgWE1MVG9rZW5pemVyOjpjb2x1bW5OdW1iZXIoKSBjb25zdAor
aW50IFhNTERvY3VtZW50UGFyc2VyOjpjb2x1bW5OdW1iZXIoKSBjb25zdAogewogICAgIHJldHVy
biBtX3N0cmVhbS5jb2x1bW5OdW1iZXIoKTsKIH0KIAotdm9pZCBYTUxUb2tlbml6ZXI6OnN0b3BQ
YXJzaW5nKCkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBE
b2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcoKTsKIH0KIAotdm9pZCBYTUxUb2tlbml6ZXI6OnJl
c3VtZVBhcnNpbmcoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygpCiB7
CiAgICAgQVNTRVJUKG1fcGFyc2VyUGF1c2VkKTsKLSAgICAKKwogICAgIG1fcGFyc2VyUGF1c2Vk
ID0gZmFsc2U7CiAKICAgICAvLyBGaXJzdCwgZXhlY3V0ZSBhbnkgcGVuZGluZyBjYWxsYmFja3MK
QEAgLTI2Miw4ICsyNjIsOCBAQCBib29sIHBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBT
dHJpbmcmIGNodW5rLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRQogICAgIGlmICghY2h1
bmsubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgWE1MVG9rZW5pemVyIHRv
a2VuaXplcihmcmFnbWVudCwgcGFyZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKLSAgICAKKyAg
ICBYTUxEb2N1bWVudFBhcnNlciB0b2tlbml6ZXIoZnJhZ21lbnQsIHBhcmVudCwgc2NyaXB0aW5n
UGVybWlzc2lvbik7CisKICAgICB0b2tlbml6ZXIud3JpdGUoU3RyaW5nKCI8cXhtbHN0cmVhbWR1
bW15ZWxlbWVudD4iKSwgZmFsc2UpOwogICAgIHRva2VuaXplci53cml0ZShjaHVuaywgZmFsc2Up
OwogICAgIHRva2VuaXplci53cml0ZShTdHJpbmcoIjwvcXhtbHN0cmVhbWR1bW15ZWxlbWVudD4i
KSwgZmFsc2UpOwpAQCAtMzUwLDcgKzM1MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVF
bGVtZW50QXR0cmlidXRlcyhFbGVtZW50KiBuZXdFbGVtZW50LCBjb25zdCBRWG1sU3RyZWFtCiAg
ICAgfQogfQogCi12b2lkIFhNTFRva2VuaXplcjo6cGFyc2UoKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2UoKQogewogICAgIHdoaWxlICghbV9wYXJzZXJTdG9wcGVkICYmICFtX3BhcnNl
clBhdXNlZCAmJiAhbV9zdHJlYW0uYXRFbmQoKSkgewogICAgICAgICBtX3N0cmVhbS5yZWFkTmV4
dCgpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZSgpCiAgICAg
ICAgICAgICAgICAgaGFuZGxlRXJyb3IoZmF0YWwsICJET0NUWVBFIGRlY2xhcmF0aW9uIGxvc3Qu
IiwgbGluZU51bWJlcigpLCBjb2x1bW5OdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9Ci0jZW5kaWYgCisjZW5kaWYKICAgICAgICAgICAgIHBhcnNlU3RhcnRF
bGVtZW50KCk7CiAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDM4LDcgKzQzOCw3
IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZSgpCiAgICAgfQogfQogCi12b2lkIFhNTFRva2Vu
aXplcjo6c3RhcnREb2N1bWVudCgpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydERvY3Vt
ZW50KCkKIHsKICAgICBpbml0aWFsaXplUGFyc2VyQ29udGV4dCgpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwpAQCAtNDU1LDcgKzQ1NSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpzdGFydERv
Y3VtZW50KCkKICAgICB9CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZVN0YXJ0RWxlbWVu
dCgpCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVN0YXJ0RWxlbWVudCgpCiB7CiAgICAg
aWYgKCFtX3Nhd0ZpcnN0RWxlbWVudCAmJiBtX3BhcnNpbmdGcmFnbWVudCkgewogICAgICAgICAv
LyBza2lwIGR1bW15IGVsZW1lbnQgZm9yIGZyYWdtZW50cwpAQCAtNDgzLDE3ICs0ODMsMTcgQEAg
dm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlU3RhcnRFbGVtZW50KCkKIAogI2lmIEVOQUJMRShYSFRN
TE1QKQogICAgIGlmICghbV9zYXdGaXJzdEVsZW1lbnQgJiYgaXNYSFRNTE1QRG9jdW1lbnQoKSkg
ewotICAgICAgICAvLyBBcyBwZXIgNy4xIHNlY3Rpb24gb2YgT01BLVdBUC1YSFRNTE1QLVYxXzEt
MjAwNjEwMjAtQS5wZGYsIAotICAgICAgICAvLyB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhl
IHJvb3QgZWxlbWVudCBNVVNUIGJlICdodG1sJyBhbmQgCi0gICAgICAgIC8vIGVuc3VyZSB0aGUg
bmFtZSBvZiB0aGUgZGVmYXVsdCBuYW1lc3BhY2Ugb24gdGhlIHJvb3QgZWxtZW50ICdodG1sJyAK
KyAgICAgICAgLy8gQXMgcGVyIDcuMSBzZWN0aW9uIG9mIE9NQS1XQVAtWEhUTUxNUC1WMV8xLTIw
MDYxMDIwLUEucGRmLAorICAgICAgICAvLyB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhlIHJv
b3QgZWxlbWVudCBNVVNUIGJlICdodG1sJyBhbmQKKyAgICAgICAgLy8gZW5zdXJlIHRoZSBuYW1l
IG9mIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBvbiB0aGUgcm9vdCBlbG1lbnQgJ2h0bWwnCiAgICAg
ICAgIC8vIE1VU1QgYmUgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCiAgICAgICAgIGlm
IChsb2NhbE5hbWUgIT0gSFRNTE5hbWVzOjpodG1sVGFnLmxvY2FsTmFtZSgpKSB7CiAgICAgICAg
ICAgICBoYW5kbGVFcnJvcihmYXRhbCwgIlhIVE1MTVAgZG9jdW1lbnQgZXhwZWN0cyAnaHRtbCcg
YXMgcm9vdCBlbGVtZW50LiIsIGxpbmVOdW1iZXIoKSwgY29sdW1uTnVtYmVyKCkpOwogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9IAorICAgICAgICB9CiAKICAgICAgICAgaWYgKHVyaS5p
c051bGwoKSkgewotICAgICAgICAgICAgbV9kZWZhdWx0TmFtZXNwYWNlVVJJID0gSFRNTE5hbWVz
Ojp4aHRtbE5hbWVzcGFjZVVSSTsgCisgICAgICAgICAgICBtX2RlZmF1bHROYW1lc3BhY2VVUkkg
PSBIVE1MTmFtZXM6OnhodG1sTmFtZXNwYWNlVVJJOwogICAgICAgICAgICAgdXJpID0gbV9kZWZh
dWx0TmFtZXNwYWNlVVJJOwogICAgICAgICAgICAgbV9zdHJlYW0uYWRkRXh0cmFOYW1lc3BhY2VE
ZWNsYXJhdGlvbihRWG1sU3RyZWFtTmFtZXNwYWNlRGVjbGFyYXRpb24ocHJlZml4LCBIVE1MTmFt
ZXM6OnhodG1sTmFtZXNwYWNlVVJJKSk7CiAgICAgICAgIH0KQEAgLTUzMyw3ICs1MzMsNyBAQCB2
b2lkIFhNTFRva2VuaXplcjo6cGFyc2VTdGFydEVsZW1lbnQoKQogICAgICAgICBtX2RvYy0+ZnJh
bWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiB9CiAK
LXZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZUVuZEVsZW1lbnQoKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2VFbmRFbGVtZW50KCkKIHsKICAgICBleGl0VGV4dCgpOwogCkBAIC01ODAsNyAr
NTgwLDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlRW5kRWxlbWVudCgpCiAgICAgewogICAg
ICAgICBTdHJpbmcgc2NyaXB0SHJlZiA9IHNjcmlwdEVsZW1lbnQtPnNvdXJjZUF0dHJpYnV0ZVZh
bHVlKCk7CiAgICAgICAgIGlmICghc2NyaXB0SHJlZi5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IC8vIHdlIGhhdmUgYSBzcmMgYXR0cmlidXRlIAorICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIHNy
YyBhdHRyaWJ1dGUKICAgICAgICAgICAgIFN0cmluZyBzY3JpcHRDaGFyc2V0ID0gc2NyaXB0RWxl
bWVudC0+c2NyaXB0Q2hhcnNldCgpOwogICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmRpc3BhdGNo
QmVmb3JlTG9hZEV2ZW50KHNjcmlwdEhyZWYpICYmCiAgICAgICAgICAgICAgICAgKG1fcGVuZGlu
Z1NjcmlwdCA9IG1fZG9jLT5kb2NMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChzY3JpcHRIcmVmLCBz
Y3JpcHRDaGFyc2V0KSkpIHsKQEAgLTU5MCw3ICs1OTAsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6
cGFyc2VFbmRFbGVtZW50KCkKICAgICAgICAgICAgICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2ls
bCBiZSAwIGlmIHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIHJlZigpIGV4ZWN1dGVkIGl0
CiAgICAgICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NjcmlwdCkKICAgICAgICAgICAgICAgICAg
ICAgcGF1c2VQYXJzaW5nKCk7Ci0gICAgICAgICAgICB9IGVsc2UgCisgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBtX3NjcmlwdEVsZW1lbnQgPSAwOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIG1fdmlldy0+ZnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoU2Ny
aXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIG1fZG9jLT51cmwo
KSwgbV9zY3JpcHRTdGFydExpbmUpKTsKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIFhNTFRva2Vu
aXplcjo6cGFyc2VFbmRFbGVtZW50KCkKICAgICBwb3BDdXJyZW50Tm9kZSgpOwogfQogCi12b2lk
IFhNTFRva2VuaXplcjo6cGFyc2VDaGFyYWN0ZXJzKCkKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6
OnBhcnNlQ2hhcmFjdGVycygpCiB7CiAgICAgaWYgKG1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUo
KSB8fCBlbnRlclRleHQoKSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTYw
Nyw3ICs2MDcsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VDaGFyYWN0ZXJzKCkKICAgICB9
CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpCit2
b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpCiB7CiAg
ICAgZXhpdFRleHQoKTsKIApAQCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpw
YXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpCiAjZW5kaWYKIH0KIAotdm9pZCBYTUxUb2tlbml6
ZXI6OnBhcnNlQ2RhdGEoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDZGF0YSgpCiB7
CiAgICAgZXhpdFRleHQoKTsKIApAQCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQgWE1MVG9rZW5pemVy
OjpwYXJzZUNkYXRhKCkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9CiAKLXZvaWQgWE1M
VG9rZW5pemVyOjpwYXJzZUNvbW1lbnQoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VD
b21tZW50KCkKIHsKICAgICBleGl0VGV4dCgpOwogCkBAIC02NTYsMTkgKzY1NiwxOSBAQCB2b2lk
IFhNTFRva2VuaXplcjo6cGFyc2VDb21tZW50KCkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7
CiB9CiAKLXZvaWQgWE1MVG9rZW5pemVyOjplbmREb2N1bWVudCgpCit2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjplbmREb2N1bWVudCgpCiB7CiAjaWYgRU5BQkxFKFhIVE1MTVApCiAgICAgbV9oYXNE
b2NUeXBlRGVjbGFyYXRpb24gPSBmYWxzZTsKICNlbmRpZgogfQogCi1ib29sIFhNTFRva2VuaXpl
cjo6aGFzRXJyb3IoKSBjb25zdAorYm9vbCBYTUxEb2N1bWVudFBhcnNlcjo6aGFzRXJyb3IoKSBj
b25zdAogewogICAgIHJldHVybiBtX3N0cmVhbS5oYXNFcnJvcigpOwogfQogCi12b2lkIFhNTFRv
a2VuaXplcjo6cGFyc2VEdGQoKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VEdGQoKQog
ewogICAgIFFTdHJpbmdSZWYgbmFtZSA9IG1fc3RyZWFtLmR0ZE5hbWUoKTsKICAgICBRU3RyaW5n
UmVmIHB1YmxpY0lkID0gbV9zdHJlYW0uZHRkUHVibGljSWQoKTsKQEAgLTY5Myw3ICs2OTMsNyBA
QCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VEdGQoKQogICAgICAgICBpZiAoQXRvbWljU3RyaW5n
KG5hbWUpICE9IEhUTUxOYW1lczo6aHRtbFRhZy5sb2NhbE5hbWUoKSkgewogICAgICAgICAgICAg
aGFuZGxlRXJyb3IoZmF0YWwsICJJbnZhbGlkIERPQ1RZUEUgZGVjbGFyYXRpb24sIGV4cGVjdGVk
ICdodG1sJyBhcyByb290IGVsZW1lbnQuIiwgbGluZU51bWJlcigpLCBjb2x1bW5OdW1iZXIoKSk7
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gCisgICAgICAgIH0KIAogICAgICAgICBp
ZiAobV9kb2MtPmlzWEhUTUxNUERvY3VtZW50KCkpIC8vIGNoZWNrIGlmIHRoZSBNSU1FIHR5cGUg
aXMgY29ycmVjdCB3aXRoIHRoaXMgbWV0aG9kCiAgICAgICAgICAgICBzZXRJc1hIVE1MTVBEb2N1
bWVudCh0cnVlKTsKQEAgLTcxMSw3ICs3MTEsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VE
dGQoKQogI2VuZGlmCiAgICAgaWYgKCFtX3BhcnNpbmdGcmFnbWVudCkKICAgICAgICAgbV9kb2Mt
PmFkZENoaWxkKERvY3VtZW50VHlwZTo6Y3JlYXRlKG1fZG9jLCBuYW1lLCBwdWJsaWNJZCwgc3lz
dGVtSWQpKTsKLSAgICAKKwogfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxUb2tl
bml6ZXJTY29wZS5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcApz
aW1pbGFyaXR5IGluZGV4IDg1JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJT
Y29wZS5jcHAKcmVuYW1lIHRvIFdlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyU2NvcGUuY3Bw
CmluZGV4IDM3NjlmNTk3MDVlMTIzMmQyMzA5ZDVlMDZmZmFjMzliOWVjNDM5NDguLjhhZmU0OWQ3
ODk5YTIyMDgyZDc1ZGNlMmY3ZmY5YTg1ZjMzMzU4OGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1hNTFRva2VuaXplclNjb3BlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNl
clNjb3BlLmNwcApAQCAtMjAsMTcgKzIwLDE3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJYTUxUb2tlbml6ZXJTY29wZS5oIgorI2luY2x1
ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1E
b2NMb2FkZXIqIFhNTFRva2VuaXplclNjb3BlOjpjdXJyZW50RG9jTG9hZGVyID0gMDsKK0RvY0xv
YWRlciogWE1MRG9jdW1lbnRQYXJzZXJTY29wZTo6Y3VycmVudERvY0xvYWRlciA9IDA7CiAKLVhN
TFRva2VuaXplclNjb3BlOjpYTUxUb2tlbml6ZXJTY29wZShEb2NMb2FkZXIqIGRvY0xvYWRlcikK
K1hNTERvY3VtZW50UGFyc2VyU2NvcGU6OlhNTERvY3VtZW50UGFyc2VyU2NvcGUoRG9jTG9hZGVy
KiBkb2NMb2FkZXIpCiAgICAgOiBtX29sZERvY0xvYWRlcihjdXJyZW50RG9jTG9hZGVyKQogI2lm
IEVOQUJMRShYU0xUKQogICAgICwgbV9vbGRHZW5lcmljRXJyb3JGdW5jKHhtbEdlbmVyaWNFcnJv
cikKQEAgLTQyLDcgKzQyLDcgQEAgWE1MVG9rZW5pemVyU2NvcGU6OlhNTFRva2VuaXplclNjb3Bl
KERvY0xvYWRlciogZG9jTG9hZGVyKQogfQogCiAjaWYgRU5BQkxFKFhTTFQpCi1YTUxUb2tlbml6
ZXJTY29wZTo6WE1MVG9rZW5pemVyU2NvcGUoRG9jTG9hZGVyKiBkb2NMb2FkZXIsIHhtbEdlbmVy
aWNFcnJvckZ1bmMgZ2VuZXJpY0Vycm9yRnVuYywgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzdHJ1
Y3R1cmVkRXJyb3JGdW5jLCB2b2lkKiBlcnJvckNvbnRleHQpCitYTUxEb2N1bWVudFBhcnNlclNj
b3BlOjpYTUxEb2N1bWVudFBhcnNlclNjb3BlKERvY0xvYWRlciogZG9jTG9hZGVyLCB4bWxHZW5l
cmljRXJyb3JGdW5jIGdlbmVyaWNFcnJvckZ1bmMsIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc3Ry
dWN0dXJlZEVycm9yRnVuYywgdm9pZCogZXJyb3JDb250ZXh0KQogICAgIDogbV9vbGREb2NMb2Fk
ZXIoY3VycmVudERvY0xvYWRlcikKICAgICAsIG1fb2xkR2VuZXJpY0Vycm9yRnVuYyh4bWxHZW5l
cmljRXJyb3IpCiAgICAgLCBtX29sZFN0cnVjdHVyZWRFcnJvckZ1bmMoeG1sU3RydWN0dXJlZEVy
cm9yKQpAQCAtNTYsNyArNTYsNyBAQCBYTUxUb2tlbml6ZXJTY29wZTo6WE1MVG9rZW5pemVyU2Nv
cGUoRG9jTG9hZGVyKiBkb2NMb2FkZXIsIHhtbEdlbmVyaWNFcnJvckZ1bmMgZwogfQogI2VuZGlm
CiAKLVhNTFRva2VuaXplclNjb3BlOjp+WE1MVG9rZW5pemVyU2NvcGUoKQorWE1MRG9jdW1lbnRQ
YXJzZXJTY29wZTo6flhNTERvY3VtZW50UGFyc2VyU2NvcGUoKQogewogICAgIGN1cnJlbnREb2NM
b2FkZXIgPSBtX29sZERvY0xvYWRlcjsKICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1hNTFRva2VuaXplclNjb3BlLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBh
cnNlclNjb3BlLmgKc2ltaWxhcml0eSBpbmRleCA4NSUKcmVuYW1lIGZyb20gV2ViQ29yZS9kb20v
WE1MVG9rZW5pemVyU2NvcGUuaApyZW5hbWUgdG8gV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXJTY29wZS5oCmluZGV4IGMyOWI3OTYwNDMwN2EwYmY1ZjZhZmI4NjNlMTFkMGFhNjE4ODY5NGQu
Ljg5NzQwZDIzZGQwMzZhMDc5ZTYyMzE3MjA0NjllOTA3MzI1MmMwYmYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1hNTFRva2VuaXplclNjb3BlLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1l
bnRQYXJzZXJTY29wZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
ICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
ICNpZm5kZWYgWE1MVG9rZW5pemVyU2NvcGVfaApAQCAtMzYsMTUgKzM2LDE1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERvY0xvYWRlcjsKIAotICAgIGNsYXNzIFhNTFRva2Vu
aXplclNjb3BlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKyAgICBjbGFzcyBYTUxEb2N1bWVudFBh
cnNlclNjb3BlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFhN
TFRva2VuaXplclNjb3BlKERvY0xvYWRlciogZG9jTG9hZGVyKTsKLSAgICAgICAgflhNTFRva2Vu
aXplclNjb3BlKCk7CisgICAgICAgIFhNTERvY3VtZW50UGFyc2VyU2NvcGUoRG9jTG9hZGVyKiBk
b2NMb2FkZXIpOworICAgICAgICB+WE1MRG9jdW1lbnRQYXJzZXJTY29wZSgpOwogCiAgICAgICAg
IHN0YXRpYyBEb2NMb2FkZXIqIGN1cnJlbnREb2NMb2FkZXI7CiAKICNpZiBFTkFCTEUoWFNMVCkK
LSAgICAgICAgWE1MVG9rZW5pemVyU2NvcGUoRG9jTG9hZGVyKiBkb2NMb2FkZXIsIHhtbEdlbmVy
aWNFcnJvckZ1bmMgZ2VuZXJpY0Vycm9yRnVuYywgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzdHJ1
Y3R1cmVkRXJyb3JGdW5jID0gMCwgdm9pZCogZXJyb3JDb250ZXh0ID0gMCk7CisgICAgICAgIFhN
TERvY3VtZW50UGFyc2VyU2NvcGUoRG9jTG9hZGVyKiBkb2NMb2FkZXIsIHhtbEdlbmVyaWNFcnJv
ckZ1bmMgZ2VuZXJpY0Vycm9yRnVuYywgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzdHJ1Y3R1cmVk
RXJyb3JGdW5jID0gMCwgdm9pZCogZXJyb3JDb250ZXh0ID0gMCk7CiAjZW5kaWYKIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggODQlCnJl
bmFtZSBmcm9tIFdlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKcmVuYW1lIHRvIFdlYkNv
cmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAppbmRleCBhYmVmMTg1NTgzNTM3YWFmMDM0
ZmQ2MTliNWMzZGU0MGIyODE3YmYzLi40MWU3OTk3MmVkYmVkYzg3YjE2NGI4MjExYTYwMDY1ZDBh
NWIzOWM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcApAQCAtMjAsMTEgKzIwLDExIEBA
CiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJI
VE1MNVRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKIAogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICArKygqbV9jb3VudGVyKTsKICAgICB9Ci0gICAgCisKICAg
ICB+TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIoKQogICAgIHsKICAgICAgICAgLS0oKm1fY291bnRl
cik7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlCiAKLUhUTUw1
VG9rZW5pemVyOjpIVE1MNVRva2VuaXplcihIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJl
cG9ydEVycm9ycykKK0hUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRN
TERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBEb2N1bWVudFBh
cnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sZXhlcihuZXcgSFRN
TDVMZXhlcikKQEAgLTcxLDcgKzcxLDcgQEAgSFRNTDVUb2tlbml6ZXI6OkhUTUw1VG9rZW5pemVy
KEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQogICAgIGJlZ2luKCk7
CiB9CiAKLUhUTUw1VG9rZW5pemVyOjp+SFRNTDVUb2tlbml6ZXIoKQorSFRNTDVEb2N1bWVudFBh
cnNlcjo6fkhUTUw1RG9jdW1lbnRQYXJzZXIoKQogewogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2Ug
dG8gQVNTRVJUIHRoYXQgbm9ybWFsIG9wZXJhdGlvbiBvZiB0aGlzIGNsYXNzIGNsZWFycwogICAg
IC8vIG91dCBhbnkgZGVsYXllZCBhY3Rpb25zLCBidXQgd2UgY2FuJ3QgYmVjYXVzZSB3ZSdyZSB1
bmNlcmVtb25pb3VzbHkKQEAgLTc5LDE5ICs3OSwxOSBAQCBIVE1MNVRva2VuaXplcjo6fkhUTUw1
VG9rZW5pemVyKCkKICAgICAvLyB0aGVuIHdlIGNvdWxkIEFTU0VSVCBzb21lIGludmFyaWFudHMg
aGVyZS4KIH0KIAotdm9pZCBIVE1MNVRva2VuaXplcjo6YmVnaW4oKQordm9pZCBIVE1MNURvY3Vt
ZW50UGFyc2VyOjpiZWdpbigpCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSByZXNldCB0aGUg
bGV4ZXI/CiB9CiAKLXZvaWQgSFRNTDVUb2tlbml6ZXI6OnB1bXBMZXhlcklmUG9zc2libGUoKQor
dm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKCkKIHsKICAgICBp
ZiAobV9wYXJzZXJTdG9wcGVkIHx8IG1fdHJlZUJ1aWxkZXItPmlzUGF1c2VkKCkpCiAgICAgICAg
IHJldHVybjsKICAgICBwdW1wTGV4ZXIoKTsKIH0KIAotdm9pZCBIVE1MNVRva2VuaXplcjo6cHVt
cExleGVyKCkKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKCkKIHsKICAgICBB
U1NFUlQoIW1fcGFyc2VyU3RvcHBlZCk7CiAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1Bh
dXNlZCgpKTsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjpwdW1wTGV4
ZXIoKQogICAgIH0KIH0KIAotdm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wgYXBwZW5kRGF0YSkKK3ZvaWQgSFRNTDVEb2N1bWVudFBh
cnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wgYXBwZW5kRGF0
YSkKIHsKICAgICBpZiAobV9wYXJzZXJTdG9wcGVkKQogICAgICAgICByZXR1cm47CkBAIC0xNDEs
MTQgKzE0MSwxNCBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgYm9vbCBhcHBlbmREYXRhKQogICAgIGVuZElmRGVsYXllZCgpOwogfQog
Ci12b2lkIEhUTUw1VG9rZW5pemVyOjplbmQoKQordm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpl
bmQoKQogewogICAgIHB1bXBMZXhlcklmUG9zc2libGUoKTsKICAgICAvLyBJbmZvcm1zIHRoZSB0
aGUgcmVzdCBvZiBXZWJDb3JlIHRoYXQgcGFyc2luZyBpcyByZWFsbHkgZmluaXNoZWQuCiAgICAg
bV90cmVlQnVpbGRlci0+ZmluaXNoZWQoKTsKIH0KIAotdm9pZCBIVE1MNVRva2VuaXplcjo6YXR0
ZW1wdFRvRW5kKCkKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YXR0ZW1wdFRvRW5kKCkKIHsK
ICAgICAvLyBmaW5pc2goKSBpbmRpY2F0ZXMgd2Ugd2lsbCBub3QgcmVjZWl2ZSBhbnkgbW9yZSBk
YXRhLiBJZiB3ZSBhcmUgd2FpdGluZyBvbgogICAgIC8vIGFuIGV4dGVybmFsIHNjcmlwdCB0byBs
b2FkLCB3ZSBjYW4ndCBmaW5pc2ggcGFyc2luZyBxdWl0ZSB5ZXQuCkBAIC0xNjAsNyArMTYwLDcg
QEAgdm9pZCBIVE1MNVRva2VuaXplcjo6YXR0ZW1wdFRvRW5kKCkKICAgICBlbmQoKTsKIH0KIAot
dm9pZCBIVE1MNVRva2VuaXplcjo6ZW5kSWZEZWxheWVkKCkKK3ZvaWQgSFRNTDVEb2N1bWVudFBh
cnNlcjo6ZW5kSWZEZWxheWVkKCkKIHsKICAgICBpZiAoIW1fZW5kV2FzRGVsYXllZCB8fCBpc1dh
aXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjplbmRJZkRlbGF5ZWQoKQog
ICAgIGVuZCgpOwogfQogCi12b2lkIEhUTUw1VG9rZW5pemVyOjpmaW5pc2goKQordm9pZCBIVE1M
NURvY3VtZW50UGFyc2VyOjpmaW5pc2goKQogewogICAgIC8vIFdlJ3JlIG5vdCBnb2luZyB0byBn
ZXQgYW55IG1vcmUgZGF0YSBvZmYgdGhlIG5ldHdvcmssIHNvIHdlIGNsb3NlIHRoZQogICAgIC8v
IGlucHV0IHN0cmVhbSB0byBpbmRpY2F0ZSBFT0YuCkBAIC0xNzcsMzIgKzE3NywzMiBAQCB2b2lk
IEhUTUw1VG9rZW5pemVyOjpmaW5pc2goKQogICAgIGF0dGVtcHRUb0VuZCgpOwogfQogCi1pbnQg
SFRNTDVUb2tlbml6ZXI6OmV4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0CitpbnQgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6ZXhlY3V0aW5nU2NyaXB0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zY3JpcHRS
dW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCk7CiB9CiAKLWludCBIVE1MNVRva2VuaXplcjo6bGlu
ZU51bWJlcigpIGNvbnN0CitpbnQgSFRNTDVEb2N1bWVudFBhcnNlcjo6bGluZU51bWJlcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fbGV4ZXItPmxpbmVOdW1iZXIoKTsKIH0KIAotaW50IEhUTUw1
VG9rZW5pemVyOjpjb2x1bW5OdW1iZXIoKSBjb25zdAoraW50IEhUTUw1RG9jdW1lbnRQYXJzZXI6
OmNvbHVtbk51bWJlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbGV4ZXItPmNvbHVtbk51bWJl
cigpOwogfQogCi1IVE1MUGFyc2VyKiBIVE1MNVRva2VuaXplcjo6aHRtbFBhcnNlcigpIGNvbnN0
CitIVE1MUGFyc2VyKiBIVE1MNURvY3VtZW50UGFyc2VyOjpodG1sUGFyc2VyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV90cmVlQnVpbGRlci0+aHRtbFBhcnNlcigpOwogfQogCi1ib29sIEhUTUw1
VG9rZW5pemVyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKK2Jvb2wgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdHJl
ZUJ1aWxkZXItPmlzUGF1c2VkKCk7CiB9CiAKLXZvaWQgSFRNTDVUb2tlbml6ZXI6OnJlc3VtZVBh
cnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnJl
c3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpCiB7CiAgICAgQVNTRVJUKCFtX3Njcmlw
dFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CiAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVy
LT5pc1BhdXNlZCgpKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjpy
ZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKQogICAgIGVuZElmRGVsYXllZCgpOwog
fQogCi12b2lkIEhUTUw1VG9rZW5pemVyOjp3YXRjaEZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFNjcmlwdCkKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6d2F0Y2hGb3JMb2FkKENhY2hl
ZFJlc291cmNlKiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgQVNTRVJUKCFjYWNoZWRTY3JpcHQtPmlz
TG9hZGVkKCkpOwogICAgIC8vIGFkZENsaWVudCB3b3VsZCBjYWxsIG5vdGlmeUZpbmlzaGVkIGlm
IHRoZSBsb2FkIHdlcmUgY29tcGxldGUuCkBAIC0yMjEsMTkgKzIyMSwxOSBAQCB2b2lkIEhUTUw1
VG9rZW5pemVyOjp3YXRjaEZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFNjcmlwdCkKICAg
ICBjYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKIH0KIAotdm9pZCBIVE1MNVRva2VuaXpl
cjo6c3RvcFdhdGNoaW5nRm9yTG9hZChDYWNoZWRSZXNvdXJjZSogY2FjaGVkU2NyaXB0KQordm9p
ZCBIVE1MNURvY3VtZW50UGFyc2VyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNl
KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7
CiB9CiAKLWJvb2wgSFRNTDVUb2tlbml6ZXI6OnNob3VsZExvYWRFeHRlcm5hbFNjcmlwdEZyb21T
cmMoY29uc3QgQXRvbWljU3RyaW5nJiBzcmNWYWx1ZSkKK2Jvb2wgSFRNTDVEb2N1bWVudFBhcnNl
cjo6c2hvdWxkTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNyYyhjb25zdCBBdG9taWNTdHJpbmcmIHNy
Y1ZhbHVlKQogewogICAgIGlmICghbV9YU1NBdWRpdG9yKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICByZXR1cm4gbV9YU1NBdWRpdG9yLT5jYW5Mb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjKHNy
Y1ZhbHVlKTsKIH0KIAotdm9pZCBIVE1MNVRva2VuaXplcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQordm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpl
eGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAg
QVNTRVJUKG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBpZiAoIW1f
ZG9jdW1lbnQtPmZyYW1lKCkpCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBIVE1MNVRva2VuaXpl
cjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogICAg
IG1fZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KHNvdXJjZUNvZGUp
OwogfQogCi12b2lkIEhUTUw1VG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSogY2FjaGVkUmVzb3VyY2UpCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlz
aGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fc2Ny
aXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBBU1NFUlQobV90cmVlQnVpbGRl
ci0+aXNQYXVzZWQoKSk7CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBIVE1MNVRva2VuaXplcjo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogICAgICAgICBy
ZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKTsKIH0KIAotdm9pZCBIVE1MNVRva2Vu
aXplcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKQordm9pZCBIVE1MNURv
Y3VtZW50UGFyc2VyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpCiB7CiAg
ICAgLy8gSWdub3JlIGNhbGxzIHVubGVzcyB3ZSBoYXZlIGEgc2NyaXB0IGJsb2NraW5nIHRoZSBw
YXJzZXIgd2FpdGluZyBvbiBhCiAgICAgLy8gc3R5bGVzaGVldCBsb2FkLiAgT3RoZXJ3aXNlIHdl
IGFyZSBjdXJyZW50bHkgcGFyc2luZyBhbmQgdGhpcwpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQg
SFRNTDVUb2tlbml6ZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkKICAg
ICAgICAgcmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCk7CiB9CiAKLVNjcmlwdENv
bnRyb2xsZXIqIEhUTUw1VG9rZW5pemVyOjpzY3JpcHQoKSBjb25zdAorU2NyaXB0Q29udHJvbGxl
ciogSFRNTDVEb2N1bWVudFBhcnNlcjo6c2NyaXB0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9k
b2N1bWVudC0+ZnJhbWUoKSA/IG1fZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpIDogMDsKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5oIGIvV2ViQ29yZS9odG1s
L0hUTUw1RG9jdW1lbnRQYXJzZXIuaApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBX
ZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaApyZW5hbWUgdG8gV2ViQ29yZS9odG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuaAppbmRleCAyY2M5NDkzNDZiZDQ2M2Y0ZTIyYjlkN2ZkODg1ZDE3Y2Ri
NGE0NDYyLi4zM2U1ZDVlMjI3YTk3MWU0MzA2ZDZlN2NiNWZmOGJjYjVmMmZjYjA2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TDVEb2N1bWVudFBhcnNlci5oCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKICNpZm5kZWYgSFRNTDVUb2tlbml6ZXJfaApAQCAtNDMsMTAgKzQzLDEwIEBAIGNsYXNzIEhU
TUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0U291
cmNlQ29kZTsKIAotY2xhc3MgSFRNTDVUb2tlbml6ZXIgOiAgcHVibGljIERvY3VtZW50UGFyc2Vy
LCBIVE1MNVNjcmlwdFJ1bm5lckhvc3QsIENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNzIEhU
TUw1RG9jdW1lbnRQYXJzZXIgOiAgcHVibGljIERvY3VtZW50UGFyc2VyLCBIVE1MNVNjcmlwdFJ1
bm5lckhvc3QsIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBIVE1MNVRva2Vu
aXplcihIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7Ci0gICAgdmlydHVhbCB+SFRN
TDVUb2tlbml6ZXIoKTsKKyAgICBIVE1MNURvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCosIGJv
b2wgcmVwb3J0RXJyb3JzKTsKKyAgICB2aXJ0dWFsIH5IVE1MNURvY3VtZW50UGFyc2VyKCk7CiAK
ICAgICAvLyBEb2N1bWVudFBhcnNlcgogICAgIHZpcnR1YWwgdm9pZCBiZWdpbigpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVy
LmgKaW5kZXggYmJmNTEwMTg1YmYzYzc0NDgzMTQxODVhMmI4NWU0MGEyODdjNDY3Yy4uZmUzMjFl
MjQ4YjNhNzFiODI2MTU5MWUyNWZmYTMzYzNmYjkyMTA2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUw1TGV4ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCkBAIC0xMjEs
NyArMTIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmLCBIVE1MNVRva2VuJik7CiAKICAgICAgICAgaW50IGxpbmVOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2xpbmVOdW1iZXI7IH0KLSAgICAgICAgaW50IGNvbHVtbk51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIDE7IH0gLy8gTWF0Y2hlcyBIVE1MVG9rZW5pemVyLmggYmVoYXZp
b3IuCisgICAgICAgIGludCBjb2x1bW5OdW1iZXIoKSBjb25zdCB7IHJldHVybiAxOyB9IC8vIE1h
dGNoZXMgSFRNTERvY3VtZW50UGFyc2VyLmggYmVoYXZpb3IuCiAKICAgICAgICAgdm9pZCBzZXRT
dGF0ZShTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1
aWxkZXIuY3BwCmluZGV4IDY4NzZiNjcwMTRjNmU3MGFhODNiNDc2YWNjMjJiMGVjYjQzY2ZmMTAu
LmQ0YjM0ZTJmMTBjZWVmZjhkZTlkODgyMmEzYjdhNWQ1YjExYjg3NzYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVU
cmVlQnVpbGRlci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCi0jaW5j
bHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggMDQzMWE4MzhiZGU2Y2Q1N2NhN2M4MTdkZjAzZGNi
YzFjMTJkMWU4Zi4uMWY4NzkwY2UwYTdmY2E0YzhkMzQ3NWVlZTQ0N2MyN2RiNmI1NGJkYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxEb2N1bWVudC5jcHAKQEAgLTY0LDExICs2NCwxMSBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0j
aW5jbHVkZSAiSFRNTDVUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2Vy
LmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRG
YWN0b3J5LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXpl
ci5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAt
MjkyLDkgKzI5Miw5IEBAIERvY3VtZW50UGFyc2VyKiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVRva2Vu
aXplcigpCiAjZW5kaWYKIAogICAgIGlmIChzZXR0aW5ncygpICYmIHNldHRpbmdzKCktPmh0bWw1
UGFyc2VyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gbmV3IEhUTUw1VG9rZW5pemVyKHRoaXMs
IHJlcG9ydEVycm9ycyk7CisgICAgICAgIHJldHVybiBuZXcgSFRNTDVEb2N1bWVudFBhcnNlcih0
aGlzLCByZXBvcnRFcnJvcnMpOwogCi0gICAgcmV0dXJuIG5ldyBIVE1MVG9rZW5pemVyKHRoaXMs
IHJlcG9ydEVycm9ycyk7CisgICAgcmV0dXJuIG5ldyBIVE1MRG9jdW1lbnRQYXJzZXIodGhpcywg
cmVwb3J0RXJyb3JzKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIFdlYkNvcmUvaHRtbC9I
VE1MVG9rZW5pemVyLmNwcApyZW5hbWUgdG8gV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAKaW5kZXggNGM1MWQzNThmZTVkZmM4MzAxOGY5MTNhZmZjNGQ1YjQ0ZjYxNTYwZC4uN2Ew
Y2UwZDgwOGViMGQ2Yjc0NzMxMzkwODE4Y2JhZTk3Yjk2MDhlNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5o
IgogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ1NTSGVscGVyLmgiCkBAIC02
Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAotLy8gVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBjaGFyYWN0
ZXJzIHRoZSB0b2tlbml6ZXIgd2lsbCBwcm9jZXNzIGJlZm9yZSAKKy8vIFRoaXMgdmFsdWUgaXMg
dXNlZCB0byBkZWZpbmUgaG93IG1hbnkgY2hhcmFjdGVycyB0aGUgdG9rZW5pemVyIHdpbGwgcHJv
Y2VzcyBiZWZvcmUKIC8vIHllaWxkaW5nIGNvbnRyb2wuCiAvLyBUbyBpbmNyZWFzZSByZXNwb25z
aXZuZXNzIHJlZHVjZSB0aGUgdG9rZW5pemVyIGNodW5rIHNpemUuCiBzdGF0aWMgY29uc3QgaW50
IGRlZmF1bHRUb2tlbml6ZXJDaHVua1NpemUgPSA0MDk2OwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0
aWMgY29uc3QgaW50IGRlZmF1bHRUb2tlbml6ZXJDaHVua1NpemUgPSA0MDk2OwogLy8gRklYTUU6
IFdlIHdvdWxkIGxpa2UgdGhpcyBjb25zdGFudCB0byBiZSAyMDBtcy4KIC8vIFlpZWxkaW5nIG1v
cmUgYWdncmVzc2l2ZWx5IHJlc3VsdHMgaW4gaW5jcmVhc2VkIHJlc3BvbnNpdmVuZXNzIGFuZCBi
ZXR0ZXIgaW5jcmVtZW50YWwgcmVuZGVyaW5nLgogLy8gSXQgc2xvd3MgZG93biBvdmVyYWxsIHBh
Z2UtbG9hZCBvbiBzbG93ZXIgbWFjaGluZXMsIHRob3VnaCwgc28gZm9yIG5vdyB3ZSBzZXQgYSB2
YWx1ZSBvZiA1MDAuCi0vLyBGb3Igc21hbGxlciBjaHVua3MgKGFib3ZlKSBkZWNyZWFzZSB0aGUg
dmFsdWUgb2YgVGltZXJEZWxheSBhcyB0aGUgdGhlIHRva2VuaXplciBzaG91bGQgbm90IAorLy8g
Rm9yIHNtYWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVhc2UgdGhlIHZhbHVlIG9mIFRpbWVyRGVs
YXkgYXMgdGhlIHRoZSB0b2tlbml6ZXIgc2hvdWxkIG5vdAogLy8geWllbGQgZm9yIGFzIGxvbmcg
YSBwZXJpb2Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGFrZSB3YXkgdG8gbG9uZyB0byBsb2FkIGEgcGFn
ZS4KIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFRva2VuaXplclRpbWVEZWxheSA9IDAuNTAw
OwogCkBAIC0xNDEsMTMgKzE0MSwxMyBAQCBpbmxpbmUgdm9pZCBUb2tlbjo6YWRkQXR0cmlidXRl
KEF0b21pY1N0cmluZyYgYXR0ck5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cgogICAgICAg
ICB9CiAgICAgICAgIGF0dHJzLT5pbnNlcnRBdHRyaWJ1dGUoYS5yZWxlYXNlKCksIHZpZXdTb3Vy
Y2VNb2RlKTsKICAgICB9Ci0gICAgCisKICAgICBhdHRyTmFtZSA9IGVtcHR5QXRvbTsKIH0KIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1IVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKEhU
TUxEb2N1bWVudCogZG9jLCBib29sIHJlcG9ydEVycm9ycykKK0hUTUxEb2N1bWVudFBhcnNlcjo6
SFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jLCBib29sIHJlcG9ydEVycm9ycykK
ICAgICA6IERvY3VtZW50UGFyc2VyKCkKICAgICAsIG1fYnVmZmVyKDApCiAgICAgLCBtX3Njcmlw
dENvZGUoMCkKQEAgLTE1Nyw4ICsxNTcsOCBAQCBIVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVy
KEhUTUxEb2N1bWVudCogZG9jLCBib29sIHJlcG9ydEVycm9ycykKICAgICAsIG1fZXhlY3V0aW5n
U2NyaXB0KDApCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2hhc1Nj
cmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoZmFsc2UpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZI
VE1MVG9rZW5pemVyOjp0aW1lckZpcmVkKQotICAgICwgbV9leHRlcm5hbFNjcmlwdHNUaW1lcih0
aGlzLCAmSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c1RpbWVyRmlyZWQpCisg
ICAgLCBtX3RpbWVyKHRoaXMsICZIVE1MRG9jdW1lbnRQYXJzZXI6OnRpbWVyRmlyZWQpCisgICAg
LCBtX2V4dGVybmFsU2NyaXB0c1RpbWVyKHRoaXMsICZIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1
dGVFeHRlcm5hbFNjcmlwdHNUaW1lckZpcmVkKQogICAgICwgbV9kb2MoZG9jKQogICAgICwgbV9w
YXJzZXIobmV3IEhUTUxQYXJzZXIoZG9jLCByZXBvcnRFcnJvcnMpKQogICAgICwgbV9pbldyaXRl
KGZhbHNlKQpAQCAtMTY4LDcgKzE2OCw3IEBAIEhUTUxUb2tlbml6ZXI6OkhUTUxUb2tlbml6ZXIo
SFRNTERvY3VtZW50KiBkb2MsIGJvb2wgcmVwb3J0RXJyb3JzKQogICAgIGJlZ2luKCk7CiB9CiAK
LUhUTUxUb2tlbml6ZXI6OkhUTUxUb2tlbml6ZXIoSFRNTFZpZXdTb3VyY2VEb2N1bWVudCogZG9j
KQorSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoSFRNTFZpZXdTb3VyY2VE
b2N1bWVudCogZG9jKQogICAgIDogRG9jdW1lbnRQYXJzZXIodHJ1ZSkKICAgICAsIG1fYnVmZmVy
KDApCiAgICAgLCBtX3NjcmlwdENvZGUoMCkKQEAgLTE3OCw4ICsxNzgsOCBAQCBIVE1MVG9rZW5p
emVyOjpIVE1MVG9rZW5pemVyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqIGRvYykKICAgICAsIG1f
ZXhlY3V0aW5nU2NyaXB0KDApCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAg
LCBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoZmFsc2UpCi0gICAgLCBtX3RpbWVy
KHRoaXMsICZIVE1MVG9rZW5pemVyOjp0aW1lckZpcmVkKQotICAgICwgbV9leHRlcm5hbFNjcmlw
dHNUaW1lcih0aGlzLCAmSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c1RpbWVy
RmlyZWQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZIVE1MRG9jdW1lbnRQYXJzZXI6OnRpbWVyRmly
ZWQpCisgICAgLCBtX2V4dGVybmFsU2NyaXB0c1RpbWVyKHRoaXMsICZIVE1MRG9jdW1lbnRQYXJz
ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNUaW1lckZpcmVkKQogICAgICwgbV9kb2MoZG9jKQog
ICAgICwgbV9wYXJzZXIoMCkKICAgICAsIG1faW5Xcml0ZShmYWxzZSkKQEAgLTE4OSw3ICsxODks
NyBAQCBIVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQq
IGRvYykKICAgICBiZWdpbigpOwogfQogCi1IVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKERv
Y3VtZW50RnJhZ21lbnQqIGZyYWcsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRp
bmdQZXJtaXNzaW9uKQorSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9j
dW1lbnRGcmFnbWVudCogZnJhZywgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGlu
Z1Blcm1pc3Npb24pCiAgICAgOiBtX2J1ZmZlcigwKQogICAgICwgbV9zY3JpcHRDb2RlKDApCiAg
ICAgLCBtX3NjcmlwdENvZGVTaXplKDApCkBAIC0xOTgsOCArMTk4LDggQEAgSFRNTFRva2VuaXpl
cjo6SFRNTFRva2VuaXplcihEb2N1bWVudEZyYWdtZW50KiBmcmFnLCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24KICAgICAsIG1fZXhlY3V0aW5nU2NyaXB0KDApCiAgICAgLCBtX3JlcXVlc3Rp
bmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMo
ZmFsc2UpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZIVE1MVG9rZW5pemVyOjp0aW1lckZpcmVkKQot
ICAgICwgbV9leHRlcm5hbFNjcmlwdHNUaW1lcih0aGlzLCAmSFRNTFRva2VuaXplcjo6ZXhlY3V0
ZUV4dGVybmFsU2NyaXB0c1RpbWVyRmlyZWQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZIVE1MRG9j
dW1lbnRQYXJzZXI6OnRpbWVyRmlyZWQpCisgICAgLCBtX2V4dGVybmFsU2NyaXB0c1RpbWVyKHRo
aXMsICZIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNUaW1lckZpcmVk
KQogICAgICwgbV9kb2MoZnJhZy0+ZG9jdW1lbnQoKSkKICAgICAsIG1fcGFyc2VyKG5ldyBIVE1M
UGFyc2VyKGZyYWcsIHNjcmlwdGluZ1Blcm1pc3Npb24pKQogICAgICwgbV9pbldyaXRlKGZhbHNl
KQpAQCAtMjA5LDcgKzIwOSw3IEBAIEhUTUxUb2tlbml6ZXI6OkhUTUxUb2tlbml6ZXIoRG9jdW1l
bnRGcmFnbWVudCogZnJhZywgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uCiAgICAgYmVnaW4o
KTsKIH0KIAotdm9pZCBIVE1MVG9rZW5pemVyOjpyZXNldCgpCit2b2lkIEhUTUxEb2N1bWVudFBh
cnNlcjo6cmVzZXQoKQogewogICAgIEFTU0VSVChtX2V4ZWN1dGluZ1NjcmlwdCA9PSAwKTsKIApA
QCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAgIG1faGFz
U2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cyA9IGZhbHNlOwogfQogCi12b2lkIEhUTUxUb2tl
bml6ZXI6OmJlZ2luKCkKK3ZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpiZWdpbigpCiB7CiAgICAg
bV9leGVjdXRpbmdTY3JpcHQgPSAwOwogICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IGZhbHNlOwpA
QCAtMjc2LDEyICsyNzYsMTIgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjpiZWdpbigpCiAgICAgICAg
IG1fdG9rZW5pemVyQ2h1bmtTaXplID0gZGVmYXVsdFRva2VuaXplckNodW5rU2l6ZTsKIH0KIAot
dm9pZCBIVE1MVG9rZW5pemVyOjpzZXRGb3JjZVN5bmNocm9ub3VzKGJvb2wgZm9yY2UpCit2b2lk
IEhUTUxEb2N1bWVudFBhcnNlcjo6c2V0Rm9yY2VTeW5jaHJvbm91cyhib29sIGZvcmNlKQogewog
ICAgIG1fc3RhdGUuc2V0Rm9yY2VTeW5jaHJvbm91cyhmb3JjZSk7CiB9CiAKLUhUTUxUb2tlbml6
ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZyBs
aXN0LCBTdGF0ZSBzdGF0ZSkKK0hUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGUgSFRNTERvY3VtZW50
UGFyc2VyOjpwcm9jZXNzTGlzdGluZyhTZWdtZW50ZWRTdHJpbmcgbGlzdCwgU3RhdGUgc3RhdGUp
CiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsaXN0aW5nICdsaXN0JyBhcwogICAg
IC8vIHByZWZvcm1hdHRlZCB0ZXh0LXRva2VucyB0byB0aGUgdG9rZW4tY29sbGVjdGlvbgpAQCAt
MzE4LDcgKzMxOCw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnByb2Nl
c3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZyBsaXN0LCBTdGF0ZSBzCiAgICAgcmV0dXJuIHN0YXRl
OwogfQogCi1IVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZU5vbkhUTUxU
ZXh0KFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKK0hUTUxEb2N1bWVudFBhcnNl
cjo6U3RhdGUgSFRNTERvY3VtZW50UGFyc2VyOjpwYXJzZU5vbkhUTUxUZXh0KFNlZ21lbnRlZFN0
cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoc3RhdGUuaW5UZXh0QXJlYSgp
IHx8IHN0YXRlLmluVGl0bGUoKSB8fCBzdGF0ZS5pbklGcmFtZSgpIHx8ICFzdGF0ZS5oYXNFbnRp
dHlTdGF0ZSgpKTsKICAgICBBU1NFUlQoIXN0YXRlLmhhc1RhZ1N0YXRlKCkpOwpAQCAtMzI2LDcg
KzMyNiw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlTm9uSFRN
TFRleHQoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlCiAgICAgaWYgKHN0YXRlLmluU2NyaXB0
KCkgJiYgIW1fY3VycmVudFNjcmlwdFRhZ1N0YXJ0TGluZU51bWJlcikKICAgICAgICAgbV9jdXJy
ZW50U2NyaXB0VGFnU3RhcnRMaW5lTnVtYmVyID0gbV9saW5lTnVtYmVyOwogCi0gICAgaWYgKHN0
YXRlLmluQ29tbWVudCgpKSAKKyAgICBpZiAoc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgIHN0
YXRlID0gcGFyc2VDb21tZW50KHNyYywgc3RhdGUpOwogCiAgICAgaW50IGxhc3REZWNvZGVkRW50
aXR5UG9zaXRpb24gPSAtMTsKQEAgLTM1MiwxMyArMzUyLDEzIEBAIEhUTUxUb2tlbml6ZXI6OlN0
YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlTm9uSFRNTFRleHQoU2VnbWVudGVkU3RyaW5nJiBzcmMs
IFN0YXRlCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHByb2Nl
c3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZyhtX3NjcmlwdENvZGUsIG1fc2NyaXB0Q29kZVNpemUp
LCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgcHJvY2Vzc1Rva2VuKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHN0YXRlLmluU3R5bGUoKSkgeyAKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGUuaW5T
dHlsZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudFRva2VuLnRhZ05hbWUgPSBz
dHlsZVRhZy5sb2NhbE5hbWUoKTsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50VG9rZW4u
YmVnaW5UYWcgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmluVGV4
dEFyZWEoKSkgeyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmluVGV4dEFyZWEo
KSkgewogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUb2tlbi50YWdOYW1lID0gdGV4dGFy
ZWFUYWcubG9jYWxOYW1lKCk7CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudFRva2VuLmJl
Z2luVGFnID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5pblRpdGxl
KCkpIHsgCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5pblRpdGxlKCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgbV9jdXJyZW50VG9rZW4udGFnTmFtZSA9IHRpdGxlVGFnLmxvY2Fs
TmFtZSgpOwogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUb2tlbi5iZWdpblRhZyA9IGZh
bHNlOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuaW5YbXAoKSkgewpAQCAtNDE0
LDIwICs0MTQsMjAgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VO
b25IVE1MVGV4dChTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUKIAogICAgIHJldHVybiBzdGF0
ZTsKIH0KLSAgICAKLUhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnNjcmlwdEhh
bmRsZXIoU3RhdGUgc3RhdGUpCisKK0hUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGUgSFRNTERvY3Vt
ZW50UGFyc2VyOjpzY3JpcHRIYW5kbGVyKFN0YXRlIHN0YXRlKQogewogICAgIC8vIFdlIGFyZSBp
bnNpZGUgYSA8c2NyaXB0PgogICAgIGJvb2wgZG9TY3JpcHRFeGVjID0gZmFsc2U7CiAgICAgaW50
IHN0YXJ0TGluZSA9IG1fY3VycmVudFNjcmlwdFRhZ1N0YXJ0TGluZU51bWJlciArIDE7IC8vIFNj
cmlwdCBsaW5lIG51bWJlcnMgYXJlIDEgYmFzZWQsIEhUTUxUb2tlbnppZXIgbGluZSBudW1iZXJz
IGFyZSAwIGJhc2VkCi0gICAgCisKICAgICAvLyBSZXNldCBtX2N1cnJlbnRTY3JpcHRUYWdTdGFy
dExpbmVOdW1iZXIgdG8gaW5kaWNhdGUgdGhhdCB3ZSd2ZSBmaW5pc2hlZCBwYXJzaW5nIHRoZSBj
dXJyZW50IHNjcmlwdCBlbGVtZW50CiAgICAgbV9jdXJyZW50U2NyaXB0VGFnU3RhcnRMaW5lTnVt
YmVyID0gMDsKIAotICAgIC8vIChCdWd6aWxsYSAzODM3KSBTY3JpcHRzIGZvbGxvd2luZyBhIGZy
YW1lc2V0IGVsZW1lbnQgc2hvdWxkIG5vdCBleGVjdXRlIG9yLCAKKyAgICAvLyAoQnVnemlsbGEg
MzgzNykgU2NyaXB0cyBmb2xsb3dpbmcgYSBmcmFtZXNldCBlbGVtZW50IHNob3VsZCBub3QgZXhl
Y3V0ZSBvciwKICAgICAvLyBpbiB0aGUgY2FzZSBvZiBleHRlcm4gc2NyaXB0cywgZXZlbiBsb2Fk
LgogICAgIGJvb2wgZm9sbG93aW5nRnJhbWVzZXQgPSAobV9kb2MtPmJvZHkoKSAmJiBtX2RvYy0+
Ym9keSgpLT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSk7Ci0gIAorCiAgICAgQ2FjaGVkU2NyaXB0
KiBjcyA9IDA7CiAgICAgLy8gZG9uJ3QgbG9hZCBleHRlcm5hbCBzY3JpcHRzIGZvciBzdGFuZGFs
b25lIGRvY3VtZW50cyAoZm9yIG5vdykKICAgICBpZiAoIWluVmlld1NvdXJjZU1vZGUoKSkgewpA
QCAtNDU3LDEzICs0NTcsMTMgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6
c2NyaXB0SGFuZGxlcihTdGF0ZSBzdGF0ZSkKIAogICAgIHN0YXRlID0gcHJvY2Vzc0xpc3Rpbmco
U2VnbWVudGVkU3RyaW5nKG1fc2NyaXB0Q29kZSwgbV9zY3JpcHRDb2RlU2l6ZSksIHN0YXRlKTsK
ICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IHByb2Nlc3NUb2tlbigpOwotICAgIAorCiAgICAgaWYg
KG5vZGUgJiYgbV9zY3JpcHRpbmdQZXJtaXNzaW9uID09IEZyYWdtZW50U2NyaXB0aW5nTm90QWxs
b3dlZCkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICBub2RlLT5yZW1vdmUo
ZWMpOwogICAgICAgICBub2RlID0gMDsKICAgICB9Ci0gICAgCisKICAgICBTdHJpbmcgc2NyaXB0
U3RyaW5nID0gbm9kZSA/IG5vZGUtPnRleHRDb250ZW50KCkgOiAiIjsKICAgICBtX2N1cnJlbnRU
b2tlbi50YWdOYW1lID0gc2NyaXB0VGFnLmxvY2FsTmFtZSgpOwogICAgIG1fY3VycmVudFRva2Vu
LmJlZ2luVGFnID0gZmFsc2U7CkBAIC00NzEsNyArNDcxLDcgQEAgSFRNTFRva2VuaXplcjo6U3Rh
dGUgSFRNTFRva2VuaXplcjo6c2NyaXB0SGFuZGxlcihTdGF0ZSBzdGF0ZSkKIAogICAgIHN0YXRl
LnNldEluU2NyaXB0KGZhbHNlKTsKICAgICBtX3NjcmlwdENvZGVTaXplID0gbV9zY3JpcHRDb2Rl
UmVzeW5jID0gMDsKLSAgICAKKwogICAgIC8vIEZJWE1FOiBUaGUgc2NyaXB0IHNob3VsZCBiZSBz
eW50YXggaGlnaGxpZ2h0ZWQuCiAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKICAgICAgICAg
cmV0dXJuIHN0YXRlOwpAQCAtNTMxLDcgKzUzMSw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhU
TUxUb2tlbml6ZXI6OnNjcmlwdEhhbmRsZXIoU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICBzdGF0
ZSA9IG1fc3RhdGU7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICNpZiBQUkVMT0FEX1NDQU5O
RVJfRU5BQkxFRAogICAgIGlmICghbV9wZW5kaW5nU2NyaXB0cy5pc0VtcHR5KCkgJiYgIW1fZXhl
Y3V0aW5nU2NyaXB0KSB7CiAgICAgICAgIGlmICghbV9wcmVsb2FkU2Nhbm5lcikKQEAgLTU0Nywx
MiArNTQ3LDEyIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnNjcmlwdEhh
bmRsZXIoU3RhdGUgc3RhdGUpCiAgICAgcmV0dXJuIHN0YXRlOwogfQogCi1IVE1MVG9rZW5pemVy
OjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpzY3JpcHRFeGVjdXRpb24oY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSwgU3RhdGUgc3RhdGUpCitIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRl
IEhUTUxEb2N1bWVudFBhcnNlcjo6c2NyaXB0RXhlY3V0aW9uKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZUNvZGUsIFN0YXRlIHN0YXRlKQogewogICAgIGlmIChtX2ZyYWdtZW50IHx8ICFt
X2RvYy0+ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgIG1fZXhlY3V0aW5nU2Ny
aXB0Kys7Ci0gICAgCisKICAgICBTZWdtZW50ZWRTdHJpbmcqIHNhdmVkUHJlcGVuZGluZ1NyYyA9
IG1fY3VycmVudFByZXBlbmRpbmdTcmM7CiAgICAgU2VnbWVudGVkU3RyaW5nIHByZXBlbmRpbmdT
cmM7CiAgICAgbV9jdXJyZW50UHJlcGVuZGluZ1NyYyA9ICZwcmVwZW5kaW5nU3JjOwpAQCAtNTY2
LDcgKzU2Niw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnNjcmlwdEV4
ZWN1dGlvbihjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyCiAgICAgbV9leGVjdXRpbmdTY3Jp
cHQtLTsKIAogICAgIGlmICghbV9leGVjdXRpbmdTY3JpcHQgJiYgIXN0YXRlLmxvYWRpbmdFeHRT
Y3JpcHQoKSkgewotICAgICAgICBtX3BlbmRpbmdTcmMucHJlcGVuZChwcmVwZW5kaW5nU3JjKTsg
ICAgICAgIAorICAgICAgICBtX3BlbmRpbmdTcmMucHJlcGVuZChwcmVwZW5kaW5nU3JjKTsKICAg
ICAgICAgbV9zcmMuYXBwZW5kKG1fcGVuZGluZ1NyYyk7CiAgICAgICAgIG1fcGVuZGluZ1NyYy5j
bGVhcigpOwogICAgIH0gZWxzZSBpZiAoIXByZXBlbmRpbmdTcmMuaXNFbXB0eSgpKSB7CkBAIC01
ODIsNyArNTgyLDcgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6c2NyaXB0
RXhlY3V0aW9uKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXIKICAgICAgICAgICAgICAgICBt
X2N1cnJlbnRQcmVwZW5kaW5nU3JjLT5hcHBlbmQocHJlcGVuZGluZ1NyYyk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgbV9wZW5kaW5nU3JjLnByZXBlbmQocHJlcGVuZGluZ1Ny
Yyk7Ci0gICAgICAgICAgICAKKwogI2lmIFBSRUxPQURfU0NBTk5FUl9FTkFCTEVECiAgICAgICAg
ICAgICAvLyBXZSBhcmUgc3R1Y2sgd2FpdGluZyBmb3IgYW5vdGhlciBzY3JpcHQuIExldHMgY2hl
Y2sgdGhlIHNvdXJjZSB0aGF0CiAgICAgICAgICAgICAvLyB3YXMganVzdCBkb2N1bWVudC53cml0
ZSgpbiBmb3IgYW55dGhpbmcgdG8gbG9hZC4KQEAgLTU5OSwxMSArNTk5LDExIEBAIEhUTUxUb2tl
bml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnNjcmlwdEV4ZWN1dGlvbihjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyCiAgICAgfQogCiAgICAgbV9jdXJyZW50UHJlcGVuZGluZ1NyYyA9IHNh
dmVkUHJlcGVuZGluZ1NyYzsKLSAgICAKKwogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VDb21tZW50KFNlZ21lbnRlZFN0cmlu
ZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKK0hUTUxEb2N1bWVudFBhcnNlcjo6U3RhdGUgSFRNTERvY3Vt
ZW50UGFyc2VyOjpwYXJzZUNvbW1lbnQoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRl
KQogewogICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIGNvZGUgZXZlbiBydW4gZm9yIGNvbW1l
bnRzIGluc2lkZSA8c2NyaXB0PiBhbmQgPHN0eWxlPj8gVGhpcyBzZWVtcyBib2d1cy4KICAgICBj
aGVja1NjcmlwdEJ1ZmZlcihzcmMubGVuZ3RoKCkpOwpAQCAtNjE1LDcgKzYxNSw3IEBAIEhUTUxU
b2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlQ29tbWVudChTZWdtZW50ZWRTdHJp
bmcmIHNyYywgU3RhdGUgc3RhCiAgICAgICAgICAgICBpbnQgZW5kQ2hhcnNDb3VudCA9IDE7IC8v
IHN0YXJ0IG9mZiB3aXRoIG9uZSBmb3IgdGhlICc+JyBjaGFyYWN0ZXIKICAgICAgICAgICAgIGlm
IChtX3NjcmlwdENvZGVTaXplID4gMiAmJiBtX3NjcmlwdENvZGVbbV9zY3JpcHRDb2RlU2l6ZS0z
XSA9PSAnLScgJiYgbV9zY3JpcHRDb2RlW21fc2NyaXB0Q29kZVNpemUtMl0gPT0gJy0nKSB7CiAg
ICAgICAgICAgICAgICAgZW5kQ2hhcnNDb3VudCA9IDM7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KG1fc2NyaXB0Q29kZVNpemUgPiAzICYmIG1fc2NyaXB0Q29kZVttX3NjcmlwdENvZGVTaXplLTRd
ID09ICctJyAmJiBtX3NjcmlwdENvZGVbbV9zY3JpcHRDb2RlU2l6ZS0zXSA9PSAnLScgJiYgCisg
ICAgICAgICAgICB9IGVsc2UgaWYgKG1fc2NyaXB0Q29kZVNpemUgPiAzICYmIG1fc2NyaXB0Q29k
ZVttX3NjcmlwdENvZGVTaXplLTRdID09ICctJyAmJiBtX3NjcmlwdENvZGVbbV9zY3JpcHRDb2Rl
U2l6ZS0zXSA9PSAnLScgJiYKICAgICAgICAgICAgICAgICBtX3NjcmlwdENvZGVbbV9zY3JpcHRD
b2RlU2l6ZS0yXSA9PSAnIScpIHsKICAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2VycyB3
aWxsIGFjY2VwdCAtLSE+IGFzIGEgY2xvc2UgY29tbWVudCwgZXZlbiB0aG91Z2ggaXQncwogICAg
ICAgICAgICAgICAgIC8vIG5vdCB0ZWNobmljYWxseSB2YWxpZC4KQEAgLTY0Niw3ICs2NDYsNyBA
QCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZUNvbW1lbnQoU2VnbWVu
dGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VTZXJ2ZXIoU2VnbWVudGVkU3RyaW5n
JiBzcmMsIFN0YXRlIHN0YXRlKQorSFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZSBIVE1MRG9jdW1l
bnRQYXJzZXI6OnBhcnNlU2VydmVyKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkK
IHsKICAgICBjaGVja1NjcmlwdEJ1ZmZlcihzcmMubGVuZ3RoKCkpOwogICAgIHdoaWxlICghc3Jj
LmlzRW1wdHkoKSkgewpAQCAtNjYzLDcgKzY2Myw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhU
TUxUb2tlbml6ZXI6OnBhcnNlU2VydmVyKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0
CiAgICAgcmV0dXJuIHN0YXRlOwogfQogCi1IVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5p
emVyOjpwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3Rh
dGUgc3RhdGUpCitIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlIEhUTUxEb2N1bWVudFBhcnNlcjo6
cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0
YXRlKQogewogICAgIFVDaGFyIG9sZGNoYXIgPSAwOwogICAgIHdoaWxlICghc3JjLmlzRW1wdHko
KSkgewpAQCAtNjg1LDExICs2ODUsMTEgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2Vu
aXplcjo6cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oU2VnbWVudGVkU3RyaW5nJgogICAgICAg
ICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOwogICAgICAgICBvbGRjaGFyID0gY2hiZWdpbjsK
ICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKLUhUTUxUb2tlbml6ZXI6OlN0
YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGV4dChTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUg
c3RhdGUpCitIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlIEhUTUxEb2N1bWVudFBhcnNlcjo6cGFy
c2VUZXh0KFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICB3aGlsZSAo
IXNyYy5pc0VtcHR5KCkpIHsKICAgICAgICAgVUNoYXIgY2MgPSAqc3JjOwpAQCAtNzE3LDcgKzcx
Nyw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGV4dChTZWdt
ZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiB9CiAKIAotSFRNTFRva2VuaXplcjo6U3Rh
dGUgSFRNTFRva2VuaXplcjo6cGFyc2VFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFVDaGFy
KiYgZGVzdCwgU3RhdGUgc3RhdGUsIHVuc2lnbmVkJiBjQnVmZmVyUG9zLCBib29sIHN0YXJ0LCBi
b29sIHBhcnNpbmdUYWcpCitIVE1MRG9jdW1lbnRQYXJzZXI6OlN0YXRlIEhUTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2VFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFVDaGFyKiYgZGVzdCwgU3Rh
dGUgc3RhdGUsIHVuc2lnbmVkJiBjQnVmZmVyUG9zLCBib29sIHN0YXJ0LCBib29sIHBhcnNpbmdU
YWcpCiB7CiAgICAgaWYgKHN0YXJ0KSB7CiAgICAgICAgIGNCdWZmZXJQb3MgPSAwOwpAQCAtNzMx
LDcgKzczMSw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlRW50
aXR5KFNlZ21lbnRlZFN0cmluZyYgc3JjLCBVQ2hhciomIGRlCiAgICAgICAgIGNhc2UgTm9FbnRp
dHk6CiAgICAgICAgICAgICBBU1NFUlQoc3RhdGUuZW50aXR5U3RhdGUoKSAhPSBOb0VudGl0eSk7
CiAgICAgICAgICAgICByZXR1cm4gc3RhdGU7Ci0gICAgICAgIAorCiAgICAgICAgIGNhc2UgU2Vh
cmNoRW50aXR5OgogICAgICAgICAgICAgaWYgKGNjID09ICcjJykgewogICAgICAgICAgICAgICAg
IG1fY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gY2M7CkBAIC03NjksNyArNzY5LDcgQEAgSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VFbnRpdHkoU2VnbWVudGVkU3RyaW5n
JiBzcmMsIFVDaGFyKiYgZGUKICAgICAgICAgICAgICAgICBtX2NCdWZmZXJbY0J1ZmZlclBvcysr
XSA9IGNjOwogICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChjQnVmZmVyUG9zID09IDEwKSAgCisgICAgICAg
ICAgICBpZiAoY0J1ZmZlclBvcyA9PSAxMCkKICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRFbnRp
dHlTdGF0ZShTZWFyY2hTZW1pY29sb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTc4OCw3ICs3ODgsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpw
YXJzZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNyYywgVUNoYXIqJiBkZQogICAgICAgICAgICAg
ICAgIG1fY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gY2M7CiAgICAgICAgICAgICAgICAgc3JjLmFk
dmFuY2VQYXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGNC
dWZmZXJQb3MgPT0gOSkgIAorICAgICAgICAgICAgaWYgKGNCdWZmZXJQb3MgPT0gOSkKICAgICAg
ICAgICAgICAgICBzdGF0ZS5zZXRFbnRpdHlTdGF0ZShTZWFyY2hTZW1pY29sb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTgwNiw3ICs4MDYsNyBAQCBIVE1MVG9rZW5pemVy
OjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNyYywg
VUNoYXIqJiBkZQogICAgICAgICAgICAgICAgIG1fY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gY2M7
CiAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKGNCdWZmZXJQb3MgPT0gOSkgCisgICAgICAgICAgICBpZiAo
Y0J1ZmZlclBvcyA9PSA5KQogICAgICAgICAgICAgICAgIHN0YXRlLnNldEVudGl0eVN0YXRlKFNl
YXJjaFNlbWljb2xvbik7CiAgICAgICAgICAgICBpZiAoc3RhdGUuZW50aXR5U3RhdGUoKSA9PSBT
ZWFyY2hTZW1pY29sb24pIHsKICAgICAgICAgICAgICAgICBpZiAoY0J1ZmZlclBvcyA+IDEpIHsK
QEAgLTg5MSw3ICs4OTEsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpw
YXJzZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNyYywgVUNoYXIqJiBkZQogICAgIHJldHVybiBz
dGF0ZTsKIH0KIAotSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VEb2N0
eXBlKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKK0hUTUxEb2N1bWVudFBhcnNl
cjo6U3RhdGUgSFRNTERvY3VtZW50UGFyc2VyOjpwYXJzZURvY3R5cGUoU2VnbWVudGVkU3RyaW5n
JiBzcmMsIFN0YXRlIHN0YXRlKQogewogICAgIEFTU0VSVChzdGF0ZS5pbkRvY3R5cGUoKSk7CiAg
ICAgd2hpbGUgKCFzcmMuaXNFbXB0eSgpICYmIHN0YXRlLmluRG9jdHlwZSgpKSB7CkBAIC0xMTA3
LDcgKzExMDcsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZURv
Y3R5cGUoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YQogICAgIHJldHVybiBzdGF0ZTsK
IH0KIAotSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVu
dGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQorSFRNTERvY3VtZW50UGFyc2VyOjpTdGF0ZSBI
VE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlVGFnKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBz
dGF0ZSkKIHsKICAgICBBU1NFUlQoIXN0YXRlLmhhc0VudGl0eVN0YXRlKCkpOwogCkBAIC0xMTU5
LDcgKzExNTksNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRh
ZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5n
IGZvciAnPCEtLScgc2VxdWVuY2UKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPiAwKSB7CiAgICAgICAgICAgICAgICAg
aWYgKHRvQVNDSUlMb3dlcigqc3JjKSA9PSBkb2N0eXBlU3RhcnRbbV9kb2N0eXBlU2VhcmNoQ291
bnRdKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50Kys7CkBAIC0x
MTg5LDcgKzExODksNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJz
ZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIHRvbG93ZXIo
KSBzaG93cyB1cCBvbiBwcm9maWxlcy4gVGhpcyBpcyBmYXN0ZXIhCiAgICAgICAgICAgICAgICAg
aWYgKGN1cmNoYXIgPj0gJ0EnICYmIGN1cmNoYXIgPD0gJ1onICYmICFpblZpZXdTb3VyY2VNb2Rl
KCkpCiAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gY3VyY2hh
ciArICgnYScgLSAnQScpOwpAQCAtMTI1NSw3ICsxMjU1LDcgQEAgSFRNTFRva2VuaXplcjo6U3Rh
dGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0
YXRlKQogICAgICAgICAgICAgaW50IGxsID0gbWluKHNyYy5sZW5ndGgoKSwgQ0JVRkxFTiAtIGNC
dWZmZXJQb3MpOwogICAgICAgICAgICAgd2hpbGUgKGxsLS0pIHsKICAgICAgICAgICAgICAgICBV
Q2hhciBjdXJjaGFyID0gKnNyYzsKLSAgICAgICAgICAgICAgICAvLyBJZiB3ZSBlbmNvdW50ZXIg
YSAiLyIgd2hlbiBzY2FubmluZyBhbiBhdHRyaWJ1dGUgbmFtZSwgdHJlYXQgaXQgYXMgYSBkZWxp
bWl0ZXIuICBUaGlzIGFsbG93cyB0aGUgCisgICAgICAgICAgICAgICAgLy8gSWYgd2UgZW5jb3Vu
dGVyIGEgIi8iIHdoZW4gc2Nhbm5pbmcgYW4gYXR0cmlidXRlIG5hbWUsIHRyZWF0IGl0IGFzIGEg
ZGVsaW1pdGVyLiAgVGhpcyBhbGxvd3MgdGhlCiAgICAgICAgICAgICAgICAgLy8gY2FzZXMgbGlr
ZSA8aW5wdXQgdHlwZT1jaGVja2JveCBjaGVja2VkLz4gdG8gd29yayAoYW5kIGFjY29tbW9kYXRl
cyBYTUwtc3R5bGUgc3ludGF4IGFzIHBlciBIVE1MNSkuCiAgICAgICAgICAgICAgICAgaWYgKGN1
cmNoYXIgPD0gJz4nICYmIChjdXJjaGFyID49ICc8JyB8fCBpc0FTQ0lJU3BhY2UoY3VyY2hhcikg
fHwgY3VyY2hhciA9PSAnLycpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlcltjQnVm
ZmVyUG9zXSA9ICdcMCc7CkBAIC0xMjY3LDEzICsxMjY3LDEzIEBAIEhUTUxUb2tlbml6ZXI6OlN0
YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBz
dGF0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudFRva2VuLmFkZFZpZXdTb3Vy
Y2VDaGFyKCdhJyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIHRvbG93ZXIoKSBzaG93
cyB1cCBvbiBwcm9maWxlcy4gVGhpcyBpcyBmYXN0ZXIhCiAgICAgICAgICAgICAgICAgaWYgKGN1
cmNoYXIgPj0gJ0EnICYmIGN1cmNoYXIgPD0gJ1onICYmICFpblZpZXdTb3VyY2VNb2RlKCkpCiAg
ICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gY3VyY2hhciArICgn
YScgLSAnQScpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbV9j
QnVmZmVyW2NCdWZmZXJQb3MrK10gPSBjdXJjaGFyOwotICAgICAgICAgICAgICAgICAgICAKKwog
ICAgICAgICAgICAgICAgIG1fcmF3QXR0cmlidXRlQmVmb3JlVmFsdWUuYXBwZW5kKGN1cmNoYXIp
OwogICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CiAgICAgICAgICAg
ICB9CkBAIC0xMzc0LDcgKzEzNzQsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5p
emVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0cXVvdGUgPSBOb1F1b3RlOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCisK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cmNoYXIgPT0gJyYnKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSA9IHBhcnNlRW50aXR5KHNyYywgbV9kZXN0LCBzdGF0ZSwgY0J1ZmZlclBv
cywgdHJ1ZSwgdHJ1ZSk7CkBAIC0xNTc3LDcgKzE1NzcsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0
ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3Rh
dGUpCiAgICAgcmV0dXJuIHN0YXRlOwogfQogCi1pbmxpbmUgYm9vbCBIVE1MVG9rZW5pemVyOjpj
b250aW51ZVByb2Nlc3NpbmcoaW50JiBwcm9jZXNzZWRDb3VudCwgZG91YmxlIHN0YXJ0VGltZSwg
U3RhdGUgJnN0YXRlKQoraW5saW5lIGJvb2wgSFRNTERvY3VtZW50UGFyc2VyOjpjb250aW51ZVBy
b2Nlc3NpbmcoaW50JiBwcm9jZXNzZWRDb3VudCwgZG91YmxlIHN0YXJ0VGltZSwgU3RhdGUgJnN0
YXRlKQogewogICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYmUgY2hlY2tpbmcgZWxhcHNlZCB0aW1l
IHdpdGggZXZlcnkgY2hhcmFjdGVyLCBzbyB3ZSBvbmx5IGNoZWNrIGFmdGVyIHdlJ3ZlCiAgICAg
Ly8gcHJvY2Vzc2VkIGEgY2VydGFpbiBudW1iZXIgb2YgY2hhcmFjdGVycy4KQEAgLTE1ODksMjEg
KzE1ODksMjEgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6Y29udGludWVQcm9jZXNzaW5n
KGludCYgcHJvY2Vzc2VkQ291bnQsIGRvdWJsZSBzdGFydFQKICAgICAgICAgICAgIC8qIEZJWE1F
OiBXZSdkIGxpa2UgdG8geWllbGQgYWdncmVzc2l2ZWx5IHRvIGdpdmUgc3R5bGVzaGVldHMgdGhl
IG9wcG9ydHVuaXR5IHRvCiAgICAgICAgICAgICAgICBsb2FkLCBidXQgdGhpcyBodXJ0cyBvdmVy
YWxsIHBlcmZvcm1hbmNlIG9uIHNsb3dlciBtYWNoaW5lcy4gIEZvciBub3cgdHVybiB0aGlzCiAg
ICAgICAgICAgICAgICBvZmYuCi0gICAgICAgICAgICB8fCAoIW1fZG9jLT5oYXZlU3R5bGVzaGVl
dHNMb2FkZWQoKSAmJiAKKyAgICAgICAgICAgIHx8ICghbV9kb2MtPmhhdmVTdHlsZXNoZWV0c0xv
YWRlZCgpICYmCiAgICAgICAgICAgICAgICAgKG1fZG9jLT5kb2N1bWVudEVsZW1lbnQoKS0+aWQo
KSAhPSBJRF9IVE1MIHx8IG1fZG9jLT5ib2R5KCkpKSkgeyovCiAgICAgICAgICAgICAvLyBTY2hl
ZHVsZSB0aGUgdGltZXIgdG8ga2VlcCBwcm9jZXNzaW5nIGFzIHNvb24gYXMgcG9zc2libGUuCiAg
ICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIHByb2Nlc3NlZENvdW50Kys7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIC8vIFR1cm5zIHRoZSBzdGF0ZW1hY2hpbmUgb25lIGNyYW5r
IHVzaW5nIHRoZSBwYXNzZWQgaW4gU3RhdGUgb2JqZWN0LgogLy8gVGhpcyBkb2VzIG5vdCBtb2Rp
ZnkgbV9zdGF0ZSBkaXJlY3RseSBpbiBvcmRlciB0byBiZSByZWVudHJhbnQuCi1BTFdBWVNfSU5M
SU5FIHZvaWQgSFRNTFRva2VuaXplcjo6YWR2YW5jZShTdGF0ZSYgc3RhdGUpCitBTFdBWVNfSU5M
SU5FIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjphZHZhbmNlKFN0YXRlJiBzdGF0ZSkKIHsKICAg
ICAvLyBkbyB3ZSBuZWVkIHRvIGVubGFyZ2UgdGhlIGJ1ZmZlcj8KICAgICBjaGVja0J1ZmZlcigp
OwpAQCAtMTYzNiw3ICsxNjM2LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEhUTUxUb2tlbml6ZXI6
OmFkdmFuY2UoU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVRhZyhtX3Ny
Yywgc3RhdGUpOwogICAgICAgICBlbHNlIGlmIChzdGF0ZS5zdGFydFRhZygpKSB7CiAgICAgICAg
ICAgICBzdGF0ZS5zZXRTdGFydFRhZyhmYWxzZSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAg
ICAgc3dpdGNoIChjYykgewogICAgICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC0xNzExLDcgKzE3MTEsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSFRNTFRva2Vu
aXplcjo6YWR2YW5jZShTdGF0ZSYgc3RhdGUpCiAgICAgfQogfQogCi12b2lkIEhUTUxUb2tlbml6
ZXI6OndpbGxXcml0ZUhUTUwoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCit2b2lkIEhU
TUxEb2N1bWVudFBhcnNlcjo6d2lsbFdyaXRlSFRNTChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSkKIHsKICAgICAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX2RvYy0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjp3aWxsV3Jp
dGVIVE1MKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQogICAgICNlbmRpZgogfQogCi12
b2lkIEhUTUxUb2tlbml6ZXI6OmRpZFdyaXRlSFRNTCgpCit2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6ZGlkV3JpdGVIVE1MKCkKIHsKICAgICAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAg
aWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX2RvYy0+aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQpAQCAtMTcyNywxMSArMTcyNywxMSBAQCB2b2lkIEhUTUxUb2tl
bml6ZXI6OmRpZFdyaXRlSFRNTCgpCiAgICAgI2VuZGlmCiB9CiAKLXZvaWQgSFRNTFRva2VuaXpl
cjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzdHIsIGJvb2wgYXBwZW5kRGF0YSkKK3Zv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHN0ciwg
Ym9vbCBhcHBlbmREYXRhKQogewogICAgIGlmICghbV9idWZmZXIpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTc1Miw3ICsxNzUyLDcgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50
ZWRTdHJpbmcmIHN0ciwgYm9vbCBhcHBlbmREYXRhKQogICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgCisKICNpZiBQUkVMT0FEX1NDQU5ORVJfRU5BQkxFRAogICAgIGlmICht
X3ByZWxvYWRTY2FubmVyICYmIG1fcHJlbG9hZFNjYW5uZXItPmluUHJvZ3Jlc3MoKSAmJiBhcHBl
bmREYXRhKQogICAgICAgICBtX3ByZWxvYWRTY2FubmVyLT5lbmQoKTsKQEAgLTE3OTAsMjkgKzE3
OTAsMjkgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcm
IHN0ciwgYm9vbCBhcHBlbmREYXRhKQogCiAgICAgaWYgKG1fbm9Nb3JlRGF0YSAmJiAhbV9pbldy
aXRlICYmICFzdGF0ZS5sb2FkaW5nRXh0U2NyaXB0KCkgJiYgIW1fZXhlY3V0aW5nU2NyaXB0ICYm
ICFtX3RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIGVuZCgpOyAvLyB0aGlzIGFjdHVhbGx5IGNh
dXNlcyB1cyB0byBiZSBkZWxldGVkCi0gICAgCisKICAgICAvLyBBZnRlciBwYXJzaW5nLCBnbyBh
aGVhZCBhbmQgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMuCiAgICAgSW1hZ2VMb2Fk
ZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKIH0KIAotdm9pZCBIVE1MVG9r
ZW5pemVyOjpzdG9wUGFyc2luZygpCit2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNp
bmcoKQogewogICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwogICAgIG1fdGltZXIu
c3RvcCgpOwogCi0gICAgLy8gRklYTUU6IFdoeSBpcyBIVE1MVG9rZW5pemVyIHRoZSBvbmx5IERv
Y3VtZW50UGFyc2VyIHdoaWNoIGNhbGxzIGNoZWNrQ29tcGxldGVkPworICAgIC8vIEZJWE1FOiBX
aHkgaXMgSFRNTERvY3VtZW50UGFyc2VyIHRoZSBvbmx5IERvY3VtZW50UGFyc2VyIHdoaWNoIGNh
bGxzIGNoZWNrQ29tcGxldGVkPwogICAgIC8vIFRoZSBGcmFtZUxvYWRlciBuZWVkcyB0byBrbm93
IHRoYXQgdGhlIHRva2VuaXplciBoYXMgZmluaXNoZWQgd2l0aCBpdHMgZGF0YSwKICAgICAvLyBy
ZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaGFwcGVuZWQgbmF0dXJhbGx5IG9yIGR1ZSB0byBtYW51
YWwgaW50ZXJ2ZW50aW9uLgogICAgIGlmICghbV9mcmFnbWVudCAmJiBtX2RvYy0+ZnJhbWUoKSkK
ICAgICAgICAgbV9kb2MtPmZyYW1lKCktPmxvYWRlcigpLT5jaGVja0NvbXBsZXRlZCgpOwogfQog
Ci1ib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NpbmdEYXRhKCkgY29uc3QKK2Jvb2wgSFRNTERv
Y3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGlt
ZXIuaXNBY3RpdmUoKSB8fCBtX2luV3JpdGU7CiB9CiAKLXZvaWQgSFRNTFRva2VuaXplcjo6dGlt
ZXJGaXJlZChUaW1lcjxIVE1MVG9rZW5pemVyPiopCit2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
dGltZXJGaXJlZChUaW1lcjxIVE1MRG9jdW1lbnRQYXJzZXI+KikKIHsKICAgICBpZiAobV9kb2Mt
PnZpZXcoKSAmJiBtX2RvYy0+dmlldygpLT5sYXlvdXRQZW5kaW5nKCkgJiYgIW1fZG9jLT5taW5p
bXVtTGF5b3V0RGVsYXkoKSkgewogICAgICAgICAvLyBSZXN0YXJ0IHRoZSB0aW1lciBhbmQgbGV0
IGxheW91dCB3aW4uICBUaGlzIGlzIGJhc2ljYWxseSBhIHdheSBvZiBlbnN1cmluZyB0aGF0IHRo
ZSBsYXlvdXQKQEAgLTE4MjUsNyArMTgyNSw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6dGltZXJG
aXJlZChUaW1lcjxIVE1MVG9rZW5pemVyPiopCiAgICAgd3JpdGUoU2VnbWVudGVkU3RyaW5nKCks
IHRydWUpOwogfQogCi12b2lkIEhUTUxUb2tlbml6ZXI6OmVuZCgpCit2b2lkIEhUTUxEb2N1bWVu
dFBhcnNlcjo6ZW5kKCkKIHsKICAgICBBU1NFUlQoIW1fdGltZXIuaXNBY3RpdmUoKSk7CiAgICAg
bV90aW1lci5zdG9wKCk7IC8vIE9ubHkgaGVscHMgaWYgYXNzZXJ0aW9uIGFib3ZlIGZpcmVzLCBi
dXQgZG8gaXQgYW55d2F5LgpAQCAtMTg0OSw3ICsxODQ5LDcgQEAgdm9pZCBIVE1MVG9rZW5pemVy
OjplbmQoKQogICAgICAgICBtX2RvYy0+ZmluaXNoZWRQYXJzaW5nKCk7CiB9CiAKLXZvaWQgSFRN
TFRva2VuaXplcjo6ZmluaXNoKCkKK3ZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpmaW5pc2goKQog
ewogICAgIC8vIGRvIHRoaXMgYXMgbG9uZyBhcyB3ZSBkb24ndCBmaW5kIG1hdGNoaW5nIGNvbW1l
bnQgZW5kcwogICAgIHdoaWxlICgobV9zdGF0ZS5pbkNvbW1lbnQoKSB8fCBtX3N0YXRlLmluU2Vy
dmVyKCkpICYmIG1fc2NyaXB0Q29kZSAmJiBtX3NjcmlwdENvZGVTaXplKSB7CkBAIC0xODg3LDcg
KzE4ODcsNyBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OmZpbmlzaCgpCiAgICAgICAgIGVuZCgpOyAv
LyB0aGlzIGFjdHVhbGx5IGNhdXNlcyB1cyB0byBiZSBkZWxldGVkCiB9CiAKLVBhc3NSZWZQdHI8
Tm9kZT4gSFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2VuKCkKK1Bhc3NSZWZQdHI8Tm9kZT4gSFRN
TERvY3VtZW50UGFyc2VyOjpwcm9jZXNzVG9rZW4oKQogewogICAgIFNjcmlwdENvbnRyb2xsZXIq
IHNjcmlwdENvbnRyb2xsZXIgPSAoIW1fZnJhZ21lbnQgJiYgbV9kb2MtPmZyYW1lKCkpID8gbV9k
b2MtPmZyYW1lKCktPnNjcmlwdCgpIDogMDsKICAgICBpZiAoc2NyaXB0Q29udHJvbGxlciAmJiBz
Y3JpcHRDb250cm9sbGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlw
dCkpCkBAIC0xOTA3LDcgKzE5MDcsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IEhUTUxUb2tlbml6ZXI6
OnByb2Nlc3NUb2tlbigpCiAgICAgbV9kZXN0ID0gbV9idWZmZXI7CiAKICAgICBSZWZQdHI8Tm9k
ZT4gbjsKLSAgICAKKwogICAgIGlmICghbV9wYXJzZXJTdG9wcGVkKSB7CiAgICAgICAgIGlmIChO
YW1lZE5vZGVNYXAqIG1hcCA9IG1fY3VycmVudFRva2VuLmF0dHJzLmdldCgpKQogICAgICAgICAg
ICAgbWFwLT5zaHJpbmtUb0xlbmd0aCgpOwpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgUGFzc1JlZlB0
cjxOb2RlPiBIVE1MVG9rZW5pemVyOjpwcm9jZXNzVG9rZW4oKQogICAgIHJldHVybiBuLnJlbGVh
c2UoKTsKIH0KIAotdm9pZCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRG9jdHlwZVRva2VuKCkKK3Zv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzRG9jdHlwZVRva2VuKCkKIHsKICAgICBpZiAo
aW5WaWV3U291cmNlTW9kZSgpKQogICAgICAgICBzdGF0aWNfY2FzdDxIVE1MVmlld1NvdXJjZURv
Y3VtZW50Kj4obV9kb2MpLT5hZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKCZtX2RvY3R5cGVUb2tl
bik7CkBAIC0xOTMyLDE0ICsxOTMyLDE0IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0Rv
Y3R5cGVUb2tlbigpCiAgICAgICAgIG1fcGFyc2VyLT5wYXJzZURvY3R5cGVUb2tlbigmbV9kb2N0
eXBlVG9rZW4pOwogfQogCi1IVE1MVG9rZW5pemVyOjp+SFRNTFRva2VuaXplcigpCitIVE1MRG9j
dW1lbnRQYXJzZXI6On5IVE1MRG9jdW1lbnRQYXJzZXIoKQogewogICAgIEFTU0VSVCghbV9pbldy
aXRlKTsKICAgICByZXNldCgpOwogfQogCiAKLXZvaWQgSFRNTFRva2VuaXplcjo6ZW5sYXJnZUJ1
ZmZlcihpbnQgbGVuKQordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmVubGFyZ2VCdWZmZXIoaW50
IGxlbikKIHsKICAgICAvLyBSZXNpemUgcG9saWN5OiBBbHdheXMgYXQgbGVhc3QgZG91YmxlIHRo
ZSBzaXplIG9mIHRoZSBidWZmZXIgZWFjaCB0aW1lLgogICAgIGludCBkZWx0YSA9IG1heChsZW4s
IG1fYnVmZmVyU2l6ZSk7CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6
OmVubGFyZ2VCdWZmZXIoaW50IGxlbikKICAgICBtX2J1ZmZlclNpemUgPSBuZXdTaXplOwogfQog
Ci12b2lkIEhUTUxUb2tlbml6ZXI6OmVubGFyZ2VTY3JpcHRCdWZmZXIoaW50IGxlbikKK3ZvaWQg
SFRNTERvY3VtZW50UGFyc2VyOjplbmxhcmdlU2NyaXB0QnVmZmVyKGludCBsZW4pCiB7CiAgICAg
Ly8gUmVzaXplIHBvbGljeTogQWx3YXlzIGF0IGxlYXN0IGRvdWJsZSB0aGUgc2l6ZSBvZiB0aGUg
YnVmZmVyIGVhY2ggdGltZS4KICAgICBpbnQgZGVsdGEgPSBtYXgobGVuLCBtX3NjcmlwdENvZGVD
YXBhY2l0eSk7CkBAIC0xOTgwLDggKzE5ODAsOCBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OmVubGFy
Z2VTY3JpcHRCdWZmZXIoaW50IGxlbikKICAgICBtX3NjcmlwdENvZGUgPSBzdGF0aWNfY2FzdDxV
Q2hhcio+KGZhc3RSZWFsbG9jKG1fc2NyaXB0Q29kZSwgbmV3U2l6ZSAqIHNpemVvZihVQ2hhcikp
KTsKICAgICBtX3NjcmlwdENvZGVDYXBhY2l0eSA9IG5ld1NpemU7CiB9Ci0gICAgCi12b2lkIEhU
TUxUb2tlbml6ZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkKKwordm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRz
KCkKIHsKICAgICBBU1NFUlQobV9kb2MtPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKTsKIApAQCAt
MTk4OSwxMiArMTk4OSwxMiBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OmV4ZWN1dGVTY3JpcHRzV2Fp
dGluZ0ZvclN0eWxlc2hlZXRzKCkKICAgICAgICAgbm90aWZ5RmluaXNoZWQoMCk7CiB9CiAKLXZv
aWQgSFRNTFRva2VuaXplcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQordm9pZCBI
VE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikKIHsKICAg
ICBleGVjdXRlRXh0ZXJuYWxTY3JpcHRzSWZSZWFkeSgpOwogfQogCi12b2lkIEhUTUxUb2tlbml6
ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJlYWR5KCkKK3ZvaWQgSFRNTERvY3VtZW50UGFy
c2VyOjpleGVjdXRlRXh0ZXJuYWxTY3JpcHRzSWZSZWFkeSgpCiB7CiAgICAgQVNTRVJUKCFtX3Bl
bmRpbmdTY3JpcHRzLmlzRW1wdHkoKSk7CiAKQEAgLTIwMDUsNyArMjAwNSw3IEBAIHZvaWQgSFRN
TFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c0lmUmVhZHkoKQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIGZpbmlzaGVkID0gZmFsc2U7Ci0gICAgCisKICAgICBkb3VibGUgc3Rh
cnRUaW1lID0gY3VycmVudFRpbWUoKTsKICAgICB3aGlsZSAoIWZpbmlzaGVkICYmIG1fcGVuZGlu
Z1NjcmlwdHMuZmlyc3QoKS0+aXNMb2FkZWQoKSkgewogICAgICAgICBpZiAoIWNvbnRpbnVlRXhl
Y3V0aW5nRXh0ZXJuYWxTY3JpcHRzKHN0YXJ0VGltZSkpCkBAIC0yMDYwLDcgKzIwNjAsNyBAQCB2
b2lkIEhUTUxUb2tlbml6ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJlYWR5KCkKICAgICB9
CiB9CiAKLXZvaWQgSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c1RpbWVyRmly
ZWQoVGltZXI8SFRNTFRva2VuaXplcj4qKQordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1
dGVFeHRlcm5hbFNjcmlwdHNUaW1lckZpcmVkKFRpbWVyPEhUTUxEb2N1bWVudFBhcnNlcj4qKQog
ewogICAgIGlmIChtX2RvYy0+dmlldygpICYmIG1fZG9jLT52aWV3KCktPmxheW91dFBlbmRpbmco
KSAmJiAhbV9kb2MtPm1pbmltdW1MYXlvdXREZWxheSgpKSB7CiAgICAgICAgIC8vIFJlc3RhcnQg
dGhlIHRpbWVyIGFuZCBkbyBsYXlvdXQgZmlyc3QuCkBAIC0yMDcyLDcgKzIwNzIsNyBAQCB2b2lk
IEhUTUxUb2tlbml6ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNUaW1lckZpcmVkKFRpbWVyPEhU
TUxUb2tlbml6ZXI+KikKICAgICBleGVjdXRlRXh0ZXJuYWxTY3JpcHRzSWZSZWFkeSgpOwogfQog
Ci1ib29sIEhUTUxUb2tlbml6ZXI6OmNvbnRpbnVlRXhlY3V0aW5nRXh0ZXJuYWxTY3JpcHRzKGRv
dWJsZSBzdGFydFRpbWUpCitib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6Y29udGludWVFeGVjdXRp
bmdFeHRlcm5hbFNjcmlwdHMoZG91YmxlIHN0YXJ0VGltZSkKIHsKICAgICBpZiAobV9leHRlcm5h
bFNjcmlwdHNUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDg1
LDE5ICsyMDg1LDE5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6Y29udGludWVFeGVjdXRpbmdFeHRl
cm5hbFNjcmlwdHMoZG91YmxlIHN0YXJ0VGltZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBIVE1MVG9rZW5pemVyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKK2Jvb2wgSFRNTERv
Y3VtZW50UGFyc2VyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9zdGF0ZS5sb2FkaW5nRXh0U2NyaXB0KCk7CiB9CiAKLXZvaWQgSFRNTFRva2VuaXplcjo6c2V0
U3JjKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQordm9pZCBIVE1MRG9jdW1lbnRQYXJz
ZXI6OnNldFNyYyhjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKIHsKICAgICBtX3NyYyA9
IHNvdXJjZTsKIH0KIAogdm9pZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7Ci0gICAgSFRNTFRva2VuaXplciB0b2so
ZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgIEhUTUxEb2N1bWVudFBhcnNlciB0
b2soZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIHRvay5zZXRGb3JjZVN5bmNo
cm9ub3VzKHRydWUpOwogICAgIHRvay53cml0ZShzb3VyY2UsIHRydWUpOwogICAgIHRvay5maW5p
c2goKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmggYi9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZy
b20gV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaApyZW5hbWUgdG8gV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDhlZTc4YjY4ZTQ4OGI2ODJmYmI2NmVmNzBjYTE1OWU5
MzY3MTMyZTQuLjljY2ViZTVkYzE3NjY4ZjMwODJkZWU1YmI3ZWJmZDlmMzkxZDIxNmMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudFBhcnNlci5oCkBAIC0xMDksNyArMTA5LDcgQEAgZW51bSBEb2N0eXBlU3RhdGUg
ewogY2xhc3MgRG9jdHlwZVRva2VuIHsKIHB1YmxpYzoKICAgICBEb2N0eXBlVG9rZW4oKSB7fQot
ICAgIAorCiAgICAgdm9pZCByZXNldCgpCiAgICAgewogICAgICAgICBtX25hbWUuY2xlYXIoKTsK
QEAgLTE0MCwxMiArMTQwLDEyIEBAIHB1YmxpYzoKIC8vIChsaWtlIGRlYWxpbmcgd2l0aCA8c2Ny
aXB0PiB0YWdzKS4gIFRoZSBIVE1MIGxleGVyIGJpdHMgc2hvdWxkIGJlIHB1c2hlZAogLy8gZG93
biBpbnRvIGEgc2VwYXJhdGUgSFRNTCBsZXhlciBjbGFzcy4KIAotY2xhc3MgSFRNTFRva2VuaXpl
ciA6IHB1YmxpYyBEb2N1bWVudFBhcnNlciwgcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
K2NsYXNzIEhUTUxEb2N1bWVudFBhcnNlciA6IHB1YmxpYyBEb2N1bWVudFBhcnNlciwgcHVibGlj
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBIVE1MVG9rZW5pemVyKEhUTUxE
b2N1bWVudCosIGJvb2wgcmVwb3J0RXJyb3JzKTsKLSAgICBIVE1MVG9rZW5pemVyKEhUTUxWaWV3
U291cmNlRG9jdW1lbnQqKTsKLSAgICBIVE1MVG9rZW5pemVyKERvY3VtZW50RnJhZ21lbnQqLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwot
ICAgIHZpcnR1YWwgfkhUTUxUb2tlbml6ZXIoKTsKKyAgICBIVE1MRG9jdW1lbnRQYXJzZXIoSFRN
TERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJvcnMpOworICAgIEhUTUxEb2N1bWVudFBhcnNlcihI
VE1MVmlld1NvdXJjZURvY3VtZW50Kik7CisgICAgSFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50
RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGlu
Z0FsbG93ZWQpOworICAgIHZpcnR1YWwgfkhUTUxEb2N1bWVudFBhcnNlcigpOwogCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBwZW5kRGF0YSk7
CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwpAQCAtMTYwLDExICsxNjAsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgaW50IGNvbHVtbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAog
ICAgIGJvb2wgcHJvY2Vzc2luZ0NvbnRlbnRXcml0dGVuQnlTY3JpcHQoKSBjb25zdCB7IHJldHVy
biBtX3NyYy5leGNsdWRlTGluZU51bWJlcnMoKTsgfQotICAgIAorCiAgICAgdmlydHVhbCB2b2lk
IGV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7Ci0gICAgCisKICAgICB2aXJ0
dWFsIEhUTUxQYXJzZXIqIGh0bWxQYXJzZXIoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlci5nZXQo
KTsgfQotICAgIHZpcnR1YWwgSFRNTFRva2VuaXplciogYXNIVE1MVG9rZW5pemVyKCkgeyByZXR1
cm4gdGhpczsgfQorICAgIHZpcnR1YWwgSFRNTERvY3VtZW50UGFyc2VyKiBhc0hUTUxUb2tlbml6
ZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgU3RhdGU7CkBAIC0x
OTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICBTdGF0ZSBzY3JpcHRIYW5kbGVyKFN0YXRlKTsK
ICAgICBTdGF0ZSBzY3JpcHRFeGVjdXRpb24oY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0YXRl
KTsKICAgICB2b2lkIHNldFNyYyhjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKLSAKKwogICAgIC8v
IGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIHNwYWNlIGluIHRoZSBidWZmZXIuCiAgICAgLy8gaWYg
bm90IGVubGFyZ2UgaXQKICAgICBpbmxpbmUgdm9pZCBjaGVja0J1ZmZlcihpbnQgbGVuID0gMTAp
CkBAIC0yMTMsMTQgKzIxMywxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5sYXJnZVNjcmlwdEJ1
ZmZlcihpbnQgbGVuKTsKIAogICAgIGJvb2wgY29udGludWVQcm9jZXNzaW5nKGludCYgcHJvY2Vz
c2VkQ291bnQsIGRvdWJsZSBzdGFydFRpbWUsIFN0YXRlJik7Ci0gICAgdm9pZCB0aW1lckZpcmVk
KFRpbWVyPEhUTUxUb2tlbml6ZXI+Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEhUTUxE
b2N1bWVudFBhcnNlcj4qKTsKICAgICB2b2lkIGFsbERhdGFQcm9jZXNzZWQoKTsKIAogICAgIC8v
IGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlKik7CiAKICAgICB2b2lkIGV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJlYWR5KCk7
Ci0gICAgdm9pZCBleGVjdXRlRXh0ZXJuYWxTY3JpcHRzVGltZXJGaXJlZChUaW1lcjxIVE1MVG9r
ZW5pemVyPiopOworICAgIHZvaWQgZXhlY3V0ZUV4dGVybmFsU2NyaXB0c1RpbWVyRmlyZWQoVGlt
ZXI8SFRNTERvY3VtZW50UGFyc2VyPiopOwogICAgIGJvb2wgY29udGludWVFeGVjdXRpbmdFeHRl
cm5hbFNjcmlwdHMoZG91YmxlIHN0YXJ0VGltZSk7CiAKICAgICAvLyBJbnRlcm5hbCBidWZmZXJz
CkBAIC0zNTUsNyArMzU1LDcgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0
ZTsKLSAgICAKKwogICAgIERvY3R5cGVUb2tlbiBtX2RvY3R5cGVUb2tlbjsKICAgICBpbnQgbV9k
b2N0eXBlU2VhcmNoQ291bnQ7CiAgICAgaW50IG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50
OwpAQCAtMzc2LDEzICszNzYsMTMgQEAgcHJpdmF0ZToKIAogICAgIC8vIFN0b3JlcyBjaGFyYWN0
ZXJzIGlmIHdlIGFyZSBzY2FubmluZyBmb3IgYSBzdHJpbmcgbGlrZSAiPC9zY3JpcHQ+IgogICAg
IFVDaGFyIHNlYXJjaEJ1ZmZlclsxMF07Ci0gICAgCisKICAgICAvLyBDb3VudHMgd2hlcmUgd2Ug
YXJlIGluIHRoZSBzdHJpbmcgd2UgYXJlIHNjYW5uaW5nIGZvcgogICAgIGludCBzZWFyY2hDb3Vu
dDsKICAgICAvLyB0aGUgc3RvcHBlciBzdHJpbmcKICAgICBjb25zdCBjaGFyKiBtX3NlYXJjaFN0
b3BwZXI7CiAgICAgaW50IG1fc2VhcmNoU3RvcHBlckxlbmd0aDsKLSAgICAKKwogICAgIC8vIGlm
IG5vIG1vcmUgZGF0YSBpcyBjb21pbmcsIGp1c3QgcGFyc2Ugd2hhdCB3ZSBoYXZlIChpbmNsdWRp
bmcgZXh0IHNjcmlwdHMgdGhhdAogICAgIC8vIG1heSBiZSBzdGlsbCBkb3dubG9hZGluZykgYW5k
IGZpbmlzaAogICAgIGJvb2wgbV9ub01vcmVEYXRhOwpAQCAtNDE3LDEwICs0MTcsMTAgQEAgcHJp
dmF0ZToKICAgICBpbnQgbV90b2tlbml6ZXJDaHVua1NpemU7CiAKICAgICAvLyBUaGUgdGltZXIg
Zm9yIGNvbnRpbnVlZCBwcm9jZXNzaW5nLgotICAgIFRpbWVyPEhUTUxUb2tlbml6ZXI+IG1fdGlt
ZXI7CisgICAgVGltZXI8SFRNTERvY3VtZW50UGFyc2VyPiBtX3RpbWVyOwogCiAgICAgLy8gVGhl
IHRpbWVyIGZvciBjb250aW51ZWQgZXhlY3V0aW5nIGV4dGVybmFsIHNjcmlwdHMuCi0gICAgVGlt
ZXI8SFRNTFRva2VuaXplcj4gbV9leHRlcm5hbFNjcmlwdHNUaW1lcjsKKyAgICBUaW1lcjxIVE1M
RG9jdW1lbnRQYXJzZXI+IG1fZXh0ZXJuYWxTY3JpcHRzVGltZXI7CiAKIC8vIFRoaXMgYnVmZmVy
IGNhbiBob2xkIGFyYml0cmFyaWx5IGxvbmcgdXNlci1kZWZpbmVkIGF0dHJpYnV0ZSBuYW1lcywg
c3VjaCBhcyBpbiBFTUJFRCB0YWdzLgogLy8gU28gYW55IGZpeGVkIG51bWJlciBtaWdodCBiZSB0
b28gc21hbGwsIGJ1dCByYXRoZXIgdGhhbiByZXdyaXRpbmcgYWxsIHVzYWdlIG9mIHRoaXMgYnVm
ZmVyCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBkOTVhMjM2NTRmM2U0N2Q0ZGFhNDc3MDc3ZTNhMjc5
ZWFjNWVhZTIzLi43MjUwZjk4YTMwNmJjMjI0YjVmNmU2NWNlNTVmZTA3NmEwMmI5MWE4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50
RmFjdG9yeS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgotI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1l
bnRQYXJzZXIuaCIKICNpbmNsdWRlICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJTY3Jp
cHRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgi
CisjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCAxOWYzZTBhM2Q3OGY5M2M3OGQ2MmZjMjc4MTA0MjI1Mjc3ZGM1OTY5
Li4yYjY4MjRhMzRmZDlmZDk2YzQwYTdlYzU0YmFkNTgzZmJjNmU5MGYwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhU
TUxQYXJzZXIuaCIKLSNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTERv
Y3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAKaW5kZXggNDVhMGFh
ZDg0NGQwZmY2YmI1NzYwYWM3YjU1ZGIyNmY4MWE5ZmYxMC4uMTYxYjk3ZjEzNmVhMGVlYjdjOGM5
MWM0YTk5ZDdjYzNlNjM4NjY3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcApAQCAtNTIsNyArNTIsNyBAQAog
I2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlUm93
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UXVhbGlmaWVkTmFtZS5oIgpAQCAtMTY0OSw3ICsxNjQ5LDcgQEAgdm9pZCBIVE1MUGFyc2VyOjpy
ZXBvcnRFcnJvclRvQ29uc29sZShIVE1MUGFyc2VyRXJyb3JDb2RlIGVycm9yQ29kZSwgY29uc3Qg
QXRvbWkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgSFRNTFRv
a2VuaXplciogaHRtbFRva2VuaXplciA9IHN0YXRpY19jYXN0PEhUTUxUb2tlbml6ZXIqPihtX2Rv
Y3VtZW50LT50b2tlbml6ZXIoKSk7CisgICAgSFRNTERvY3VtZW50UGFyc2VyKiBodG1sVG9rZW5p
emVyID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50UGFyc2VyKj4obV9kb2N1bWVudC0+dG9rZW5p
emVyKCkpOwogICAgIGludCBsaW5lTnVtYmVyID0gaHRtbFRva2VuaXplci0+bGluZU51bWJlcigp
ICsgMTsKIAogICAgIEF0b21pY1N0cmluZyB0YWcxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmgKaW5kZXggMDI4ODM2Y2I0
YTJmMzQ5NDA4M2U1ZGJkMmVmNGYzYzVlNWFhMGNhZS4uNTdhZjAzNzk5M2FhOTIzMTg2ODEzNzJl
OGYzZDJhYzllMWVlYTllNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHN0cnVjdCBI
VE1MU3RhY2tFbGVtOwogc3RydWN0IFRva2VuOwogCiAvKioKLSAqIFRoZSBwYXJzZXIgZm9yIEhU
TUwuIEl0IHJlY2VpdmVzIGEgc3RyZWFtIG9mIHRva2VucyBmcm9tIHRoZSBIVE1MVG9rZW5pemVy
LCBhbmQKKyAqIFRoZSBwYXJzZXIgZm9yIEhUTUwuIEl0IHJlY2VpdmVzIGEgc3RyZWFtIG9mIHRv
a2VucyBmcm9tIHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIsIGFuZAogICogYnVpbGRzIHVwIHRoZSBE
b2N1bWVudCBzdHJ1Y3R1cmUgZnJvbSBpdC4KICAqLwogY2xhc3MgSFRNTFBhcnNlciA6IHB1Ymxp
YyBOb25jb3B5YWJsZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKaW5k
ZXggZmZiOGVlYTgxZGQ4M2UwOWUyNDQ3OGY5Y2Q0NTU4OTBiNjFlNDEwZi4uMDEwNjYyODBjM2E1
ZDhhYWM0NzIzN2Q0NzQyYzU0YThiOWIxZDQ0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJj
ZURvY3VtZW50LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVk
ZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRl
eHREb2N1bWVudC5oIgogCkBAIC01MywxNCArNTMsMTQgQEAgSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dDo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWlt
ZVQKIAogRG9jdW1lbnRQYXJzZXIqIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmNyZWF0ZVRva2Vu
aXplcigpCiB7Ci0gICAgLy8gVXNlIEhUTUxUb2tlbml6ZXIgaWYgYXBwbGljYWJsZSwgb3RoZXJ3
aXNlIHVzZSBUZXh0VG9rZW5pemVyLgorICAgIC8vIFVzZSBIVE1MRG9jdW1lbnRQYXJzZXIgaWYg
YXBwbGljYWJsZSwgb3RoZXJ3aXNlIHVzZSBUZXh0VG9rZW5pemVyLgogICAgIGlmIChtX3R5cGUg
PT0gInRleHQvaHRtbCIgfHwgbV90eXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHx8IG1f
dHlwZSA9PSAiaW1hZ2Uvc3ZnK3htbCIgfHwgRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5
cGUobV90eXBlKQogI2lmIEVOQUJMRShYSFRNTE1QKQogICAgICAgICB8fCBtX3R5cGUgPT0gImFw
cGxpY2F0aW9uL3ZuZC53YXAueGh0bWwreG1sIgogI2VuZGlmCiAgICAgICAgICkgewogICAgICAg
ICAvLyBGSVhNRTogU2hvdWxkIHJlc3BlY3QgU2V0dGluZ3M6Omh0bWw1UGFyc2VyRW5hYmxlZCgp
Ci0gICAgICAgIHJldHVybiBuZXcgSFRNTFRva2VuaXplcih0aGlzKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBIVE1MRG9jdW1lbnRQYXJzZXIodGhpcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNyZWF0
ZVRleHRUb2tlbml6ZXIodGhpcyk7CkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBIVE1MVmlld1Nv
dXJjZURvY3VtZW50OjphZGRWaWV3U291cmNlVG9rZW4oVG9rZW4qIHRva2VuKQogICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKS5zdHJpbmcoKTsKIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIENvbXBhcmUgaWdub3JpbmcgY2FzZSBzaW5jZSBIVE1MVG9rZW5p
emVyIGRvZXNuJ3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb21wYXJlIGlnbm9y
aW5nIGNhc2Ugc2luY2UgSFRNTERvY3VtZW50UGFyc2VyIGRvZXNuJ3QKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBsb3dlciBuYW1lcyB3aGVuIHBhc3NpbmcgaW4gdG9rZW5zIHRvCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSFRNTFZpZXdTb3VyY2VEb2N1bWVudC4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodG9rZW4tPnRh
Z05hbWUsICJiYXNlIikgJiYgZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+bmFtZSgpLmxvY2FsTmFt
ZSgpLCAiaHJlZiIpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAppbmRleCBm
YzVjNDcxOWUyMmQ2YzNlZDJlYjQyMDA1NjVlZDE4Y2U4YjU0ZjMwLi44ZGVlYzNlNjg0MzZiNzM2
MjljODJkZjgwZjNhYzk5YjhmOGNlNTc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3Vt
ZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVmlld1Nv
dXJjZURvY3VtZW50KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKLSAgICAvLyBS
ZXR1cm5zIEhUTUxUb2tlbml6ZXIgb3IgVGV4dFRva2VuaXplciBiYXNlZCBvbiBtX3R5cGUuCisg
ICAgLy8gUmV0dXJucyBIVE1MRG9jdW1lbnRQYXJzZXIgb3IgVGV4dFRva2VuaXplciBiYXNlZCBv
biBtX3R5cGUuCiAgICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVyKCk7
CiAKICAgICB2b2lkIGNyZWF0ZUNvbnRhaW5pbmdUYWJsZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCmluZGV4IGZmNzUzODIxNDc3YmZhOTZlY2IyMGRhZTI2YmU2MGUxZTY1ODE0YmYuLmEx
YjFjZDA2ZDM1NzUyODE2MmI3ZmJmNjBiZjE5MDdkODA5ZmFiYjEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5j
bHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKIAog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDNlMzRlOWQw
ZmQ2OWNhZDAyNTkxZmYyMzdkMTJiY2Y3NzI3MTEyNTUuLjRjYWFjOWNkOTA5MjcwYmQzYjkzOWFj
M2U0ZDQ3OWQ0NGU2ZDlmNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5j
cHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJOYW1lcy5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJGVFBEaXJlY3RvcnlQYXJzZXIuaCIKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgIAotY2xhc3MgRlRQRGlyZWN0
b3J5VG9rZW5pemVyIDogcHVibGljIEhUTUxUb2tlbml6ZXIgeworY2xhc3MgRlRQRGlyZWN0b3J5
VG9rZW5pemVyIDogcHVibGljIEhUTUxEb2N1bWVudFBhcnNlciB7CiBwdWJsaWM6CiAgICAgRlRQ
RGlyZWN0b3J5VG9rZW5pemVyKEhUTUxEb2N1bWVudCopOwogCkBAIC05NSw3ICs5NSw3IEBAIHBy
aXZhdGU6CiB9OwogCiBGVFBEaXJlY3RvcnlUb2tlbml6ZXI6OkZUUERpcmVjdG9yeVRva2VuaXpl
cihIVE1MRG9jdW1lbnQqIGRvYykKLSAgICA6IEhUTUxUb2tlbml6ZXIoZG9jLCBmYWxzZSkKKyAg
ICA6IEhUTUxEb2N1bWVudFBhcnNlcihkb2MsIGZhbHNlKQogICAgICwgbV9kb2MoZG9jKQogICAg
ICwgbV9za2lwTEYoZmFsc2UpCiAgICAgLCBtX3BhcnNlZFRlbXBsYXRlKGZhbHNlKQpAQCAtMzA2
LDcgKzMwNiw3IEBAIGJvb2wgRlRQRGlyZWN0b3J5VG9rZW5pemVyOjpsb2FkRG9jdW1lbnRUZW1w
bGF0ZSgpCiAgICAgCiAgICAgLy8gVG9rZW5pemUgdGhlIHRlbXBsYXRlIGFzIGFuIEhUTUwgZG9j
dW1lbnQgc3luY2hyb25vdXNseQogICAgIHNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7Ci0gICAg
SFRNTFRva2VuaXplcjo6d3JpdGUoU3RyaW5nKHRlbXBsYXRlRG9jdW1lbnREYXRhLT5kYXRhKCks
IHRlbXBsYXRlRG9jdW1lbnREYXRhLT5zaXplKCkpLCB0cnVlKTsKKyAgICBIVE1MRG9jdW1lbnRQ
YXJzZXI6OndyaXRlKFN0cmluZyh0ZW1wbGF0ZURvY3VtZW50RGF0YS0+ZGF0YSgpLCB0ZW1wbGF0
ZURvY3VtZW50RGF0YS0+c2l6ZSgpKSwgdHJ1ZSk7CiAgICAgc2V0Rm9yY2VTeW5jaHJvbm91cyhm
YWxzZSk7CiAgICAgCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IG1fZG9jLT5n
ZXRFbGVtZW50QnlJZCgiZnRwRGlyZWN0b3J5VGFibGUiKTsKQEAgLTQzMSw3ICs0MzEsNyBAQCB2
b2lkIEZUUERpcmVjdG9yeVRva2VuaXplcjo6ZmluaXNoKCkKICAgICBtX3RhYmxlRWxlbWVudCA9
IDA7CiAgICAgZmFzdEZyZWUobV9idWZmZXIpOwogICAgICAgICAKLSAgICBIVE1MVG9rZW5pemVy
OjpmaW5pc2goKTsKKyAgICBIVE1MRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpOwogfQogCiBGVFBE
aXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0b3J5RG9jdW1lbnQoRnJhbWUqIGZyYW1lKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IDY3MmI5NGY1ZTA0OGVjMzRmZDNjN2RmNDA5NTk1NzM3NjFm
OWEyY2QuLmE1YjhmZmIwNDM4YjIwY2I4YTRmNzllZGFlNTc4MGVmMTYyYWQ2NzQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQAogI2luY2x1ZGUgIlRleHRSZXNvdXJj
ZURlY29kZXIuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlhNTEh0
dHBSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiWE1MRG9j
dW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJYU1NBdWRpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9JbWFnZURv
Y3VtZW50LmNwcAppbmRleCAwMmI4OGEwOGRlZjZkMjYzNzFiOTM3Yzk3MDVjNDQyOGQ5MTg3Y2Vl
Li40Nzg1ZjA0YWJhM2U4NWM4OGZjYzgyY2EwNzY1YjRmMWM1YmY1MTgxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9JbWFn
ZURvY3VtZW50LmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgotI2luY2x1ZGUg
IlhNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAKIHVzaW5n
IHN0ZDo6bWluOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NZWRpYURvY3VtZW50LmNw
cCBiL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IGQ2MjQwNTkwNzA0MjA0
NjEwNTU1NzBlMDZlOTFlMWI5MDNmNDYxODIuLjk0NDczYzIwZWNkMzRkMzUxZDUxM2M0ZjRkMzA3
N2M4NTFkNTZhMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBA
CiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJUZXh0LmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9QbHVnaW5E
b2N1bWVudC5jcHAKaW5kZXggYzJlNzVkZjBmY2EyNWEzN2NiYTVjNzg3MWM5YTAzMzU4YjVmYzlj
Yy4uZWI3M2VjZDJiOTUxNjQzNDcyYzcyZTAxMTk0ZWRjYTUwZDY3OGQzNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Bs
dWdpbkRvY3VtZW50LmNwcApAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgIlNlZ21lbnRlZFN0
cmluZy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgotI2luY2x1
ZGUgIlhNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1RleHRE
b2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCmluZGV4IDYwNmMx
MWQzMTc3M2FhNmM3MmMzNDExOTBmNGVhNmU3MGU1MjM0YTcuLjBiYTczYjVkNDZjY2E2M2UyZWRk
OGEyZDM1MDNlNWRjOTk5ZWU2YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcApAQCAtMzAsNyAr
MzAsNyBAQAogI2luY2x1ZGUgIkhUTUxWaWV3U291cmNlRG9jdW1lbnQuaCIKICNpbmNsdWRlICJT
ZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0LmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5p
emVyLmgiCisjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaCBiL1dlYkNvcmUv
cGFnZS9YU1NBdWRpdG9yLmgKaW5kZXggNTU1ZjZhMmQ4YWI5Nzk3OWJhYTIxMzQ5MDFmZmRmMjdj
MjlhNGUwMi4uN2FmYmYwN2RiNmU1NDkxMmYzMjQ3YWIzYmEwM2E3NzJiZjVlODI0ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAorKysgYi9XZWJDb3JlL3BhZ2UvWFNTQXVk
aXRvci5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyAqIFNj
cmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwgLSB1c2VkIHRvIGV2YWx1YXRl
IEphdmFTY3JpcHQgVVJMcy4KICAgICAvLyAqIFNjcmlwdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZUF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIgLSB1c2VkIHRvIGNyZWF0ZSBKYXZhU2NyaXB0IGV2ZW50IGhh
bmRsZXJzLgogICAgIC8vICogSFRNTEJhc2VFbGVtZW50Ojpwcm9jZXNzIC0gdXNlZCB0byBzZXQg
dGhlIGRvY3VtZW50IGJhc2UgVVJMLgotICAgIC8vICogSFRNTFRva2VuaXplcjo6cGFyc2VUYWcg
LSB1c2VkIHRvIGxvYWQgZXh0ZXJuYWwgSmF2YVNjcmlwdCBzY3JpcHRzLgorICAgIC8vICogSFRN
TERvY3VtZW50UGFyc2VyOjpwYXJzZVRhZyAtIHVzZWQgdG8gbG9hZCBleHRlcm5hbCBKYXZhU2Ny
aXB0IHNjcmlwdHMuCiAgICAgLy8gKiBGcmFtZUxvYWRlcjo6cmVxdWVzdE9iamVjdCAtIHVzZWQg
dG8gbG9hZCA8b2JqZWN0Pi88ZW1iZWQ+IGVsZW1lbnRzLgogICAgIC8vCiAgICAgY2xhc3MgWFNT
QXVkaXRvciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmNwcAppbmRleCAwZGI2ODJmOTM3MjdkY2QyZWFjOTI4NWY3MWI1OTA4NjEwM2FmYzk5Li4y
NDczZTdlYjIxNjM3ZDUxMmVhYTlhZTIzZmU1MmE2ZTc2YmIzNGVkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0Rv
Y3VtZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJTVkdTTUlM
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTTUlMVGlt
ZUNvbnRhaW5lci5oIgotI2luY2x1ZGUgIlhNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIlhNTERv
Y3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNw
cCBiL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCmluZGV4IDYxODQ3NzI0MzJhNDUx
MDE1NzUyN2YzY2JkNWZlMWVmOGQ3MjMzZjcuLmJjODc0N2ZiOTk0NGVkZDUxNzEwMjAwZDg2OTI2
NzVkMjc3ZDdiMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3Bw
CisrKyBiL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCkBAIC0yNyw3ICsyNyw3IEBA
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgotI2luY2x1ZGUgIlhNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIlhNTERvY3Vt
ZW50UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgcmVwb3J0V01MRXJyb3IoRG9jdW1lbnQq
IGRvYywgV01MRXJyb3JDb2RlIGVycm9yKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcg
ZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlRm9yRXJyb3JDb2RlKGVycm9yKTsKLSAgICBYTUxU
b2tlbml6ZXIqIHRva2VuaXplciA9IHN0YXRpY19jYXN0PFhNTFRva2VuaXplcio+KGRvYy0+dG9r
ZW5pemVyKCkpOworICAgIFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIgPSBzdGF0aWNfY2Fz
dDxYTUxEb2N1bWVudFBhcnNlcio+KGRvYy0+dG9rZW5pemVyKCkpOwogICAgIGlmICh0b2tlbml6
ZXIgJiYgZXJyb3IgIT0gV01MRXJyb3JEZWNrTm90QWNjZXNzaWJsZSkgewogICAgICAgICAvLyBT
b21lIGVycm9ycyBhcmUgcmVwb3J0ZWQgYXMgcmVzdWx0IG9mIGFuIGluc2VydGVkSW50b0RvY3Vt
ZW50KCkgY2FsbC4KICAgICAgICAgLy8gSWYgdGhpcyBoYXBwZW5lZCwgcGFyc2luZyBoYXMgYmVl
biBzdG9wcGVkLCBhbmQgdGhlIGRvY3VtZW50IGZyYWdtZW50CkBAIC00OCw3ICs0OCw3IEBAIHZv
aWQgcmVwb3J0V01MRXJyb3IoRG9jdW1lbnQqIGRvYywgV01MRXJyb3JDb2RlIGVycm9yKQogICAg
ICAgICBpZiAoIXRva2VuaXplci0+d2VsbEZvcm1lZCgpKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHRva2VuaXplci0+aGFuZGxlRXJyb3IoWE1MVG9rZW5pemVyOjpmYXRhbCwgZXJy
b3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgdG9rZW5pemVyLT5saW5lTnVtYmVyKCksIHRva2Vu
aXplci0+Y29sdW1uTnVtYmVyKCkpOworICAgICAgICB0b2tlbml6ZXItPmhhbmRsZUVycm9yKFhN
TERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgdG9r
ZW5pemVyLT5saW5lTnVtYmVyKCksIHRva2VuaXplci0+Y29sdW1uTnVtYmVyKCkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKTsKICAgICAgICAgaWYg
KCFmcmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNw
cCBiL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcAppbmRleCBjM2ZlY2E5N2I0
NTM2MDJkNjllMzBhOWRhN2Y0MzE2OTEwOTg0MTU2Li4xMDkxOWVmMjI5ZWExMjMyNTY3OTE4ODY2
ZjY1OTI5N2YxNjExNjBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGli
eHNsdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCkBAIC0z
MSw4ICszMSw4IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCi0jaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCi0jaW5j
bHVkZSAiWE1MVG9rZW5pemVyU2NvcGUuaCIKKyNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5o
IgorI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKICNpbmNsdWRlICJYU0xJbXBv
cnRSdWxlLmgiCiAjaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgogI2luY2x1ZGUgImxvYWRlci5o
IgpAQCAtMTQ4LDcgKzE0OCw3IEBAIGJvb2wgWFNMU3R5bGVTaGVldDo6cGFyc2VTdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wpCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG93bmVyRG9j
dW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5kb21XaW5kb3coKS0+
Y29uc29sZSgpOwogCi0gICAgWE1MVG9rZW5pemVyU2NvcGUgc2NvcGUoZG9jTG9hZGVyKCksIFhT
TFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMsIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JG
dW5jLCBjb25zb2xlKTsKKyAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKGRvY0xvYWRl
cigpLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jLCBYU0xUUHJvY2Vzc29yOjpwYXJz
ZUVycm9yRnVuYywgY29uc29sZSk7CiAKICAgICBjb25zdCBjaGFyKiBidWZmZXIgPSByZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihzdHJpbmcuY2hhcmFjdGVycygpKTsKICAgICBpbnQgc2l6
ZSA9IHN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcik7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yLmNwcCBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmlu
ZGV4IGI1MzBkNTIzNTMwMTMzOTZkZGIwMjQwODBhMDhjZTIwNjgyZmZjNzIuLjk3YjU0NjY3OThm
MTFiNmI3ZGJhMmZlMzFhMjg2YWQ5ZWMzZTgzNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hT
TFRQcm9jZXNzb3IuY3BwCisrKyBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0z
MywxMSArMzMsMTEgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhUTUxUb2tlbml6
ZXIuaCIgLy8gZm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKKyNpbmNsdWRlICJIVE1MRG9j
dW1lbnRQYXJzZXIuaCIgLy8gZm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29k
ZXIuaCIKLSNpbmNsdWRlICJYTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJYTUxEb2N1bWVudFBh
cnNlci5oIgogI2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAgYi9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5k
ZXggOWMzZmFmZDg1YTc5ZTQ2ZjkyZTMxMzNlMmQzNjc1ZDNhMWE4OGUzZC4uNGFjOWY0YzkyYjEy
ODIxNTQxODU4NjUwZjIwYjk1ZmZjZWM0ZjU4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4
c2x0LmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2Uu
aCIKLSNpbmNsdWRlICJYTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNl
ci5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJYU0xURXh0ZW5zaW9u
cy5oIgogI2luY2x1ZGUgIlhTTFRVbmljb2RlU29ydC5oIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2ZhZjQy
NjdkMmMwMWQyZWVkYjc0Y2UxOThkYTE5YTQwZWY4YWJhMS4uNzU5NDk1M2E1ZmM4MjQ5OTIwMTgx
Njc3Njk5NWQxYjJhOWQ2ZDJmYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAt
MDYtMTEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgcmVzdCBvZiB0aGUgKlRv
a2VuaXplciBjbGFzc2VzIHRvICpEb2N1bWVudFBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1MDcKKworICAgICAgICAqIHNyYy9XZWJFbnRp
dGllcy5jcHA6CisgICAgICAgICAtIEZpeCBhIGNvbW1lbnQgdG8gbWF0Y2ggbmV3IGNsYXNzIG5h
bWVzLgorCiAyMDEwLTA2LTExICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJF
bnRpdGllcy5jcHAKaW5kZXggYjkxNDNkOWU1YWVlNGMzM2U2ODQ1YTQwYjAzZmMwNTI2Y2E1ZmJh
Yy4uYTBhYTEzZTFkZjY0NDdjZTlkYmMxZGY4NThiOTUwZTlmYzQ5YzRkNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJFbnRpdGllcy5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgewotLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGlu
Y2x1ZGVkIGJ5IEhUTUxUb2tlbml6ZXIuY3BwIHNvIHdlIGFyZSBnZXR0aW5nCisvLyBOb3RlIHRo
YXQgdGhpcyBmaWxlIGlzIGFsc28gaW5jbHVkZWQgYnkgSFRNTERvY3VtZW50UGFyc2VyLmNwcCBz
byB3ZSBhcmUgZ2V0dGluZwogLy8gdHdvIGNvcGllcyBvZiB0aGUgZGF0YSBpbiBtZW1vcnkuICBX
ZSBjYW4gZml4IHRoaXMgYnkgY2hhbmdpbmcgdGhlIHNjcmlwdAogLy8gdGhhdCBnZW5lcmF0ZWQg
dGhlIGFycmF5IHRvIGNyZWF0ZSBhIHN0YXRpYyBjb25zdCB0aGF0IGlzIGl0cyBsZW5ndGgsIGJ1
dAogLy8gdGhpcyBpcyBsb3cgcHJpb3JpdHkgc2luY2UgdGhlIGRhdGEgaXMgbGVzcyB0aGFuIDRL
LiBXZSB1c2UgYW5vbnltb3VzCg==
</data>
<flag name="review"
          id="44864"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="44865"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>