<?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>158893</bug_id>
          
          <creation_ts>2016-06-17 16:55:51 -0700</creation_ts>
          <short_desc>It should be easy to add a private global helper function for builtins</short_desc>
          <delta_ts>2016-06-21 10:54:49 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158960</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203477</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-17 16:55:51 -0700</bug_when>
    <thetext>It should be easy to add a private global helper function for builtins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203765</commentid>
    <comment_count>1</comment_count>
      <attachid>281651</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 09:50:11 -0700</bug_when>
    <thetext>Created attachment 281651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203797</commentid>
    <comment_count>2</comment_count>
      <attachid>281654</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 10:52:23 -0700</bug_when>
    <thetext>Created attachment 281654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203798</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 10:54:05 -0700</bug_when>
    <thetext>This patch modifies the JS builtins code generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-builtins-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203799</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 10:54:19 -0700</bug_when>
    <thetext>Attachment 281654 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:157:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:162:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 2 in 37 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203805</commentid>
    <comment_count>5</comment_count>
      <attachid>281656</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 11:13:58 -0700</bug_when>
    <thetext>Created attachment 281656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203806</commentid>
    <comment_count>6</comment_count>
      <attachid>281654</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-06-20 11:14:36 -0700</bug_when>
    <thetext>Comment on attachment 281654
Patch

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

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:3
&gt; +# Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.

You can abbreviate this as 2014-2016.

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py:3
&gt; +# Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203807</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 11:15:44 -0700</bug_when>
    <thetext>Attachment 281656 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:157:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:162:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 2 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203809</commentid>
    <comment_count>8</comment_count>
      <attachid>281656</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-06-20 11:34:38 -0700</bug_when>
    <thetext>Comment on attachment 281656
Patch

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

Generator changes look good, except I would have expected some tests to need rebaselining. Did you do run-builtins-generator-tests --reset-results?

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        on the glabol object. The name of the property will be the same as

typo: &apos;global&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203814</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 11:50:51 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 281656 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281656&amp;action=review
&gt; 
&gt; Generator changes look good, except I would have expected some tests to need
&gt; rebaselining. Did you do run-builtins-generator-tests --reset-results?

Nope I totally missed that. It looks like they have not been rebaselined in a long time . Since there are changes that don&apos;t appear to be part of my patch. I&apos;ll include the rebaselined tests in my build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203816</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 11:51:26 -0700</bug_when>
    <thetext>
&gt; You can abbreviate this as 2014-2016.

Fixed.

&gt; &gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py:3
&gt; &gt; +# Copyright (c) 2014, 2015, 2016 Apple Inc. All rights reserved.
&gt; 
&gt; Ditto.

It looks like there shouldn&apos;t even be a copyright change in that file. I&apos;ll remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203847</commentid>
    <comment_count>11</comment_count>
      <attachid>281666</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 12:52:24 -0700</bug_when>
    <thetext>Created attachment 281666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203848</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 12:53:18 -0700</bug_when>
    <thetext>Attachment 281666 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:157:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:162:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 2 in 50 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203884</commentid>
    <comment_count>13</comment_count>
      <attachid>281674</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 13:58:11 -0700</bug_when>
    <thetext>Created attachment 281674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203885</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 14:00:42 -0700</bug_when>
    <thetext>Attachment 281674 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:157:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py:162:  [BuiltinsCombinedHeaderGenerator.generate_section_for_global_private_code_name_macro] Instance of &apos;BuiltinsCombinedHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 3 in 52 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203888</commentid>
    <comment_count>15</comment_count>
      <attachid>281676</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 14:07:44 -0700</bug_when>
    <thetext>Created attachment 281676
Benchmark results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203899</commentid>
    <comment_count>16</comment_count>
      <attachid>281674</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-06-20 14:34:32 -0700</bug_when>
    <thetext>Comment on attachment 281674
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203909</commentid>
    <comment_count>17</comment_count>
      <attachid>281674</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 14:47:22 -0700</bug_when>
    <thetext>Comment on attachment 281674
Patch

Rejecting attachment 281674 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 281674, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/1538359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203913</commentid>
    <comment_count>18</comment_count>
      <attachid>281680</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-20 15:10:09 -0700</bug_when>
    <thetext>Created attachment 281680
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203919</commentid>
    <comment_count>19</comment_count>
      <attachid>281680</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 15:38:55 -0700</bug_when>
    <thetext>Comment on attachment 281680
Patch for landing

Clearing flags on attachment: 281680

Committed r202248: &lt;http://trac.webkit.org/changeset/202248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203920</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 15:38:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203953</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 17:24:12 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 158960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204188</commentid>
    <comment_count>22</comment_count>
      <attachid>281757</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-21 10:24:12 -0700</bug_when>
    <thetext>Created attachment 281757
Patch for landing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204193</commentid>
    <comment_count>23</comment_count>
      <attachid>281757</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-21 10:54:44 -0700</bug_when>
    <thetext>Comment on attachment 281757
Patch for landing v2

Clearing flags on attachment: 281757

Committed r202280: &lt;http://trac.webkit.org/changeset/202280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204194</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-21 10:54:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281651</attachid>
            <date>2016-06-20 09:50:11 -0700</date>
            <delta_ts>2016-06-20 10:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158893-20160620095004.patch</filename>
            <type>text/plain</type>
            <size>120569</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzY4ZDY3ZDYyMTBhMjk1ZDQ4Zjg3OWVlYzEzYzBkNzQ4Y2Q5NmNiLi43NGRlMjI2ODI2OTk5OWRj
ZWRiZmY5N2MyODNiZjZhOWU5MzZmYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTAgQEAKKzIwMTYtMDYtMTcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0ZSBnbG9i
YWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuIEZpcnN0
IGl0IG1vdmVzIGFsbCB0aGUgYnVpbHRpbiBuYW1lcworICAgICAgICBvdXQgb2YgQ29tbW9uSWRl
bnRpZmllcnMgYW5kIGludG8gQnVpbHRpbk5hbWVzLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAg
YWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBCdWlsdGlucyBkb2VzIG5vdCByZXF1aXJlIHJl
YnVpbGRpbmcKKyAgICAgICAgYWxsIG9mIEphdmFTY3JpcHRDb3JlLiBUaGlzIHBhdGNoIGFsc28g
YWRkcyBhIG5ldyBkZWNvcmF0b3IgdG8gb3VyCisgICAgICAgIGJ1aWx0aW5zIEBwcml2YXRlR2xv
YmFsIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCB0aGUgZnVuY3Rpb24KKyAgICAgICAgb24g
dGhlIGdsYWJvbCBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHRoZSBz
YW1lIGFzCisgICAgICAgIHRoZSBwcml2YXRlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIEFkZGl0aW9uYWxseSwgdGhpcyBwYXRjaCByZW1vdmVzIHRoZSBKU0FycmF5SXRlcmF0b3Iu
aC8uY3BwIGZpbGVzCisgICAgICAgIGFzIHRoZXkgbm8gbG9uZ2VyIGFwcGVhciB0byBiZSB1c2Vk
IGluIGFueSByZWFsIHdheS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6CisgICAgICAgIChCdWlsdGluc0NvbWJpbmVkSGVhZGVy
R2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zv
cl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAoZ2VuZXJhdGVfc2VjdGlvbl9mb3JfZ2xvYmFs
X3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX21vZGVsLnB5OgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLl9faW5pdF9fKToKKyAg
ICAgICAgKEJ1aWx0aW5GdW5jdGlvbi5mcm9tU3RyaW5nKToKKyAgICAgICAgKiBidWlsdGlucy9B
cnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0FycmF5UHJvdG90
eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1
aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxP
YmplY3QuanM6CisgICAgICAgICogYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanM6CisgICAg
ICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1N0
cmluZ1Byb3RvdHlwZS5qczoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5LmNwcDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RnVuY3Rp
b25Db250ZXh0U2NvcGVJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
OjpleHBlY3RlZEZ1bmN0aW9uRm9ySWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdExvYWROZXdUYXJnZXRGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZp
cm9ubWVudCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TG9hZERlcml2
ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KToKKyAgICAg
ICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXROZXdUYXJnZXRUb0Fycm93RnVuY3Rp
b25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1
dERlcml2ZWRDb25zdHJ1Y3RvclRvQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2VuZXJhdG9yU3RhdGVDaGFuZ2UpOgorICAg
ICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0
SG9tZU9iamVjdEZvckNhbGxlZSk6CisgICAgICAgIChKU0M6OmVtaXRQdXRIb21lT2JqZWN0KToK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpT
SW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmpl
Y3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8TENoYXI+OjpwYXJzZUlk
ZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpMZXhlcjxVQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6
CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpjcmVhdGVHZW5lcmF0b3JQYXJhbWV0
ZXJzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFy
YXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5jcHA6CisgICAgICAgIChKU0M6OkNvbW1vbklkZW50aWZpZXJzOjpDb21tb25JZGVudGlm
aWVycyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xP
V19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVy
Rm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZv
cm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2
ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50
bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHA6IFJl
bW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmtpbmQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmg6IFJlbW92ZWQuCisgICAgICAgIChK
U0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50
aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU1N0cmluZ0l0
ZXJhdG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6
Y2xvbmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbik6CisKIDIwMTYtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyBidWlsdGluIG9wY29kZSB0YWlsQ2FsbEZv
cndhcmRBcmd1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzM1MzgzODM5
ZDVjMTMzM2QzYWZhNWM1ZGJmMGRiMjkxY2Q4OGQ1Yi4uOTMxNWExMTJjYTllZDc5YmQ5NTZmNDMy
ODU0YzA2NzBjMTA0Y2JlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NjMs
OCArMTc2Myw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVC
bG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5
RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCREFFQzgxN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFy
cmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9OwogCQlBN0JEQUVDOTE3RjRFQTE0MDBGNjE0
MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRl
cmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpT
QXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCAq
LzsgfTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzUxN0Y0
RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovOyB9OwogCQlBN0JGRjNDMDE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYzQkYxNzk4Njg5NDAwMDJGNDYyIC8qIERG
R0ZpbHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFEIC8q
IEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQTE2N0MwOENEMDAxNzAxMUQg
LyogSlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMzk3OCw4ICszOTc2LDYgQEAKIAkJQTdCNEFD
QUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUE3
QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpT
QXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07
Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0
aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0ZpbHRyYXRp
b25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJl
Zi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFJlZi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFCMTY3QzA4Q0QwMDE3MDEx
RCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01
NzA0LDggKzU3MDAsNiBAQAogCQkJCTBGMkI2NkJBMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5
QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2QkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJy
YXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAv
KiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAv
KiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyog
SlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcgLyog
SlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNDZENERDQkIxQzVBQjJENTAwRDhEMzIxIC8qIEpT
Qm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcCAqLywKQEAgLTc2NDIsNyArNzYzNiw2IEBACiAJCQkJ
MEYyQjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdCREFFQ0IxN0Y0
RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQw
RDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtOTA5MCw3ICs5MDgzLDYgQEAKIAkJCQkwRjJCNjZFNjE3QjZCNUFCMDBBN0FF
M0YgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJC
NjZFODE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTUzMTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFwc2hvdEJ1aWxkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJy
YXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3RjRGMDBBODE5
NUUgLyogSlNCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3
NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYw
QTUwOEQyMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQpp
bmRleCA4OTFiZDNjYjQyNjBhODkxYWNlNTIzMzdjYTYwN2VjNzU3YjFkMGU0Li42N2IxMWVmOWUz
MDBkY2MwZGI1MWQ2OTg0ZGU0MjE0MmFmNjliMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFk
ZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSwgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJz
aXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtNjAsNiArNjAsNyBAQCBjbGFzcyBCdWlsdGluc0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yKEJ1
aWx0aW5zR2VuZXJhdG9yKToKICAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVy
YXRlX3NlY3Rpb25fZm9yX29iamVjdChvYmplY3QpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
c2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKCkpCiAgICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybygp
KQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9nbG9i
YWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRl
bXBsYXRlKFRlbXBsYXRlcy5Db21iaW5lZEhlYWRlclN0YXRpY01hY3Jvcykuc3Vic3RpdHV0ZShh
cmdzKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3Bh
Y2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1w
bGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3Mp
KQpAQCAtMTUwLDMgKzE1MSwyMiBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5
IHNfJShjb2RlTmFtZSlzQ29uc3RydWN0QWJpbGl0eTsiIiIgJSBmdW5jdGlvbgogCiAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMpIFxcIiAlIGZ1bmN0aW9u
X2FyZ3MpCiAgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisKKyAgICBkZWYgZ2VuZXJh
dGVfc2VjdGlvbl9mb3JfZ2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKHNlbGYpOgorICAg
ICAgICBhcmdzID0geworICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZy
YW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKKyAgICAgICAgfQorCisgICAgICAgIGxp
bmVzID0gW10KKyAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShtYWNybykgXFwiICUg
YXJncykKKyAgICAgICAgZnVuY3Rpb25zID0gZmlsdGVyKGxhbWJkYSBmdW5jdGlvbjogZnVuY3Rp
b24uaXNfZ2xvYmFsX3ByaXZhdGUsIHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25zKCkpCisgICAg
ICAgIGZ1bmN0aW9ucy5zb3J0KGtleT1sYW1iZGEgeDogeC5mdW5jdGlvbl9uYW1lKQorICAgICAg
ICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9
IHsKKyAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAor
ICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1l
Rm9yRnVuY3Rpb24oZnVuY3Rpb24pLAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5l
cy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMsICUoY29kZU5hbWUpcykgXFwiICUgZnVu
Y3Rpb25fYXJncykKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5CmluZGV4IGI3MmE5NGJm
ZTFlMWM4ODE2ZjFjMTVhMzhiM2M3ZmQzNzlkZTZmZTEuLjdkYWEyODlhMjEzMGM2ZWExZjUwNDZm
ODMyMTJiODc4YTE3YjRhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9z
ZXBhcmF0ZV9oZWFkZXIucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24K
ICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGlu
Z3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19tb2RlbC5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5
CmluZGV4IDAyMmE5OGIyYjIxNjE0ZDg0MWFlNWNhNmRiZDUwMTM5NWJhZjcyYzAuLjc3YjJiODg1
Y2RjYTIxYTlkZmQzNzJiMzM1ZjFjOTNkMGY0OWY1NjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CkBAIC00
MSw4ICs0MSw5IEBAIF9GUkFNRVdPUktfQ09ORklHX01BUCA9IHsKIH0KIAogZnVuY3Rpb25IZWFk
UmVnRXhwID0gcmUuY29tcGlsZShyIig/OkBbXHd8PV0rXHMqXG4pKmZ1bmN0aW9uXHMrXHcrXHMq
XCguKj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSW50cmluc2ljUmVn
RXhwID0gcmUuY29tcGlsZShyIl5AaW50cmluc2ljPShcdyspXHMqXG4iLCByZS5NVUxUSUxJTkUg
fCByZS5ET1RBTEwpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIi
XkBjb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uR2xvYmFs
UHJpdmF0ZVJlZ0V4cCA9IHJlLmNvbXBpbGUociIuKl5AZ2xvYmFsUHJpdmF0ZSIsIHJlLk1VTFRJ
TElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShy
Ii4qXkBpbnRyaW5zaWM9KFx3KykiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCitmdW5jdGlv
bklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGNvbnN0cnVjdG9yIiwgcmUu
TVVMVElMSU5FIHwgcmUuRE9UQUxMKQogZnVuY3Rpb25OYW1lUmVnRXhwID0gcmUuY29tcGlsZShy
ImZ1bmN0aW9uXHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKIGZ1bmN0
aW9uUGFyYW1ldGVyRmluZGVyID0gcmUuY29tcGlsZShyIl5mdW5jdGlvblxzKyg/Olx3Kylccypc
KCgoPzpccypcdyspP1xzKig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxUSUxJTkUgfCBy
ZS5ET1RBTEwpCiAKQEAgLTk0LDExICs5NSwxMiBAQCBjbGFzcyBCdWlsdGluT2JqZWN0OgogCiAK
IGNsYXNzIEJ1aWx0aW5GdW5jdGlvbjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25f
bmFtZSwgZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmlu
c2ljKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291
cmNlLCBwYXJhbWV0ZXJzLCBpc19jb25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZhdGUsIGludHJp
bnNpYyk6CiAgICAgICAgIHNlbGYuZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uX25hbWUKICAgICAg
ICAgc2VsZi5mdW5jdGlvbl9zb3VyY2UgPSBmdW5jdGlvbl9zb3VyY2UKLSAgICAgICAgc2VsZi5p
c19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYucGFyYW1ldGVycyA9
IHBhcmFtZXRlcnMKKyAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9y
CisgICAgICAgIHNlbGYuaXNfZ2xvYmFsX3ByaXZhdGUgPSBpc19nbG9iYWxfcHJpdmF0ZQogICAg
ICAgICBzZWxmLmludHJpbnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9iamVjdCA9IE5v
bmUgICMgU2V0IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMTksMTEgKzEyMSwx
MiBAQCBjbGFzcyBCdWlsdGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1
bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAgICAgICAgaXNf
Y29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25f
c291cmNlKSAhPSBOb25lCisgICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVuY3Rpb25HbG9i
YWxQcml2YXRlUmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQogICAgICAgICBw
YXJhbWV0ZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRlckZpbmRlci5m
aW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAgaWYgbGVuKHBh
cmFtZXRlcnNbMF0pID09IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAotICAgICAg
ICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwg
aXNfY29uc3RydWN0b3IsIHBhcmFtZXRlcnMsIGludHJpbnNpYykKKyAgICAgICAgcmV0dXJuIEJ1
aWx0aW5GdW5jdGlvbihmdW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMs
IGlzX2NvbnN0cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKQogCiAgICAgZGVm
IF9fc3RyX18oc2VsZik6CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUgKHNlbGYuZnVu
Y3Rpb25fbmFtZSwgJywgJy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzCmlu
ZGV4IDU2NTk1ZjcxNDFlNTVmNTFmMmUyMDA5NWQ2N2U1OGQ4YWQ5OTIxNWIuLmNiYWZjYjhhYzM0
ZWQ2MDI1NDVlMDQ3ZTdkYmY4NGY5OWY5YjA3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzCkBAIC00MSw2
ICs0MSw3IEBAIGZ1bmN0aW9uIG5leHQoKQogICAgIHJldHVybiBuZXh0LkBjYWxsKHRoaXMpOwog
fQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gYXJyYXlJdGVyYXRvclZhbHVlTmV4dCgpCiB7
CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNjMsNiArNjQsNyBAQCBmdW5jdGlvbiBhcnJheUl0ZXJh
dG9yVmFsdWVOZXh0KCkKICAgICByZXR1cm4geyBkb25lLCB2YWx1ZSB9OwogfQogCitAZ2xvYmFs
UHJpdmF0ZQogZnVuY3Rpb24gYXJyYXlJdGVyYXRvcktleU5leHQoKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKQEAgLTg1LDYgKzg3LDcgQEAgZnVuY3Rpb24gYXJyYXlJdGVyYXRvcktleU5leHQoKQog
ICAgIHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biBhcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmljdCI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKaW5kZXgg
OTVjYTA5NDExZmIzNTU2NGEyMWI3MzQ0ZDI2ODRhOGE5NzM1YmU0My4uNzE4MmU3YWFlYzcyMWRh
OTZlZjE1YThhN2RhNzAxMDI3NDQ2YjMwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAtMjUsNiArMjUsNyBAQAogICovCiAKIEBj
b25zdHJ1Y3RvcgorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGNyZWF0ZUFycmF5SXRlcmF0b3Io
aXRlcmF0ZWRPYmplY3QsIGtpbmQsIGl0ZXJhdGlvbkZ1bmN0aW9uKQogewogICAgIHRoaXMuQGl0
ZXJhdGVkT2JqZWN0ID0gaXRlcmF0ZWRPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggYjZmNGUzODY3ZjJiY2VhYjk2ZDY5MzgwOGNi
NDY3Nzg2MmExNjQ1ZS4uZGQzNmM3YmU1OGYxZGI4N2YzNzhjNjhkMDJjNGM3MGYzNzE3MTlmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcs
MTEgKzI3LDEzNiBAQAogI2RlZmluZSBCdWlsdGluTmFtZXNfaAogCiAjaW5jbHVkZSAiQnVpbHRp
blV0aWxzLmgiCisjaW5jbHVkZSAiQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgogI2luY2x1
ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKKyNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VB
Q0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklO
U0lDX0ZVTkNUSU9OU19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBKU0NfQ09NTU9OX0JZVEVDT0RF
X0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1FKG1hY3JvKSBcCisgICAgbWFjcm8oaXRlcmF0
ZWRPYmplY3QpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dEluZGV4KSBcCisgICAgbWFj
cm8oYXJyYXlJdGVyYXRpb25LaW5kKSBcCisgICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHQpIFwK
KyAgICBtYWNybyhhcnJheUl0ZXJhdG9ySXNEb25lKSBcCisgICAgbWFjcm8oYXJyYXlJdGVyYXRv
cktpbmQpIFwKKyAgICBtYWNybyhjaGFyQ29kZUF0KSBcCisgICAgbWFjcm8oaXRlcmF0ZWRTdHJp
bmcpIFwKKyAgICBtYWNybyhzdHJpbmdJdGVyYXRvck5leHRJbmRleCkgXAorICAgIG1hY3JvKHBy
b21pc2UpIFwKKyAgICBtYWNybyhmdWxmaWxsbWVudEhhbmRsZXIpIFwKKyAgICBtYWNybyhyZWpl
Y3Rpb25IYW5kbGVyKSBcCisgICAgbWFjcm8oaW5kZXgpIFwKKyAgICBtYWNybyhkZWZlcnJlZCkg
XAorICAgIG1hY3JvKGNvdW50ZG93bkhvbGRlcikgXAorICAgIG1hY3JvKE9iamVjdCkgXAorICAg
IG1hY3JvKG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpIFwKKyAgICBtYWNybyhOdW1iZXIpIFwK
KyAgICBtYWNybyhBcnJheSkgXAorICAgIG1hY3JvKFN0cmluZykgXAorICAgIG1hY3JvKFJlZ0V4
cCkgXAorICAgIG1hY3JvKE1hcCkgXAorICAgIG1hY3JvKFByb21pc2UpIFwKKyAgICBtYWNybyhS
ZWZsZWN0KSBcCisgICAgbWFjcm8oSW50ZXJuYWxQcm9taXNlKSBcCisgICAgbWFjcm8oYWJzKSBc
CisgICAgbWFjcm8oZmxvb3IpIFwKKyAgICBtYWNybyh0cnVuYykgXAorICAgIG1hY3JvKGlzRmlu
aXRlKSBcCisgICAgbWFjcm8oaXNOYU4pIFwKKyAgICBtYWNybyhjcmVhdGUpIFwKKyAgICBtYWNy
byhkZWZpbmVQcm9wZXJ0eSkgXAorICAgIG1hY3JvKGdldFByb3RvdHlwZU9mKSBcCisgICAgbWFj
cm8oZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKSBcCisgICAgbWFjcm8oZ2V0T3duUHJvcGVydHlO
YW1lcykgXAorICAgIG1hY3JvKG93bktleXMpIFwKKyAgICBtYWNybyhFcnJvcikgXAorICAgIG1h
Y3JvKFJhbmdlRXJyb3IpIFwKKyAgICBtYWNybyhUeXBlRXJyb3IpIFwKKyAgICBtYWNybyh0eXBl
ZEFycmF5TGVuZ3RoKSBcCisgICAgbWFjcm8odHlwZWRBcnJheVNvcnQpIFwKKyAgICBtYWNybyh0
eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKEJ1aWx0aW5Mb2cp
IFwKKyAgICBtYWNybyhob21lT2JqZWN0KSBcCisgICAgbWFjcm8oZ2V0VGVtcGxhdGVPYmplY3Qp
IFwKKyAgICBtYWNybyhlbnF1ZXVlSm9iKSBcCisgICAgbWFjcm8oaGFuZGxlcikgXAorICAgIG1h
Y3JvKHByb21pc2VTdGF0ZSkgXAorICAgIG1hY3JvKHByb21pc2VGdWxmaWxsUmVhY3Rpb25zKSBc
CisgICAgbWFjcm8ocHJvbWlzZVJlamVjdFJlYWN0aW9ucykgXAorICAgIG1hY3JvKHByb21pc2VS
ZXN1bHQpIFwKKyAgICBtYWNybyhwdXNoKSBcCisgICAgbWFjcm8ocmVwZWF0Q2hhcmFjdGVyKSBc
CisgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCisgICAgbWFjcm8oc3RhckRlZmF1bHQpIFwKKyAg
ICBtYWNybyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pIFwKKyAgICBtYWNybyhnZXQpIFwKKyAg
ICBtYWNybyhzZXQpIFwKKyAgICBtYWNybyhzaGlmdCkgXAorICAgIG1hY3JvKGFsbG9jYXRlVHlw
ZWRBcnJheSkgXAorICAgIG1hY3JvKEludDhBcnJheSkgXAorICAgIG1hY3JvKEludDE2QXJyYXkp
IFwKKyAgICBtYWNybyhJbnQzMkFycmF5KSBcCisgICAgbWFjcm8oVWludDhBcnJheSkgXAorICAg
IG1hY3JvKFVpbnQ4Q2xhbXBlZEFycmF5KSBcCisgICAgbWFjcm8oVWludDE2QXJyYXkpIFwKKyAg
ICBtYWNybyhVaW50MzJBcnJheSkgXAorICAgIG1hY3JvKEZsb2F0MzJBcnJheSkgXAorICAgIG1h
Y3JvKEZsb2F0NjRBcnJheSkgXAorICAgIG1hY3JvKGV4ZWMpIFwKKyAgICBtYWNybyhnZW5lcmF0
b3IpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JOZXh0KSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yU3Rh
dGUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JGcmFtZSkgXAorICAgIG1hY3JvKGdlbmVyYXRvclZh
bHVlKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yVGhpcykgXAorICAgIG1hY3JvKGdlbmVyYXRvclJl
c3VtZU1vZGUpIFwKKyAgICBtYWNybyhDb2xsYXRvcikgXAorICAgIG1hY3JvKERhdGVUaW1lRm9y
bWF0KSBcCisgICAgbWFjcm8oTnVtYmVyRm9ybWF0KSBcCisgICAgbWFjcm8oaW50bFN1YnN0aXR1
dGVWYWx1ZSkgXAorICAgIG1hY3JvKHRoaXNUaW1lVmFsdWUpIFwKKyAgICBtYWNybyh0aGlzTnVt
YmVyVmFsdWUpIFwKKyAgICBtYWNybyhuZXdUYXJnZXRMb2NhbCkgXAorICAgIG1hY3JvKGRlcml2
ZWRDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAorICAgIG1hY3Jv
KGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAorICAgIG1hY3JvKGluc3RhbmNlT2YpIFwKKyAg
ICBtYWNybyhpc0FycmF5KSBcCisgICAgbWFjcm8oaXNBcnJheUNvbnN0cnVjdG9yKSBcCisgICAg
bWFjcm8oaXNDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKGlzUmVnRXhwT2JqZWN0KSBcCisgICAg
bWFjcm8ocHJlZGljdEZpbmFsTGVuZ3RoRnJvbUFyZ3VtdW50cykgXAorICAgIG1hY3JvKHByaW50
KSBcCisgICAgbWFjcm8oaXNTZXQpIFwKKyAgICBtYWNybyhpc01hcCkgXAorICAgIG1hY3JvKHJl
Z0V4cENyZWF0ZSkgXAorICAgIG1hY3JvKFNldEl0ZXJhdG9yKSBcCisgICAgbWFjcm8oc2V0SXRl
cmF0b3JOZXh0KSBcCisgICAgbWFjcm8ocmVwbGFjZVVzaW5nUmVnRXhwKSBcCisgICAgbWFjcm8o
cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKSBcCisgICAgbWFjcm8oTWFwSXRlcmF0b3IpIFwKKyAg
ICBtYWNybyhtYXBJdGVyYXRvck5leHQpIFwKKyAgICBtYWNybyhyZWdFeHBCdWlsdGluRXhlYykg
XAorICAgIG1hY3JvKHJlZ0V4cE1hdGNoRmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvRmxh
Z3NHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b0dsb2JhbEdldHRlcikgXAorICAgIG1h
Y3JvKHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3Rv
TXVsdGlsaW5lR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXIpIFwK
KyAgICBtYWNybyhyZWdFeHBQcm90b1N0aWNreUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFBy
b3RvVW5pY29kZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxh
Y2UpIFwKKyAgICBtYWNybyhyZWdFeHBSZXBsYWNlRmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFNl
YXJjaEZhc3QpIFwKKyAgICBtYWNybyhyZWdFeHBTcGxpdEZhc3QpIFwKKyAgICBtYWNybyhyZWdF
eHBUZXN0RmFzdCkgXAorICAgIG1hY3JvKHN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpIFwKKyAgICBt
YWNybyhzdHJpbmdTcGxpdEZhc3QpIFwKKyAgICBtYWNybyhzdHJpbmdTdWJzdHJJbnRlcm5hbCkg
XAorCiAjZGVmaW5lIElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkobmFtZSkgbV9w
cml2YXRlVG9QdWJsaWNNYXAuYWRkKG1fIyNuYW1lIyNQcml2YXRlTmFtZS5pbXBsKCksICZtXyMj
bmFtZSk7CiAjZGVmaW5lIElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkobmFtZSkg
bV9wdWJsaWNUb1ByaXZhdGVNYXAuYWRkKG1fIyNuYW1lLmltcGwoKSwgJm1fIyNuYW1lIyNQcml2
YXRlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9H
ZW5lcmF0b3JQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2Vu
ZXJhdG9yUHJvdG90eXBlLmpzCmluZGV4IDY5NDYzYzMzNjAyZTI4ZjdkZDQyOWFkMjM0NmRiMWE3
ZTVlZWRkZWUuLjNjMTQwNjg3ZGZjN2UwMGVmZTkxYWU4MGIyYWM2NzZmYTliZjQ4ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUu
anMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlw
ZS5qcwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZdXN1
a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjUsNiArMjYsNyBAQAogCiAvLyAyNS4zLjMuMyBHZW5lcmF0b3JSZXN1bWUg
KCBnZW5lcmF0b3IsIHZhbHVlICkKIC8vIDI1LjMuMy40IEdlbmVyYXRvclJlc3VtZUFicnVwdChn
ZW5lcmF0b3IsIGFicnVwdENvbXBsZXRpb24pCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gZ2Vu
ZXJhdG9yUmVzdW1lKGdlbmVyYXRvciwgc2VudFZhbHVlLCByZXN1bWVNb2RlKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9H
bG9iYWxPYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT2Jq
ZWN0LmpzCmluZGV4IDhiYTM0OTA4YWZhNzliYzM2MjIyZGM5ZTE1M2UyOGYyOTJjMjA5MTAuLjU3
NzZhMjI5NmJhYWM4YzU0MTJiNGNlMzVkZjcwODk4MDM5MGM2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcwpAQCAtMjYsNiArMjYsNyBAQAog
CiAvLyBAaW50ZXJuYWwKIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHRvSW50ZWdlcih0YXJn
ZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMzgsNiArMzksNyBAQCBmdW5jdGlvbiB0b0lu
dGVnZXIodGFyZ2V0KQogICAgIHJldHVybiBAdHJ1bmMobnVtYmVyVmFsdWUpOwogfQogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9MZW5ndGgodGFyZ2V0KQogewogICAgICJ1c2Ugc3RyaWN0
IjsKQEAgLTQ4LDYgKzUwLDcgQEAgZnVuY3Rpb24gdG9MZW5ndGgodGFyZ2V0KQogICAgIHJldHVy
biBsZW5ndGggPiAwID8gKGxlbmd0aCA8IG1heFNhZmVJbnRlZ2VyID8gbGVuZ3RoIDogbWF4U2Fm
ZUludGVnZXIpIDogMDsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGlzRGljdGlvbmFy
eShvYmplY3QpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNTcsMTEgKzYwLDEzIEBAIGZ1bmN0
aW9uIGlzRGljdGlvbmFyeShvYmplY3QpCiAKIC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRvIGhhdmUg
aXQncyBuYW1lIGNoYW5nZWQgdG8gImdldCBbU3ltYm9sLnNwZWNpZXNdIi4KIC8vIHNlZTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2MworQGdsb2JhbFByaXZh
dGUKIGZ1bmN0aW9uIHNwZWNpZXNHZXR0ZXIoKQogewogICAgIHJldHVybiB0aGlzOwogfQogCitA
Z2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gc3BlY2llc0NvbnN0cnVjdG9yKG9iaiwgZGVmYXVsdENv
bnN0cnVjdG9yKQogewogICAgIHZhciBjb25zdHJ1Y3RvciA9IG9iai5jb25zdHJ1Y3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9u
cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5q
cwppbmRleCBjNGU1OWJiMDc5M2I5ZTAwYWU3ZDlhMjUxNWEzZGQyZDJiNGIxMjhiLi4xOTFkYjNm
NmFjZjU5YzY4NGFjMzI2ZTI3YzNlM2U5MmQ2M2IwNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNiArMjYsNyBA
QAogCiAvLyBAaW50ZXJuYWwKIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGlzUHJvbWlzZShw
cm9taXNlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTMyLDYgKzM0LDcgQEAgZnVuY3Rpb24g
aXNQcm9taXNlKHByb21pc2UpCiAgICAgcmV0dXJuIEBpc09iamVjdChwcm9taXNlKSAmJiAhIXBy
b21pc2UuQHByb21pc2VTdGF0ZTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIG5ld1By
b21pc2VSZWFjdGlvbihjYXBhYmlsaXR5LCBoYW5kbGVyKQogewogICAgICJ1c2Ugc3RyaWN0IjsK
QEAgLTQyLDYgKzQ1LDcgQEAgZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9uKGNhcGFiaWxpdHks
IGhhbmRsZXIpCiAgICAgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIG5ld1Byb21p
c2VDYXBhYmlsaXR5KGNvbnN0cnVjdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTgwLDYg
Kzg0LDcgQEAgZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHkoY29uc3RydWN0b3IpCiAgICAg
cmV0dXJuIHByb21pc2VDYXBhYmlsaXR5OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24g
dHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCBhcmd1bWVudCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC04OCw2ICs5Myw3IEBAIGZ1bmN0aW9uIHRyaWdnZXJQcm9taXNlUmVhY3Rp
b25zKHJlYWN0aW9ucywgYXJndW1lbnQpCiAgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVh
Y3Rpb25Kb2IsIFtyZWFjdGlvbnNbaW5kZXhdLCBhcmd1bWVudF0pOwogfQogCitAZ2xvYmFsUHJp
dmF0ZQogZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCiB7CiAgICAgInVz
ZSBzdHJpY3QiOwpAQCAtMTAzLDYgKzEwOSw3IEBAIGZ1bmN0aW9uIHJlamVjdFByb21pc2UocHJv
bWlzZSwgcmVhc29uKQogICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHJl
YXNvbik7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9t
aXNlLCB2YWx1ZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xMTgsNiArMTI1LDcgQEAgZnVu
Y3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCiAgICAgQHRyaWdnZXJQcm9taXNl
UmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rp
b24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiB7CiAgICAgInVzZSBzdHJpY3Qi
OwpAQCAtMTY0LDYgKzE3Miw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhw
cm9taXNlKQogICAgIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVh
Y3Rpb25Kb2IocmVhY3Rpb24sIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTE4
MCw2ICsxODksNyBAQCBmdW5jdGlvbiBwcm9taXNlUmVhY3Rpb25Kb2IocmVhY3Rpb24sIGFyZ3Vt
ZW50KQogICAgIHJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5AcmVzb2x2ZS5AY2FsbChAdW5kZWZp
bmVkLCByZXN1bHQpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcHJvbWlzZVJlc29s
dmVUaGVuYWJsZUpvYihwcm9taXNlVG9SZXNvbHZlLCB0aGVuYWJsZSwgdGhlbikKIHsKICAgICAi
dXNlIHN0cmljdCI7CkBAIC0xOTMsNiArMjAzLDcgQEAgZnVuY3Rpb24gcHJvbWlzZVJlc29sdmVU
aGVuYWJsZUpvYihwcm9taXNlVG9SZXNvbHZlLCB0aGVuYWJsZSwgdGhlbikKICAgICB9CiB9CiAK
K0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBpbml0aWFsaXplUHJvbWlzZShleGVjdXRvcikKIHsK
ICAgICAidXNlIHN0cmljdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1JlZ0V4cFByb3RvdHlwZS5qcwppbmRleCAyOTU3ZjE0Y2I3Mzk4MGYyNDVmNmQxYzc0NmRhZmY4
MTI3ZTQ5MmRjLi45ZDk0NWE0Y2UzNzJjYmIzYzlmNTAzZjEyZGJmZjE0ZWMxYzU1NjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMK
QEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKK0BnbG9iYWxQcml2YXRl
CiBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBpbmRleCwgdW5pY29kZSkKIHsK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgQWR2YW5jZVN0cmluZ0luZGV4IGRlc2Ny
aWJlZCBpbiBFUzYgMjEuMi41LjIuMy4KQEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24gYWR2YW5j
ZVN0cmluZ0luZGV4KHN0cmluZywgaW5kZXgsIHVuaWNvZGUpCiAgICAgcmV0dXJuIGluZGV4ICsg
MjsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBzdHIp
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNjAsNiArNjIsNyBAQCBmdW5jdGlvbiByZWdFeHBF
eGVjKHJlZ2V4cCwgc3RyKQogICAgIHJldHVybiBidWlsdGluRXhlYy5AY2FsbChyZWdleHAsIHN0
cik7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBoYXNPYnNlcnZhYmxlU2lkZUVmZmVj
dHNGb3JSZWdFeHBNYXRjaChyZWdleHApIHsKICAgICAvLyBUaGlzIGlzIGFjY2Vzc2VkIGJ5IHRo
ZSBSZWdFeHBFeGVjIGludGVybmFsIGZ1bmN0aW9uLgogICAgIGxldCByZWdleHBFeGVjID0gQHRy
eUdldEJ5SWQocmVnZXhwLCAiZXhlYyIpOwpAQCAtMzI2LDYgKzMyOSw3IEBAIGZ1bmN0aW9uIHNl
YXJjaChzdHJBcmcpCiAgICAgcmV0dXJuIHJlc3VsdC5pbmRleDsKIH0KIAorQGdsb2JhbFByaXZh
dGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0KHJlZ2V4
cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50ZXJuYWwg
ZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAsICJleGVj
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJv
dG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlw
ZS5qcwppbmRleCA4OTY1MTBjMDQ0ZWVlODg1MjkwZTU1YWIwN2ZhOTk5M2ZiYmQwNmViLi5lZmI4
NTdiNzNiMGRkMjZiZjVmNmM3ZWVlNDliNjcyMzI4NjQyNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKQEAgLTQ2LDYgKzQ2LDcg
QEAgZnVuY3Rpb24gbWF0Y2gocmVnZXhwKQogICAgIHJldHVybiBjcmVhdGVkUmVnRXhwLkBtYXRj
aFN5bWJvbCh0aGlzU3RyaW5nKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHJlcGVh
dFNsb3dQYXRoKHN0cmluZywgY291bnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODQsNyAr
ODUsNyBAQCBmdW5jdGlvbiByZXBlYXRTbG93UGF0aChzdHJpbmcsIGNvdW50KQogICAgIH0KIH0K
IAotCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0Q2hhcmFjdGVyc1Nsb3dQYXRoKHN0
cmluZywgY291bnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMjAyLDYgKzIwMyw3IEBAIGZ1
bmN0aW9uIHBhZEVuZChtYXhMZW5ndGgvKiwgZmlsbFN0cmluZyovKQogICAgIHJldHVybiBzdHJp
bmcgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlKHJlZ2V4cCwgcmVwbGFj
ZXIpIHsKICAgICBpZiAocmVwbGFjZXIgIT09IEByZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNl
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAppbmRleCBiMjc1
ZTYzYzlmMmFmMGRlNmI1ZTJlYzEzNGZjNmQyYjUwMTQyYzkzLi4xOTU0M2FkZGI1ZTNiNmNjOGI4
ZDVhNWYyMzRiMDI5NjMwYjE2MzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCkBAIC0yNiw4
ICsyNiwxMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgi
Ci0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJKU0dlbmVyYXRvckZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9t
aXNlLmgiCkBAIC0zNiw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jZGVmaW5lIElO
SVRJQUxJWkVfQllURUNPREVfSU5UUklOU0lDX05BTUVTX1RPX1NFVChuYW1lKSBtX2J5dGVjb2Rl
SW50cmluc2ljTWFwLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lIyNQcml2YXRlTmFtZS5pbXBs
KCksICZCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljXyMjbmFtZSk7CisjZGVm
aW5lIElOSVRJQUxJWkVfQllURUNPREVfSU5UUklOU0lDX05BTUVTX1RPX1NFVChuYW1lKSBtX2J5
dGVjb2RlSW50cmluc2ljTWFwLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5u
YW1lIyNQcml2YXRlTmFtZSgpLmltcGwoKSwgJkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9p
bnRyaW5zaWNfIyNuYW1lKTsKIAogQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeShWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCAzOTljMmU4NTRiMzRlODhhMjhkODJkMzI1MTc1N2QxYTdjNGU4ZGIyLi45MWY1Yzc3NDdh
ZDY1MGJhNWZkMDNjMjQ5YTNlNWQ1MGFjYTE5YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtOTEw
LDEyICs5MTAsMTIgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RnVu
Y3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZChTeW1ib2xUYWJsZSoKIAogICAgICAgICBpZiAobV9j
b2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVu
Y3Rpb24oKSkgewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJsZS0+dGFr
ZU5leHRTY29wZU9mZnNldCgpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0
KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0
ZU5hbWUuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CisgICAg
ICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBwcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpLmlt
cGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0KSkpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBpZiAoaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9yS2luZCgp
ID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBpc1N1cGVyVXNlZEluSW5uZXJBcnJvd0Z1
bmN0aW9uKCkpIHsKICAgICAgICAgICAgIG9mZnNldCA9IGZ1bmN0aW9uU3ltYm9sVGFibGUtPnRh
a2VOZXh0U2NvcGVPZmZzZXQoTm9Mb2NraW5nTmVjZXNzYXJ5KTsKLSAgICAgICAgICAgIGZ1bmN0
aW9uU3ltYm9sVGFibGUtPnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5k
ZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZS5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoVmFy
T2Zmc2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uU3ltYm9sVGFibGUtPnNldChO
b0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5kZXJpdmVk
Q29uc3RydWN0b3JQcml2YXRlTmFtZSgpLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZz
ZXQob2Zmc2V0KSkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuOwpAQCAtOTMwLDEzICs5
MzAsMTMgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RnVuY3Rpb25D
b250ZXh0U2NvcGVJZk5lZWRlZChTeW1ib2xUYWJsZSoKICAgICB9CiAgICAgCiAgICAgaWYgKG1f
Y29kZVR5cGUgPT0gRnVuY3Rpb25Db2RlICYmIGlzTmV3VGFyZ2V0VXNlZEluSW5uZXJBcnJvd0Z1
bmN0aW9uKCkpIHsKLSAgICAgICAgYXV0byBhZGRUYXJnZXQgPSBlbnZpcm9ubWVudC5hZGQocHJv
cGVydHlOYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUpOworICAgICAgICBhdXRvIGFk
ZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCku
bmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKICAgICAgICAgYWRkVGFyZ2V0Lml0ZXJhdG9y
LT52YWx1ZS5zZXRJc0NhcHR1cmVkKCk7CiAgICAgICAgIGFkZFRhcmdldC5pdGVyYXRvci0+dmFs
dWUuc2V0SXNMZXQoKTsKICAgICB9CiAKICAgICBpZiAoaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0
cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBpc1N1cGVyVXNlZElu
SW5uZXJBcnJvd0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXJpdmVkQ29uc3RydWN0b3Ig
PSBlbnZpcm9ubWVudC5hZGQocHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZh
dGVOYW1lKTsKKyAgICAgICAgYXV0byBkZXJpdmVkQ29uc3RydWN0b3IgPSBlbnZpcm9ubWVudC5h
ZGQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZh
dGVOYW1lKCkpOwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNl
dElzQ2FwdHVyZWQoKTsKICAgICAgICAgZGVyaXZlZENvbnN0cnVjdG9yLml0ZXJhdG9yLT52YWx1
ZS5zZXRJc0xldCgpOwogICAgIH0KQEAgLTI5NzcsOSArMjk3Nyw5IEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbEV2YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBmdW5jLCBDCiAKIEV4cGVjdGVkRnVuY3Rpb24gQnl0ZWNvZGVHZW5lcmF0b3I6OmV4cGVjdGVk
RnVuY3Rpb25Gb3JJZGVudGlmaWVyKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0g
ICAgaWYgKGlkZW50aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0IHx8IGlkZW50
aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0UHJpdmF0ZU5hbWUpCisgICAgaWYg
KGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLk9iamVjdCB8fCBpZGVudGlmaWVyID09IHBy
b3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpKQogICAgICAg
ICByZXR1cm4gRXhwZWN0T2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgaWYgKGlkZW50aWZpZXIgPT0g
bV92bS0+cHJvcGVydHlOYW1lcy0+QXJyYXkgfHwgaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5BcnJheVByaXZhdGVOYW1lKQorICAgIGlmIChpZGVudGlmaWVyID09IHByb3BlcnR5
TmFtZXMoKS5BcnJheSB8fCBpZGVudGlmaWVyID09IHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFt
ZXMoKS5BcnJheVByaXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBlY3RBcnJheUNvbnN0
cnVjdG9yOwogICAgIHJldHVybiBOb0V4cGVjdGVkRnVuY3Rpb247CiB9CkBAIC00MDQ1LDcgKzQw
NDUsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBsYXRlT2Jq
ZWN0KFJlZ2lzdGVySUQqIGRzdCwgVGFnZ2VkVGVtcAogICAgIH0KIAogICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBnZXRUZW1wbGF0ZU9iamVjdCA9IG51bGxwdHI7Ci0gICAgVmFyaWFibGUgdmFyID0g
dmFyaWFibGUocHJvcGVydHlOYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUpOwor
ICAgIFZhcmlhYmxlIHZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMo
KS5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lKCkpOwogICAgIGlmIChSZWdpc3RlcklEKiBs
b2NhbCA9IHZhci5sb2NhbCgpKQogICAgICAgICBnZXRUZW1wbGF0ZU9iamVjdCA9IGVtaXRNb3Zl
KG5ld1RlbXBvcmFyeSgpLCBsb2NhbCk7CiAgICAgZWxzZSB7CkBAIC00MjM1LDE2ICs0MjM1LDE2
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkVGhpc0Zyb21BcnJvd0Z1bmN0aW9u
TGV4aWNhbEVudmlyb25tZW50KCkKICAgICAKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0TG9hZE5ld1RhcmdldEZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkK
IHsKLSAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCku
bmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUgbmV3VGFyZ2V0VmFyID0g
dmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExvY2FsUHJp
dmF0ZU5hbWUoKSk7CiAKLSAgICByZXR1cm4gZW1pdEdldEZyb21TY29wZShtX25ld1RhcmdldFJl
Z2lzdGVyLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlO
YW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUpLCBuZXdUYXJnZXRWYXIsIFRocm93SWZO
b3RGb3VuZCk7CisgICAgcmV0dXJuIGVtaXRHZXRGcm9tU2NvcGUobV9uZXdUYXJnZXRSZWdpc3Rl
ciwgZW1pdExvYWRBcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KHByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpLCBuZXdUYXJnZXRW
YXIsIFRocm93SWZOb3RGb3VuZCk7CiAgICAgCiB9CiAKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNh
bEVudmlyb25tZW50KCkKIHsKLSAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFyID0gdmFyaWFibGUo
cHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKTsKLSAgICByZXR1
cm4gZW1pdEdldEZyb21TY29wZShuZXdUZW1wb3JhcnkoKSwgZW1pdExvYWRBcnJvd0Z1bmN0aW9u
TGV4aWNhbEVudmlyb25tZW50KHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2
YXRlTmFtZSksIHByb3RvU2NvcGVWYXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgVmFyaWFibGUg
cHJvdG9TY29wZVZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5k
ZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpKTsKKyAgICByZXR1cm4gZW1pdEdldEZyb21T
Y29wZShuZXdUZW1wb3JhcnkoKSwgZW1pdExvYWRBcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25t
ZW50KHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2
YXRlTmFtZSgpKSwgcHJvdG9TY29wZVZhciwgVGhyb3dJZk5vdEZvdW5kKTsKIH0KIAogUmVnaXN0
ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVuc3VyZVRoaXMoKQpAQCAtNDI4OCw3ICs0Mjg4LDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dE5ld1RhcmdldFRvQXJyb3dGdW5jdGlv
bkNvbnRleHRTY29wZSgpCiAgICAgaWYgKGlzTmV3VGFyZ2V0VXNlZEluSW5uZXJBcnJvd0Z1bmN0
aW9uKCkpIHsKICAgICAgICAgQVNTRVJUKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52
aXJvbm1lbnRSZWdpc3Rlcik7CiAgICAgICAgIAotICAgICAgICBWYXJpYWJsZSBuZXdUYXJnZXRW
YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7
CisgICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpOwogICAgICAgICBl
bWl0UHV0VG9TY29wZShtX2Fycm93RnVuY3Rpb25Db250ZXh0TGV4aWNhbEVudmlyb25tZW50UmVn
aXN0ZXIsIG5ld1RhcmdldFZhciwgbmV3VGFyZ2V0KCksIERvTm90VGhyb3dJZk5vdEZvdW5kLCBJ
bml0aWFsaXphdGlvbk1vZGU6OkluaXRpYWxpemF0aW9uKTsKICAgICB9CiB9CkBAIC00Mjk5LDcg
KzQyOTksNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0RGVyaXZlZENvbnN0cnVj
dG9yVG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKICAgICAgICAgaWYgKGlzU3VwZXJVc2Vk
SW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fYXJyb3dGdW5j
dGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlcik7CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIFZhcmlhYmxlIHByb3RvU2NvcGUgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCku
ZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgVmFyaWFibGUgcHJv
dG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5kZXJpdmVk
Q29uc3RydWN0b3JQcml2YXRlTmFtZSgpKTsKICAgICAgICAgICAgIGVtaXRQdXRUb1Njb3BlKG1f
YXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgcHJvdG9TY29w
ZSwgJm1fY2FsbGVlUmVnaXN0ZXIsIERvTm90VGhyb3dJZk5vdEZvdW5kLCBJbml0aWFsaXphdGlv
bk1vZGU6OkluaXRpYWxpemF0aW9uKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ1NjQsNyArNDU2
NCw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGVsZWdhdGVZaWVsZChS
ZWdpc3RlcklEKiBhcmd1bWVudCwgVGhyb3dhYmxlCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0R2VuZXJhdG9yU3RhdGVDaGFuZ2UoaW50MzJfdCBzdGF0ZSkKIHsKICAgICBSZWdpc3RlcklE
KiBjb21wbGV0ZWRTdGF0ZSA9IGVtaXRMb2FkKG51bGxwdHIsIGpzTnVtYmVyKHN0YXRlKSk7Ci0g
ICAgZW1pdFB1dEJ5SWQoZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgcHJvcGVydHlOYW1lcygpLmdlbmVy
YXRvclN0YXRlUHJpdmF0ZU5hbWUsIGNvbXBsZXRlZFN0YXRlKTsKKyAgICBlbWl0UHV0QnlJZChn
ZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJh
dG9yU3RhdGVQcml2YXRlTmFtZSgpLCBjb21wbGV0ZWRTdGF0ZSk7CiB9CiAKIHZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JTdGF0ZUxhYmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA4YWJiNDU4
ZTEyNzJkMThmY2MxNzVlOTljNTFjMmJkNGQ2ZGY3MTU1Li4zNGRhYjI3NThlZGU5YzcyMzZhMjNl
N2E3OGEyNzU3YzQzNzRmOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xNjEsMTIgKzE2MSwxMiBAQCBzdGF0aWMg
UmVnaXN0ZXJJRCogZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvcikKIHsKICAgICBpZiAoZ2VuZXJhdG9yLmlzRGVyaXZlZENsYXNzQ29udGV4dCgpIHx8
IGdlbmVyYXRvci5pc0Rlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQoKSkgewogICAgICAgICBSZWdp
c3RlcklEKiBkZXJpdmVkQ29uc3RydWN0b3IgPSBnZW5lcmF0b3IuZW1pdExvYWREZXJpdmVkQ29u
c3RydWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpOwotICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgZGVy
aXZlZENvbnN0cnVjdG9yLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmhvbWVPYmplY3RQcml2
YXRlTmFtZSk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0b3IsIGdlbmVyYXRvci5wcm9wZXJ0eU5h
bWVzKCkuYnVpbHRpbk5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKCkpOwogICAgIH0KIAog
ICAgIFJlZ2lzdGVySUQgY2FsbGVlOwogICAgIGNhbGxlZS5zZXRJbmRleChKU1N0YWNrOjpDYWxs
ZWUpOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBv
cmFyeSgpLCAmY2FsbGVlLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmhvbWVPYmplY3RQcml2
YXRlTmFtZSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3
VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5h
bWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKCkpOwogfQogCiBzdGF0aWMgUmVnaXN0ZXJJRCog
ZW1pdFN1cGVyQmFzZUZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQpAQCAt
NDU0LDcgKzQ1NCw3IEBAIFJlZ2lzdGVySUQqIE9iamVjdExpdGVyYWxOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAKIHN0YXRpYyBpbmxpbmUg
dm9pZCBlbWl0UHV0SG9tZU9iamVjdChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBmdW5jdGlvbiwgUmVnaXN0ZXJJRCogaG9tZU9iamVjdCkKIHsKLSAgICBnZW5lcmF0
b3IuZW1pdFB1dEJ5SWQoZnVuY3Rpb24sIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9i
amVjdFByaXZhdGVOYW1lLCBob21lT2JqZWN0KTsKKyAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQo
ZnVuY3Rpb24sIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuaG9tZU9i
amVjdFByaXZhdGVOYW1lKCksIGhvbWVPYmplY3QpOwogfQogCiBSZWdpc3RlcklEKiBQcm9wZXJ0
eUxpc3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogZHN0KQpAQCAtMzI3MCwxNCArMzI3MCwxNCBAQCB2b2lkIEZ1bmN0aW9uTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQog
ICAgICAgICAvLyBCdXQgdG8gbWFrZSBpdCBlZmZpY2llbnQsIHdlIHdpbGwgaW50cm9kdWNlIEpT
R2VuZXJhdG9yIGNsYXNzLCBhZGQgb3Bjb2RlIG5ld19nZW5lcmF0b3IgYW5kIHVzZSBpdHMgQysr
IGZpZWxkcyBpbnN0ZWFkIG9mIHRoZXNlIHByaXZhdGUgcHJvcGVydGllcy4KICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogCi0gICAgICAg
IGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIo
KSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0ZU5hbWUsIG5l
eHQuZ2V0KCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOworICAgICAgICBnZW5lcmF0b3Iu
ZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRv
ci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yTmV4dFByaXZhdGVOYW1l
KCksIG5leHQuZ2V0KCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdl
bmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwg
Z2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JUaGlzUHJpdmF0ZU5hbWUsIGdlbmVy
YXRvci50aGlzUmVnaXN0ZXIoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CisgICAgICAg
IGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIo
KSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JUaGlz
UHJpdmF0ZU5hbWUoKSwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpLCBQcm9wZXJ0eU5vZGU6Oktu
b3duRGlyZWN0KTsKIAogICAgICAgICBSZWdpc3RlcklEKiBpbml0aWFsU3RhdGUgPSBnZW5lcmF0
b3IuZW1pdExvYWQobnVsbHB0ciwganNOdW1iZXIoMCkpOwotICAgICAgICBnZW5lcmF0b3IuZW1p
dERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5w
cm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwgaW5pdGlhbFN0YXRlLCBQ
cm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQ
dXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlO
YW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSwgaW5pdGlh
bFN0YXRlLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKIAotICAgICAgICBnZW5lcmF0b3Iu
ZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRv
ci5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLmVt
aXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVn
aXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0
b3JGcmFtZVByaXZhdGVOYW1lKCksIGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBqc051bGwo
KSksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCiAgICAgICAgIEFTU0VSVChzdGFydE9m
ZnNldCgpID49IGxpbmVTdGFydE9mZnNldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1
Z0hvb2soV2lsbExlYXZlQ2FsbEZyYW1lLCBsYXN0TGluZSgpLCBzdGFydE9mZnNldCgpLCBsaW5l
U3RhcnRPZmZzZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDBlZWY4OWE2NDc0YTA3M2RmYmUx
YmY0NjcwNzEyNWE5OWI0ZjI5YzYuLjRhN2Q1OTI0NDVhM2JhOTgzMzYwYjIzMDhlZmYxYWI4MjQ5
OGNhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmpl
Y3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNs
dWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJdGVyYXRvck9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpTRnVuY3Rpb24uaCIKQEAgLTE3Niw4ICsxNzUsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0
ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodmFsdWUuaW5o
ZXJpdHMoSlNXZWFrU2V0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgid2Vha3NldCIpKTsKIAotICAgIGlmICh2YWx1ZS5pbmhl
cml0cyhKU0FycmF5SXRlcmF0b3I6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMo
SlNNYXBJdGVyYXRvcjo6aW5mbygpKQorICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU01hcEl0ZXJh
dG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU2V0SXRlcmF0b3I6Omlu
Zm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNTdHJpbmdJdGVyYXRvcjo6aW5mbygp
KQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjppbmZv
KCkpKQpAQCAtMzE5LDI4ICszMTcsNiBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpn
ZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKEpTQXJyYXlJdGVyYXRvciogYXJyYXlJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8
SlNBcnJheUl0ZXJhdG9yKj4odmFsdWUpKSB7Ci0gICAgICAgIFN0cmluZyBraW5kOwotICAgICAg
ICBzd2l0Y2ggKGFycmF5SXRlcmF0b3ItPmtpbmQoZXhlYykpIHsKLSAgICAgICAgY2FzZSBBcnJh
eUl0ZXJhdGVLZXk6Ci0gICAgICAgICAgICBraW5kID0gQVNDSUlMaXRlcmFsKCJrZXkiKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFycmF5SXRlcmF0ZVZhbHVlOgotICAgICAg
ICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgidmFsdWUiKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIEFycmF5SXRlcmF0ZUtleVZhbHVlOgotICAgICAgICAgICAga2luZCA9IEFT
Q0lJTGl0ZXJhbCgia2V5K3ZhbHVlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgICAgIEpTQXJyYXkqIGFycmF5ID0gY29u
c3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyLCAyKTsKLSAgICAgICAgaWYgKFVOTElLRUxZ
KHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAg
ICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywgY29uc3RydWN0SW50ZXJu
YWxQcm9wZXJ0eShleGVjLCAiYXJyYXkiLCBhcnJheUl0ZXJhdG9yLT5pdGVyYXRlZFZhbHVlKGV4
ZWMpKSk7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBjb25z
dHJ1Y3RJbnRlcm5hbFByb3BlcnR5KGV4ZWMsICJraW5kIiwganNOb250cml2aWFsU3RyaW5nKGV4
ZWMsIGtpbmQpKSk7Ci0gICAgICAgIHJldHVybiBhcnJheTsKLSAgICB9Ci0KICAgICBpZiAoSlNN
YXBJdGVyYXRvciogbWFwSXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTTWFwSXRlcmF0b3IqPih2
YWx1ZSkpIHsKICAgICAgICAgU3RyaW5nIGtpbmQ7CiAgICAgICAgIHN3aXRjaCAobWFwSXRlcmF0
b3ItPmtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9M
ZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCBk
NjdkZjk0NzgxMzIzMjlkODg2ZDUzYzM3MjhkYTZjZWQ5NDY4ZDY1Li4zYzk1OWU0ZmFjMDVjYWE5
ZjI1YjJhNWM3NzZjMWY1NTQ5NjdhYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDExLTIwMTMsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBDYW1l
cm9uIFp3YXJpY2ggKGN3endhcmljaEB1d2F0ZXJsb28uY2EpCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDEwIFpvbHRhbiBIZXJjemVnICh6aGVyY3plZ0BpbmYudS1zemVnZWQuaHUpCiAgKiAgQ29weXJp
Z2h0IChDKSAyMDEyIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCkBAIC05MzksNyAr
OTM5LDcgQEAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlTX0lO
TElORSBKU1Rva2VuVHlwZSBMZXhlcjxMQ2hhcj46OnAKICAgICAgICAgICAgIGlmIChpc1ByaXZh
dGVOYW1lKQogICAgICAgICAgICAgICAgIGlkZW50ID0gbV92bS0+cHJvcGVydHlOYW1lcy0+bG9v
a1VwUHJpdmF0ZU5hbWUoKmlkZW50KTsKICAgICAgICAgICAgIGVsc2UgaWYgKCppZGVudCA9PSBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkKQotICAgICAgICAgICAgICAgIHRv
a2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5h
bWU7CisgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS51bmRlZmluZWRQcml2YXRlTmFtZSgpOwogICAgICAgICAgICAg
aWYgKCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9QUklWQVRFX05BTUVf
RVJST1JUT0s7CiAgICAgICAgIH0KQEAgLTEwMTYsNyArMTAxNiw3IEBAIHRlbXBsYXRlIDxib29s
IHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8
VUNoYXI+OjpwCiAgICAgICAgICAgICBpZiAoaXNQcml2YXRlTmFtZSkKICAgICAgICAgICAgICAg
ICBpZGVudCA9IG1fdm0tPnByb3BlcnR5TmFtZXMtPmxvb2tVcFByaXZhdGVOYW1lKCppZGVudCk7
CiAgICAgICAgICAgICBlbHNlIGlmICgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5k
ZWZpbmVkS2V5d29yZCkKLSAgICAgICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0t
PnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZFByaXZhdGVOYW1lOworICAgICAgICAgICAgICAgIHRv
a2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudW5k
ZWZpbmVkUHJpdmF0ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghaWRlbnQpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIElOVkFMSURfUFJJVkFURV9OQU1FX0VSUk9SVE9LOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggN2Q4NTFjZWFjYTJlYWFkOTdkYzY0
MWMyNDFmNGI1YTBjNzIzYWI4NC4uYzgxMTY0MDhiMTBiNWYwY2VmMjVkNTViOTAwOGJkZDc5Mjkx
ZDMxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBOb2Rlc19oCiAjZGVmaW5lIE5vZGVzX2gKIAorI2luY2x1ZGUgIkJ1aWx0aW5O
YW1lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1
ZGUgIk9wY29kZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4
IDdkYWIxZmE2NWY3YTBkMWNkZjdlZDI3ZmJlNWE4NTk4ZmE5MmQxYmEuLmI0MjhmYWI1YmNjNjRj
Zjg5MGQyODZjZjUzMWZhNWUyYTQ0MGNkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5jcHAKQEAgLTE4OTcsMjMgKzE4OTcsMjMgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6Rm9ybWFsUGFyYW1ldGVyTGlzdCBQYXJzZXI8
TGUKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbiA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwog
CiAgICAgLy8gQGdlbmVyYXRvcgotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5
TmFtZXMtPmdlbmVyYXRvclByaXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvciA9IGNvbnRl
eHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5n
ZW5lcmF0b3JQcml2YXRlTmFtZSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4
dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclByaXZhdGVOYW1lKCkpOworICAg
IGF1dG8gZ2VuZXJhdG9yID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24s
IG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclByaXZhdGVOYW1l
KCksIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3Rh
dGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0
b3IsIDApOwogCiAgICAgLy8gQGdlbmVyYXRvclN0YXRlCi0gICAgZGVjbGFyZVBhcmFtZXRlcigm
bV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSk7Ci0gICAgYXV0
byBnZW5lcmF0b3JTdGF0ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9u
LCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBwb3NpdGlv
biwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7Cisg
ICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGdlbmVyYXRvclN0YXRlID0g
Y29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSwgcG9zaXRpb24s
IHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAg
IGNvbnRleHQuYXBwZW5kUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRvclN0YXRlLCAwKTsK
IAogICAgIC8vIEBnZW5lcmF0b3JWYWx1ZQotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUpOwotICAgIGF1dG8gZ2VuZXJh
dG9yVmFsdWUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+
cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSwgcG9zaXRpb24sIHBvc2l0
aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAgIGRlY2xh
cmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRv
clZhbHVlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3JWYWx1ZSA9IGNvbnRleHQu
Y3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKCksIHBvc2l0aW9uLCBwb3NpdGlv
biwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKICAgICBjb250ZXh0
LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0b3JWYWx1ZSwgMCk7CiAKICAgICAv
LyBAZ2VuZXJhdG9yUmVzdW1lTW9kZQotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3Bl
cnR5TmFtZXMtPmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSk7Ci0gICAgYXV0byBnZW5l
cmF0b3JSZXN1bWVNb2RlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24s
IG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSwgcG9z
aXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQp
OworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGdlbmVyYXRv
clJlc3VtZU1vZGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92
bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lTW9kZVByaXZh
dGVOYW1lKCksIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0
aW9uU3RhdGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBn
ZW5lcmF0b3JSZXN1bWVNb2RlLCAwKTsKIAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwpAQCAtMjg3
MSwxNSArMjg3MSwxNSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1l
bnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFyYQogICAgICAgICAgICAgVHJl
ZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4
dCk7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4
cHJlc3Npb24iKTsKIAotICAgICAgICAgICAgRGVjbGFyYXRpb25SZXN1bHRNYXNrIGRlY2xhcmF0
aW9uUmVzdWx0ID0gZGVjbGFyZVZhcmlhYmxlKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGFyRGVm
YXVsdFByaXZhdGVOYW1lLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFyYXRpb24pOworICAg
ICAgICAgICAgRGVjbGFyYXRpb25SZXN1bHRNYXNrIGRlY2xhcmF0aW9uUmVzdWx0ID0gZGVjbGFy
ZVZhcmlhYmxlKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFyRGVmYXVs
dFByaXZhdGVOYW1lKCksIERlY2xhcmF0aW9uVHlwZTo6Q29uc3REZWNsYXJhdGlvbik7CiAgICAg
ICAgICAgICBpZiAoZGVjbGFyYXRpb25SZXN1bHQgJiBEZWNsYXJhdGlvblJlc3VsdDo6SW52YWxp
ZER1cGxpY2F0ZURlY2xhcmF0aW9uKQogICAgICAgICAgICAgICAgIGludGVybmFsRmFpbFdpdGhN
ZXNzYWdlKGZhbHNlLCAiT25seSBvbmUgJ2RlZmF1bHQnIGV4cG9ydCBpcyBhbGxvd2VkIik7CiAK
LSAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGFzc2lnbm1lbnQgPSBjb250ZXh0LmNyZWF0ZUFz
c2lnblJlc29sdmUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPnN0YXJEZWZhdWx0UHJp
dmF0ZU5hbWUsIGV4cHJlc3Npb24sIHN0YXJ0LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpLCBB
c3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgICAgICAg
ICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29udGV4dC5jcmVhdGVBc3NpZ25SZXNvbHZl
KGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFyRGVmYXVs
dFByaXZhdGVOYW1lKCksIGV4cHJlc3Npb24sIHN0YXJ0LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlv
bigpLCBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAg
ICAgICAgICByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUV4cHJTdGF0ZW1lbnQobG9jYXRpb24sIGFz
c2lnbm1lbnQsIHN0YXJ0LCB0b2tlbkVuZFBvc2l0aW9uKCkpOwogICAgICAgICAgICAgaWYgKCFp
c0Z1bmN0aW9uT3JDbGFzc0RlY2xhcmF0aW9uKQogICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNl
KGF1dG9TZW1pQ29sb24oKSwgIkV4cGVjdGVkIGEgJzsnIGZvbGxvd2luZyBhIHRhcmdldGVkIGV4
cG9ydCBkZWNsYXJhdGlvbiIpOwotICAgICAgICAgICAgbG9jYWxOYW1lID0gJm1fdm0tPnByb3Bl
cnR5TmFtZXMtPnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWU7CisgICAgICAgICAgICBsb2NhbE5hbWUg
PSAmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RhckRlZmF1bHRQcml2YXRl
TmFtZSgpOwogICAgICAgICB9CiAgICAgICAgIGZhaWxJZkZhbHNlKHJlc3VsdCwgIkNhbm5vdCBw
YXJzZSB0aGUgZGVjbGFyYXRpb24iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCAwMWIxMDA0ZmYx
NWE3MDBhYWFjY2MzZDkwNzAxZTMxMzA3MGIyNjg0Li44ODk1N2UxYzQ3ZjI4ZGUyNTEwMTQ1MmU2
YTUwNmMzNjM1MzQxNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAj
aW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCIKICNpbmNsdWRlICJJdGVyYXRv
ck9wZXJhdGlvbnMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJK
U0NlbGxJbmxpbmVzLmgiCkBAIC0zOCw3ICszNyw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0K
IGNvbnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJh
eSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sICZhcnJheUl0ZXJhdG9yUHJvdG90eXBlVGFibGUs
IENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsKIAogLyogU291
cmNlIGZvciBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKaW5kZXggYjk3
MDdhMTZmMjFlZTQwZGNhNDA4M2FhYWRlZmRlZGE2ODhmMWI3Zi4uYjUxNWMyYmFkZTM5YzcwZWIy
Yjg3NmNiMzJhZGQ0OWMzMzFhMmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaApAQCAtMzAsNiArMzAsMTIgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKK2VudW0gQXJyYXlJdGVyYXRpb25LaW5kIDogdWludDMyX3Qg
eworICAgIEFycmF5SXRlcmF0ZUtleSwKKyAgICBBcnJheUl0ZXJhdGVWYWx1ZSwKKyAgICBBcnJh
eUl0ZXJhdGVLZXlWYWx1ZQorfTsKKwogY2xhc3MgQXJyYXlJdGVyYXRvclByb3RvdHlwZSA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcAppbmRleCAyZjFkMjNkOWYxOWQwOTA4MTdjZWUzODM3YmJiZjUxYzQ1N2Y2ZTY0
Li5kODVmNWRjMWQzYTEzNmNmNzA0YTM1NzBkNWM4ZmRlZjAxY2ZhMGFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0zNCw3ICsz
NCw2IEBACiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIkpJVC5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpT
Q0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
QnVpbGRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuY3BwCmluZGV4IDQ3NWRmMjU4NjgzMTEwMzIwMTBkYWY5NmY2NDVhN2Q3Njc2
YjU0MWMuLjkyNjUyOGUwZmVlOTQyMTQ0YmNiODU0OGY2YTFkYWQ4OGQ4NzRmYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOSwg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA3LCAyMDA5LCAyMDEyLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00Myw3ICs0Myw2IEBAIENvbW1vbklkZW50aWZp
ZXJzOjpDb21tb25JZGVudGlmaWVycyhWTSogdm0pCiAgICAgLCBtX2J1aWx0aW5OYW1lcyhuZXcg
QnVpbHRpbk5hbWVzKHZtLCB0aGlzKSkKICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hf
S0VZV09SRChJTklUSUFMSVpFX0tFWVdPUkQpCiAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19F
QUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QUk9QRVJUWV9OQU1FKQotICAgIEpTQ19DT01N
T05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QUklW
QVRFX05BTUUpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9L
Tk9XTl9TWU1CT0woSU5JVElBTElaRV9TWU1CT0wpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA3YTg1ZWRjMzFjZTIz
MTZlNzlhNDRkY2RiMmQ4NjZjOTdlZGZkYjE3Li44OTE4YWE5YjVhOWMzOGY0MDZjZjEyMDczYTZm
NWZhM2YwZDYxNDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNpZm5kZWYgQ29tbW9uSWRlbnRp
ZmllcnNfaAogI2RlZmluZSBDb21tb25JZGVudGlmaWVyc19oCiAKLSNpbmNsdWRlICJCeXRlY29k
ZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zMjgsMTMwICszMjcsNiBAQAogICAgIG1hY3JvKHRv
U3RyaW5nVGFnKSBcCiAgICAgbWFjcm8odW5zY29wYWJsZXMpCiAKLSNkZWZpbmUgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAotICAgIEpT
Q19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0ZVTkNUSU9OU19FQUNIX05BTUUobWFjcm8pIFwK
LSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1FKG1h
Y3JvKSBcCi0gICAgbWFjcm8oaXRlcmF0ZWRPYmplY3QpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJh
dG9yTmV4dEluZGV4KSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRpb25LaW5kKSBcCi0gICAgbWFj
cm8oYXJyYXlJdGVyYXRvck5leHQpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9ySXNEb25lKSBc
Ci0gICAgbWFjcm8oYXJyYXlJdGVyYXRvcktpbmQpIFwKLSAgICBtYWNybyhjaGFyQ29kZUF0KSBc
Ci0gICAgbWFjcm8oaXRlcmF0ZWRTdHJpbmcpIFwKLSAgICBtYWNybyhzdHJpbmdJdGVyYXRvck5l
eHRJbmRleCkgXAotICAgIG1hY3JvKHByb21pc2UpIFwKLSAgICBtYWNybyhmdWxmaWxsbWVudEhh
bmRsZXIpIFwKLSAgICBtYWNybyhyZWplY3Rpb25IYW5kbGVyKSBcCi0gICAgbWFjcm8oaW5kZXgp
IFwKLSAgICBtYWNybyhkZWZlcnJlZCkgXAotICAgIG1hY3JvKGNvdW50ZG93bkhvbGRlcikgXAot
ICAgIG1hY3JvKE9iamVjdCkgXAotICAgIG1hY3JvKG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMp
IFwKLSAgICBtYWNybyhOdW1iZXIpIFwKLSAgICBtYWNybyhBcnJheSkgXAotICAgIG1hY3JvKFN0
cmluZykgXAotICAgIG1hY3JvKFJlZ0V4cCkgXAotICAgIG1hY3JvKE1hcCkgXAotICAgIG1hY3Jv
KFByb21pc2UpIFwKLSAgICBtYWNybyhSZWZsZWN0KSBcCi0gICAgbWFjcm8oSW50ZXJuYWxQcm9t
aXNlKSBcCi0gICAgbWFjcm8oYWJzKSBcCi0gICAgbWFjcm8oZmxvb3IpIFwKLSAgICBtYWNybyh0
cnVuYykgXAotICAgIG1hY3JvKGlzRmluaXRlKSBcCi0gICAgbWFjcm8oaXNOYU4pIFwKLSAgICBt
YWNybyhjcmVhdGUpIFwKLSAgICBtYWNybyhkZWZpbmVQcm9wZXJ0eSkgXAotICAgIG1hY3JvKGdl
dFByb3RvdHlwZU9mKSBcCi0gICAgbWFjcm8oZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKSBcCi0g
ICAgbWFjcm8oZ2V0T3duUHJvcGVydHlOYW1lcykgXAotICAgIG1hY3JvKG93bktleXMpIFwKLSAg
ICBtYWNybyhFcnJvcikgXAotICAgIG1hY3JvKFJhbmdlRXJyb3IpIFwKLSAgICBtYWNybyhUeXBl
RXJyb3IpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5TGVuZ3RoKSBcCi0gICAgbWFjcm8odHlwZWRB
cnJheVNvcnQpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcikg
XAotICAgIG1hY3JvKEJ1aWx0aW5Mb2cpIFwKLSAgICBtYWNybyhob21lT2JqZWN0KSBcCi0gICAg
bWFjcm8oZ2V0VGVtcGxhdGVPYmplY3QpIFwKLSAgICBtYWNybyhlbnF1ZXVlSm9iKSBcCi0gICAg
bWFjcm8oaGFuZGxlcikgXAotICAgIG1hY3JvKHByb21pc2VTdGF0ZSkgXAotICAgIG1hY3JvKHBy
b21pc2VGdWxmaWxsUmVhY3Rpb25zKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlamVjdFJlYWN0aW9u
cykgXAotICAgIG1hY3JvKHByb21pc2VSZXN1bHQpIFwKLSAgICBtYWNybyhwdXNoKSBcCi0gICAg
bWFjcm8ocmVwZWF0Q2hhcmFjdGVyKSBcCi0gICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCi0gICAg
bWFjcm8oc3RhckRlZmF1bHQpIFwKLSAgICBtYWNybyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24p
IFwKLSAgICBtYWNybyhnZXQpIFwKLSAgICBtYWNybyhzZXQpIFwKLSAgICBtYWNybyhzaGlmdCkg
XAotICAgIG1hY3JvKGFsbG9jYXRlVHlwZWRBcnJheSkgXAotICAgIG1hY3JvKEludDhBcnJheSkg
XAotICAgIG1hY3JvKEludDE2QXJyYXkpIFwKLSAgICBtYWNybyhJbnQzMkFycmF5KSBcCi0gICAg
bWFjcm8oVWludDhBcnJheSkgXAotICAgIG1hY3JvKFVpbnQ4Q2xhbXBlZEFycmF5KSBcCi0gICAg
bWFjcm8oVWludDE2QXJyYXkpIFwKLSAgICBtYWNybyhVaW50MzJBcnJheSkgXAotICAgIG1hY3Jv
KEZsb2F0MzJBcnJheSkgXAotICAgIG1hY3JvKEZsb2F0NjRBcnJheSkgXAotICAgIG1hY3JvKGV4
ZWMpIFwKLSAgICBtYWNybyhnZW5lcmF0b3IpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JOZXh0KSBc
Ci0gICAgbWFjcm8oZ2VuZXJhdG9yU3RhdGUpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JGcmFtZSkg
XAotICAgIG1hY3JvKGdlbmVyYXRvclZhbHVlKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yVGhpcykg
XAotICAgIG1hY3JvKGdlbmVyYXRvclJlc3VtZU1vZGUpIFwKLSAgICBtYWNybyhDb2xsYXRvcikg
XAotICAgIG1hY3JvKERhdGVUaW1lRm9ybWF0KSBcCi0gICAgbWFjcm8oTnVtYmVyRm9ybWF0KSBc
Ci0gICAgbWFjcm8oaW50bFN1YnN0aXR1dGVWYWx1ZSkgXAotICAgIG1hY3JvKHRoaXNUaW1lVmFs
dWUpIFwKLSAgICBtYWNybyh0aGlzTnVtYmVyVmFsdWUpIFwKLSAgICBtYWNybyhuZXdUYXJnZXRM
b2NhbCkgXAotICAgIG1hY3JvKGRlcml2ZWRDb25zdHJ1Y3RvcikgXAotICAgIG1hY3JvKGlzQm91
bmRGdW5jdGlvbikgXAotICAgIG1hY3JvKGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAotICAg
IG1hY3JvKGluc3RhbmNlT2YpIFwKLSAgICBtYWNybyhpc0FycmF5KSBcCi0gICAgbWFjcm8oaXNB
cnJheUNvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNDb25zdHJ1Y3RvcikgXAotICAgIG1hY3Jv
KGlzUmVnRXhwT2JqZWN0KSBcCi0gICAgbWFjcm8ocHJlZGljdEZpbmFsTGVuZ3RoRnJvbUFyZ3Vt
dW50cykgXAotICAgIG1hY3JvKHByaW50KSBcCi0gICAgbWFjcm8oaXNTZXQpIFwKLSAgICBtYWNy
byhpc01hcCkgXAotICAgIG1hY3JvKHJlZ0V4cENyZWF0ZSkgXAotICAgIG1hY3JvKFNldEl0ZXJh
dG9yKSBcCi0gICAgbWFjcm8oc2V0SXRlcmF0b3JOZXh0KSBcCi0gICAgbWFjcm8ocmVwbGFjZVVz
aW5nUmVnRXhwKSBcCi0gICAgbWFjcm8ocmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKSBcCi0gICAg
bWFjcm8oTWFwSXRlcmF0b3IpIFwKLSAgICBtYWNybyhtYXBJdGVyYXRvck5leHQpIFwKLSAgICBt
YWNybyhyZWdFeHBCdWlsdGluRXhlYykgXAotICAgIG1hY3JvKHJlZ0V4cE1hdGNoRmFzdCkgXAot
ICAgIG1hY3JvKHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90
b0dsb2JhbEdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlcikg
XAotICAgIG1hY3JvKHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVn
RXhwUHJvdG9Tb3VyY2VHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1N0aWNreUdldHRl
cikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvVW5pY29kZUdldHRlcikgXAotICAgIG1hY3JvKHJl
Z0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpIFwKLSAgICBtYWNybyhyZWdFeHBSZXBsYWNlRmFz
dCkgXAotICAgIG1hY3JvKHJlZ0V4cFNlYXJjaEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBTcGxp
dEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBUZXN0RmFzdCkgXAotICAgIG1hY3JvKHN0cmluZ0lu
Y2x1ZGVzSW50ZXJuYWwpIFwKLSAgICBtYWNybyhzdHJpbmdTcGxpdEZhc3QpIFwKLSAgICBtYWNy
byhzdHJpbmdTdWJzdHJJbnRlcm5hbCkgXAotCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKICAgICBj
bGFzcyBCdWlsdGluTmFtZXM7CkBAIC00ODQsMTAgKzM1OSw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShKU0NfSURF
TlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMKQogI3VuZGVmIEpTQ19JREVOVElG
SUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9HTE9CQUwKIAotI2RlZmluZSBKU0NfSURFTlRJRklF
Ul9ERUNMQVJFX1BSSVZBVEVfUFJPUEVSVFlfTkFNRV9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRp
ZmllciBuYW1lIyNQcml2YXRlTmFtZTsKLSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5U
SUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVf
UFJPUEVSVFlfTkFNRV9HTE9CQUwpCi0jdW5kZWYgSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklW
QVRFX1BST1BFUlRZX05BTUVfR0xPQkFMCi0KICNkZWZpbmUgSlNDX0lERU5USUZJRVJfREVDTEFS
RV9QUklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTChuYW1lKSBjb25zdCBJZGVudGlmaWVy
IG5hbWUjI1N5bWJvbDsKICAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VB
Q0hfV0VMTF9LTk9XTl9TWU1CT0woSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1dFTExf
S05PV05fU1lNQk9MX0dMT0JBTCkKICN1bmRlZiBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZB
VEVfV0VMTF9LTk9XTl9TWU1CT0xfR0xPQkFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBkYjk2ODZlYjgzN2I1Mjg5Njc1MTZm
Nzk5MmRhMTllNDA0OGYyMjQ5Li5hMDY0NDczMDViYTI1M2JjYzQ4OWI2NjBkNGI1ODA5YzQ3Nzk4
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAKQEAgLTI1LDcgKzI1LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRocy5oIgorCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgor
I2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIkNsb25lZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVQcm9maWxpbmcuaCIKQEAgLTcx
Nyw3ICs3MTksNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2F2ZSkKICAgICBCRUdJTigp
OwogICAgIEpTVmFsdWUgZ2VuZXJhdG9yID0gT1AoMSkuanNWYWx1ZSgpOwogICAgIEdlbmVyYXRv
ckZyYW1lKiBmcmFtZSA9IG51bGxwdHI7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGdlbmVyYXRvci5n
ZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUp
OworICAgIEpTVmFsdWUgdmFsdWUgPSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCkpOwogICAg
IGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZy
YW1lKj4odmFsdWUpOwogICAgIGVsc2UgewpAQCAtNzI1LDcgKzcyNyw3IEBAIFNMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9zYXZlKQogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAgICAgICAgIGZyYW1lID0gR2VuZXJhdG9yRnJhbWU6OmNy
ZWF0ZShleGVjLT52bSgpLCAgZXhlYy0+Y29kZUJsb2NrKCktPm51bUNhbGxlZUxvY2FscygpKTsK
ICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZ2VuZXJhdG9yLCB0cnVlLCBQdXRQcm9wZXJ0
eVNsb3Q6OlB1dEJ5SWQpOwotICAgICAgICBhc09iamVjdChnZW5lcmF0b3IpLT5tZXRob2RUYWJs
ZShleGVjLT52bSgpKS0+cHV0KGFzT2JqZWN0KGdlbmVyYXRvciksIGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lLCBmcmFtZSwgc2xvdCk7CisgICAg
ICAgIGFzT2JqZWN0KGdlbmVyYXRvciktPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5wdXQoYXNP
YmplY3QoZ2VuZXJhdG9yKSwgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1l
cygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSwgZnJhbWUsIHNsb3QpOwogICAgIH0KICAg
ICB1bnNpZ25lZCBsaXZlQ2FsbGVlTG9jYWxzSW5kZXggPSBwY1syXS51LnVuc2lnbmVkVmFsdWU7
CiAgICAgZnJhbWUtPnNhdmUoZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmxpdmVDYWxsZWVMb2Nh
bHNBdFlpZWxkKGxpdmVDYWxsZWVMb2NhbHNJbmRleCkpOwpAQCAtNzM2LDcgKzczOCw3IEBAIFNM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXN1bWUpCiB7CiAgICAgQkVHSU4oKTsKICAgICBKU1Zh
bHVlIGdlbmVyYXRvciA9IE9QKDEpLmpzVmFsdWUoKTsKLSAgICBHZW5lcmF0b3JGcmFtZSogZnJh
bWUgPSBqc0Nhc3Q8R2VuZXJhdG9yRnJhbWUqPihnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKSk7CisgICAgR2VuZXJhdG9y
RnJhbWUqIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJhdG9yLmdldChleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2
YXRlTmFtZSgpKSk7CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0luZGV4ID0gcGNbMl0u
dS51bnNpZ25lZFZhbHVlOwogICAgIGZyYW1lLT5yZXN1bWUoZXhlYywgZXhlYy0+Y29kZUJsb2Nr
KCktPmxpdmVDYWxsZWVMb2NhbHNBdFlpZWxkKGxpdmVDYWxsZWVMb2NhbHNJbmRleCkpOwogICAg
IEVORCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5jcHAKaW5kZXggNDgzODljZDNiMjU0YjhhMzllYzEwNTE4NTFhOWNjNTRlYjc5
Y2NlOS4uM2E4MDUwMGY4ZmRlMWM0Zjc1MGU4NzBiOWMwYTI2ODEwOGJlNzhhOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29u
ZXIgKHRoZXRhbGVjcmFmdGVyQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IGUxZGQzZTQ0ZGY0YTRlMTI5ZDAxYjhk
Yzk5OWU4NjY5ZjkyNjY5MTguLmRlNTA5ZjUzOWMyMTBkMTY4YTc0MTIxZWJlYjljNDQyMWY3NTBm
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJEYXRl
Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkludGxEYXRlVGlt
ZUZvcm1hdC5oIgpAQCAtMTE2LDcgKzExNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4ZWNTdGF0ZSoKICAg
ICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01B
LTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFkdGYpCi0gICAgICAgIGR0ZiA9
IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdl
dChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1YnN0aXR1dGVWYWx1ZVBy
aXZhdGVOYW1lKSk7CisgICAgICAgIGR0ZiA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9y
bWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCkpKTsK
IAogICAgIC8vIDIuIFJldHVybklmQWJydXB0KGR0ZikuCiAgICAgaWYgKCFkdGYpCkBAIC0xNTMs
NyArMTU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEV4ZWMKICAgICAvLyBGSVhNRTogV29ya2Fy
b3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBs
eSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUzNjc5CiAgICAgaWYgKCFkYXRlVGltZUZvcm1hdCkKLSAgICAgICAgZGF0ZVRpbWVGb3Jt
YXQgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUo
KS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSkpOworICAgICAgICBkYXRlVGltZUZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8
SW50bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUt
PnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVBy
aXZhdGVOYW1lKCkpKTsKIAogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiSW50
bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zIGNhbGxlZCBvbiB2YWx1
ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIERhdGVUaW1lRm9ybWF0Iikp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMGE1ZDU2MzE2ZDU2YWI1YTA4NWU2NDg1YjUx
MTc4NjdmOWY5Nzg3YS4uZmUyYzlkYmY2ZmQ5NDJiY2ExYjVhMDU0NzY4NTI1YmFiNzZhMjk0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDE1IEFuZHkgVmFuV2Fnb25lciAodGhldGFsZWNyYWZ0ZXJAZ21haWwuY29tKQorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjksNyBAQAogCiAjaWYgRU5BQkxF
KElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgog
I2luY2x1ZGUgIkludGxOdW1iZXJGb3JtYXQuaCIKICNpbmNsdWRlICJKU0JvdW5kRnVuY3Rpb24u
aCIKQEAgLTEwNSw3ICsxMDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoRXhlY1N0YXRlKiBzdAogICAgIC8vIEZJ
WE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRoIEVDTUEtNDAyIDEu
MCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIW5mKQotICAgICAgICBuZiA9IGpzRHluYW1p
Y0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0
YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSkp
OworICAgICAgICBuZiA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50
aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIW5m
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBB
U0NJSUxpdGVyYWwoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQgY2FsbGVkIG9u
IHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxpemVkIGFzIGEgTnVtYmVyRm9ybWF0
IikpKTsKQEAgLTE0MSw3ICsxNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEV4ZWNTdAogICAgIC8v
IEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRoIEVDTUEtNDAy
IDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIW51bWJlckZvcm1hdCkKLSAgICAgICAg
bnVtYmVyRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUtPnRo
aXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1YnN0
aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIG51bWJlckZvcm1hdCA9IGpzRHluYW1p
Y0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0
YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIW51bWJlckZvcm1hdCkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJJ
bnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zIGNhbGxlZCBvbiB2YWx1
ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIE51bWJlckZvcm1hdCIpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMu
aAppbmRleCAxMjlkOTg1NTM4ZjViODgyYzAwY2Q5ZGNmMDM0NzNiMDdiZWM2NGM4Li5lM2JmZjM4
NzdiMDhmMWQ5NjljNzMxZWY0YjEzMjdkZmU2NDk0YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHl1c3VrZS5zdXp1a2lAc3Ns
YWIuaWNzLmtlaW8uYWMuanA+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkludGxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00
OSw3ICs1MSw3IEBAIEpTVmFsdWUgY29uc3RydWN0SW50bEluc3RhbmNlV2l0aFdvcmthcm91bmRG
b3JMZWdhY3lJbnRsQ29uc3RydWN0b3IoRXhlY1N0YXRlJiBzCiAgICAgICAgICAgICBpZiAoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lLCBpbnN0YW5jZSk7CisgICAgICAgICAg
ICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpLCBpbnN0YW5jZSk7CiAgICAgICAg
ICAgICByZXR1cm4gdGhpc09iamVjdDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMDEwNWI4N2Y4YmI4YjIzYjBlMmIxNmYzOTk1YTAxM2U3NTZlYWQw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgi
Ci0KLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGlu
ZXMuaCIKLSNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1
cmVJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0luZm8gSlNBcnJh
eUl0ZXJhdG9yOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJheUl0ZXJhdG9yKSB9OwotCi12b2lkIEpTQXJyYXlJ
dGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIEFycmF5SXRl
cmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpCi17Ci0gICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLQotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRPYmplY3RQcml2YXRlTmFt
ZSwgaXRlcmF0ZWRPYmplY3QpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
YXJyYXlJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigwKSk7Ci0gICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJhdGlvbktpbmRQcml2YXRlTmFt
ZSwganNOdW1iZXIoa2luZCkpOwotfQotCi1BcnJheUl0ZXJhdGlvbktpbmQgSlNBcnJheUl0ZXJh
dG9yOjpraW5kKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBKU1ZhbHVlIGtpbmRWYWx1
ZSA9IGdldERpcmVjdChleGVjLT52bSgpLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmFycmF5
SXRlcmF0aW9uS2luZFByaXZhdGVOYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QXJyYXlJ
dGVyYXRpb25LaW5kPihraW5kVmFsdWUuYXNJbnQzMigpKTsKLX0KLQotSlNWYWx1ZSBKU0FycmF5
SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJl
dHVybiBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pdGVy
YXRlZE9iamVjdFByaXZhdGVOYW1lKTsKLX0KLQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMTY2YmQyZTUzNTJiYTIxNTkzNjQyNzFlY2FiYmFmODBlMTUzNjNkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBKU0FycmF5SXRlcmF0b3JfaAotI2RlZmluZSBKU0FycmF5SXRlcmF0b3JfaAotCi0jaW5jbHVk
ZSAiSlNPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWVudW0gQXJyYXlJdGVyYXRpb25L
aW5kIDogdWludDMyX3QgewotICAgIEFycmF5SXRlcmF0ZUtleSwKLSAgICBBcnJheUl0ZXJhdGVW
YWx1ZSwKLSAgICBBcnJheUl0ZXJhdGVLZXlWYWx1ZQotfTsKLQotY2xhc3MgSlNBcnJheUl0ZXJh
dG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewotcHVibGljOgotICAgIHR5cGVkZWYgSlNO
b25GaW5hbE9iamVjdCBCYXNlOwotCi0gICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKLQotICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQotICAgIHN0YXRpYyBK
U0FycmF5SXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KQot
ICAgIHsKLSAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICAgICAgSlNBcnJheUl0ZXJh
dG9yKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQXJyYXlJdGVyYXRv
cj4odm0uaGVhcCkpIEpTQXJyYXlJdGVyYXRvcih2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgaW5z
dGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpLCBraW5k
LCBpdGVyYXRlZE9iamVjdCk7Ci0gICAgICAgIHJldHVybiBpbnN0YW5jZTsKLSAgICB9Ci0KLSAg
ICBBcnJheUl0ZXJhdGlvbktpbmQga2luZChFeGVjU3RhdGUqKSBjb25zdDsKLSAgICBKU1ZhbHVl
IGl0ZXJhdGVkVmFsdWUoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgSlNBcnJheUl0ZXJhdG9yKiBj
bG9uZShFeGVjU3RhdGUqKTsKLQotICAgIHVzaW5nIEpTTm9uRmluYWxPYmplY3Q6OmFycmF5U3Rv
cmFnZU9yTnVsbDsKLXByaXZhdGU6Ci0gICAgSlNBcnJheUl0ZXJhdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBBcnJh
eUl0ZXJhdGlvbktpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCk7Ci19OwotCi19Ci0KLSNl
bmRpZiAvLyAhZGVmaW5lZChKU0FycmF5SXRlcmF0b3JfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IDZlYjA4OTIxMzdmZDgzMTQyYmQ2MGU4
MTFjNDUyODBkNTA3MGNlMDEuLmNjYzNiMDVkNzc5ZTA4NjlkNGI5NzAyZmJjYzk5ZGQ4YjhiMzNj
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9ySW5saW5lc19oCiAjZGVmaW5lIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJ
bmxpbmVzX2gKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgi
CiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZl
ci5oIgpAQCAtNTIsNyArNTMsNyBAQCB2b2lkIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3I8Vmlld0NsYXNzPjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsbwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5CWVRFU19QRVJfRUxF
TUVOVCwganNOdW1iZXIoVmlld0NsYXNzOjplbGVtZW50U2l6ZSksIERvbnRFbnVtIHwgUmVhZE9u
bHkgfCBEb250RGVsZXRlKTsKIAogICAgIGlmIChwcml2YXRlQWxsb2NhdG9yKQotICAgICAgICBw
dXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1l
cy0+YWxsb2NhdGVUeXBlZEFycmF5UHJpdmF0ZU5hbWUsIHByaXZhdGVBbGxvY2F0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1
bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmFsbG9jYXRlVHlwZWRBcnJheVByaXZhdGVOYW1lKCksIHByaXZhdGVBbGxvY2F0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgK
aW5kZXggNGYzYjhlYzdiNDkxMjQyNWUwNDIzNjExNGJlMzJlNmY2NDhhYTQ5MC4uMGIwMjNkODJk
OWNhNjQyNmQ5YjdmMDg1ZjRkODJhOGUyNGM3Y2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
RXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlclZpZXdJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpTRnVuY3Rpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAwZDFhYjczOWFiNmRhY2ExOTJiNmExNTIyN2U5YzVk
Mzk4ZDZjZDAxLi42NThiMGJlNDVjOTg5NWQ5MmE4NDU2Y2IwZmJhMTVjMmNkNWZkNzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBA
IC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQcm90b3R5
cGUuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0JvdW5kRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKQEAgLTQyNiw3ICs0MjUsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpp
bml0KFZNJiB2bSkKICAgICAgICAgICAgIGluaXQuc2V0UHJvdG90eXBlKEpTICMjIHR5cGUgIyMg
QXJyYXlQcm90b3R5cGU6OmNyZWF0ZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgSlMgIyMgdHlwZSAj
IyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBp
bml0Lmdsb2JhbC0+bV90eXBlZEFycmF5UHJvdG8uZ2V0KGluaXQuZ2xvYmFsKSkpKTsgXAogICAg
ICAgICAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoSlMgIyMgdHlwZSAjIyBBcnJheTo6Y3JlYXRlU3Ry
dWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0LnByb3RvdHlwZSkpOyBcCiAgICAgICAg
ICAgICBpbml0LnNldENvbnN0cnVjdG9yKEpTICMjIHR5cGUgIyMgQXJyYXlDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAjIyB0eXBlICMjIEFycmF5Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgaW5pdC5nbG9iYWwtPm1f
dHlwZWRBcnJheVN1cGVyQ29uc3RydWN0b3IuZ2V0KGluaXQuZ2xvYmFsKSksIGluaXQucHJvdG90
eXBlLCBBU0NJSUxpdGVyYWwoI3R5cGUgIkFycmF5IiksIHR5cGVkQXJyYXlDb25zdHJ1Y3RvckFs
bG9jYXRlICMjIHR5cGUgIyMgQXJyYXlDb2RlR2VuZXJhdG9yKGluaXQudm0pKSk7IFwKLSAgICAg
ICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihpbml0LnZtLCBp
bml0LnZtLnByb3BlcnR5TmFtZXMtPnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSwgaW5pdC5jb25z
dHJ1Y3RvciwgRG9udEVudW0pOyBcCisgICAgICAgICAgICBpbml0Lmdsb2JhbC0+cHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oaW5pdC52bSwgaW5pdC52bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS50eXBlICMjIEFycmF5UHJpdmF0ZU5hbWUoKSwgaW5pdC5jb25zdHJ1Y3RvciwgRG9u
dEVudW0pOyBcCiAgICAgICAgIH0pOwogICAgIEZPUl9FQUNIX1RZUEVEX0FSUkFZX1RZUEVfRVhD
TFVESU5HX0RBVEFfVklFVyhJTklUX1RZUEVEX0FSUkFZX0xBVEVSKQogI3VuZGVmIElOSVRfVFlQ
RURfQVJSQVlfTEFURVIKQEAgLTYxOCw4ICs2MTcsOCBAQCBtXyAjIyBsb3dlck5hbWUgIyMgUHJv
dG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5S
YW5nZUVycm9yLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwogICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJy
b3IsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtKTsKIAotICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRl
TmFtZSwgb2JqZWN0Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBvYmplY3RDb25z
dHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5B
cnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKIAogI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBF
KGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1l
KSBcCiBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpz
TmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKQEAgLTY1Miw4ICs2
NTEsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVG
dW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBtYXRo
UHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsKIAogICAgIEpTRnVuY3Rpb24qIHByaXZh
dGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAs
IFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1
bmNUb0xlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFs
T2JqZWN0VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKICAgICBK
U0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3Ro
KTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0
cnVjdG9yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRB
cnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwogICAgIEpTRnVuY3Rp
b24qIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7CkBAIC02NjQs
MTMgKzY2MSw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNUaGlzTnVtYmVyVmFsdWUgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAs
IFN0cmluZygpLCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0lzQXJyYXlDb25zdHJ1Y3RvciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIGFycmF5Q29uc3RydWN0b3JQcml2YXRlRnVuY0lzQXJyYXlDb25zdHJ1Y3Rv
cik7CiAKLSAgICBKU09iamVjdCogYXJyYXlJdGVyYXRvclByb3RvdHlwZSA9IEFycmF5SXRlcmF0
b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0ZXJhdG9yUHJvdG90eXBlLmdldCgpKSk7Ci0gICAg
SlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNDcmVhdGVBcnJheUl0ZXJhdG9yID0gSlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBhcnJheVByb3RvdHlwZUNyZWF0ZUFycmF5SXRlcmF0
b3JDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBwcml2YXRlRnVuY0Ny
ZWF0ZUFycmF5SXRlcmF0b3ItPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVu
Y0FycmF5SXRlcmF0b3JWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rp
b24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yVmFsdWVOZXh0Q29kZUdl
bmVyYXRvcih2bSksIHRoaXMpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJdGVy
YXRvcktleU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5
SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5TmV4dENvZGVHZW5lcmF0b3Iodm0pLCB0
aGlzKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JLZXlWYWx1ZU5l
eHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQ
cm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMp
OwotCiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJPYmplY3QgPSBnZXRHZXR0
ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5wcm9wZXJ0eU5hbWVzLT5m
bGFncyk7CiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0ID0gZ2V0
R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwgdm0ucHJvcGVydHlOYW1l
cy0+Z2xvYmFsKTsKICAgICBtX3JlZ0V4cFByb3RvR2xvYmFsR2V0dGVyLnNldCh2bSwgdGhpcywg
cmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QpOwpAQCAtNjg1LDY5ICs2NzUsNjAgQEAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU09iamVjdCogcmVnRXhwU3ltYm9sUmVwbGFjZSA9
IGFzT2JqZWN0KG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnJlcGxhY2VTeW1ib2wpLmFzQ2VsbCgpKTsKICAgICBtX3JlZ0V4cFByb3RvU3ltYm9sUmVw
bGFjZS5zZXQodm0sIHRoaXMsIHJlZ0V4cFN5bWJvbFJlcGxhY2UpOwogCisjZGVmaW5lIENSRUFU
RV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTihuYW1lLCBjb2RlKSBKU0Z1bmN0aW9uKiBuYW1lICMj
IFByaXZhdGVGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwg
Y29kZSAjIyBDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CisgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJ
Tl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5D
VElPTikKKyN1bmRlZiBDUkVBVEVfUFJJVkFURV9HTE9CQUxfRlVOQ1RJT04KKworICAgIEpTT2Jq
ZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3Jl
YXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBjcmVhdGVBcnJheUl0ZXJh
dG9yUHJpdmF0ZUZ1bmN0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZSk7CisKKwogICAgIEdsb2JhbFByb3BlcnR5SW5m
byBzdGF0aWNHbG9iYWxzW10gPSB7CisjZGVmaW5lIElOSVRfUFJJVkFURV9HTE9CQUwobmFtZSwg
Y29kZSkgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
Lm5hbWUgIyMgUHJpdmF0ZU5hbWUoKSwgbmFtZSAjIyBQcml2YXRlRnVuY3Rpb24sIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNU
SU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoSU5JVF9QUklWQVRFX0dMT0JBTCkKKyN1bmRlZiBJTklU
X1BSSVZBVEVfR0xPQkFMCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkluZmluaXR5LCBqc051
bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1VuZGVmaW5lZCgpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPm93bkVudW1lcmFibGVQcm9wZXJ0eUtleXNQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb3duRW51bWVyYWJsZVBy
b3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmdldFRlbXBsYXRlT2JqZWN0UHJp
dmF0ZU5hbWUsIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmVucXVldWVKb2JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAwLCBTdHJpbmcoKSwgZW5xdWV1ZUpvYiksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkVycm9y
UHJpdmF0ZU5hbWUsIG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+UmFuZ2VFcnJvclByaXZhdGVOYW1lLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQo
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVy
cm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlM
ZW5ndGhQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvclByaXZhdGVOYW1l
LCBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVk
QXJyYXlTb3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rpb25Qcml2YXRl
TmFtZSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0hhc0luc3Rh
bmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFuY2VPZlByaXZh
dGVOYW1lLCBwcml2YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1
aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5SZWdFeHBQcml2YXRlTmFtZSwgbV9yZWdFeHBDb25zdHJ1Y3Rvci5nZXQoKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+U3RyaW5nUHJpdmF0ZU5hbWUsIHN0cmluZ0NvbnN0cnVjdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5hYnNQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNBYnMs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmZsb29yUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jRmxv
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnRydW5jUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5j
VHJ1bmMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzRmluaXRlUHJpdmF0ZU5hbWUsIHByaXZh
dGVGdW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTmFOUHJpdmF0ZU5hbWUs
IHByaXZhdGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlByb21pc2VQcml2YXRl
TmFtZSwgcHJvbWlzZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5SZWZsZWN0
UHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkludGVy
bmFsUHJvbWlzZVByaXZhdGVOYW1lLCBpbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5yZXBlYXRDaGFyYWN0ZXJQcml2YXRlTmFtZSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hh
cmFjdGVyKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0U2xv
d1BhdGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IHN0cmluZ1Byb3RvdHlwZVJlcGVhdFNsb3dQYXRoQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBlYXRDaGFyYWN0ZXJzU2xv
d1BhdGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IHN0cmluZ1Byb3RvdHlwZVJlcGVhdENoYXJhY3RlcnNTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1NldFByaXZhdGVOYW1lLCBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzU2V0KSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+U2V0SXRlcmF0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJdGVyYXRvciks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnNldEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lLCBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJh
dG9yTmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTWFwUHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jSXNNYXApLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0
b3ItPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheSksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmlzQXJyYXlDb25zdHJ1Y3RvclByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lz
QXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TWFwSXRlcmF0b3JQcml2
YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0
ZUZ1bmNNYXBJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPm1hcEl0ZXJhdG9yTmV4
dFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBw
cml2YXRlRnVuY01hcEl0ZXJhdG9yTmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmFycmF5SXRlcmF0b3JWYWx1ZU5leHRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y0FycmF5SXRlcmF0b3JWYWx1ZU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmFycmF5SXRlcmF0b3JLZXlOZXh0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcnJh
eUl0ZXJhdG9yS2V5TmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
YXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQXJyYXlJ
dGVyYXRvcktleVZhbHVlTmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuY3JlYXRlQXJyYXlJdGVyYXRvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQ3JlYXRlQXJy
YXlJdGVyYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0xl
bmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVG9MZW5ndGgsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvSW50ZWdlclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5j
VG9JbnRlZ2VyLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0RpY3Rp
b25hcnlQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IGdsb2JhbE9iamVjdElzRGljdGlvbmFyeUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNQcm9taXNlUHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0lz
UHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZVJlYWN0aW9uUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlv
bjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc05ld1Byb21pc2VS
ZWFjdGlvbkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZUNhcGFiaWxpdHlQcml2YXRlTmFtZSgpLCBtX25ld1By
b21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnRyaWdnZXJQcm9taXNlUmVhY3Rpb25zUHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1RyaWdnZXJQ
cm9taXNlUmVhY3Rpb25zQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcm9taXNlUHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1JlamVjdFBy
b21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmZ1bGZpbGxQcm9taXNlUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0Z1bGZpbGxQcm9taXNlQ29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5jcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zQ3JlYXRlUmVzb2x2aW5n
RnVuY3Rpb25zQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVhY3Rpb25Kb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zUHJvbWlzZVJl
YWN0aW9uSm9iQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iUHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1By
b21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCksIG9iamVj
dENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25F
bnVtZXJhYmxlUHJvcGVydHlLZXlzUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAwLCBTdHJpbmcoKSwgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5h
bWUoKSwgcHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZW5xdWV1ZUpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5FcnJvclByaXZhdGVOYW1lKCksIG1fZXJyb3JDb25zdHJ1
Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmFuZ2VF
cnJvclByaXZhdGVOYW1lKCksIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5UeXBlRXJyb3JQcml2YXRlTmFtZSgpLCBt
X3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBl
ZEFycmF5TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBl
ZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlw
ZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnR5cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBl
ZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNCb3Vu
ZEZ1bmN0aW9uUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc0luc3RhbmNlQm91bmRGdW5jdGlv
blByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnN0YW5jZU9mUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5CdWlsdGluTG9nUHJpdmF0ZU5hbWUoKSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuQXJyYXlQcml2YXRlTmFtZSgpLCBhcnJheUNvbnN0
cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5OdW1iZXJQcml2
YXRlTmFtZSgpLCBudW1iZXJDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuUmVnRXhwUHJpdmF0ZU5hbWUoKSwgbV9yZWdFeHBDb25zdHJ1Y3Rvci5nZXQo
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuU3RyaW5nUHJpdmF0ZU5h
bWUoKSwgc3RyaW5nQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmFic1ByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQWJzLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mbG9vclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jRmxv
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRydW5jUHJpdmF0ZU5h
bWUoKSwgcHJpdmF0ZUZ1bmNUcnVuYywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuaXNGaW5pdGVQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzRmluaXRlLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc05hTlByaXZhdGVOYW1lKCksIHByaXZh
dGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlByb21p
c2VQcml2YXRlTmFtZSgpLCBwcm9taXNlQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLlJlZmxlY3RQcml2YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0LCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5JbnRlcm5hbFByb21pc2VQcml2
YXRlTmFtZSgpLCBpbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBlYXRDaGFyYWN0ZXJQcml2YXRlTmFtZSgpLCBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBzdHJpbmdQcm90b0Z1bmNSZXBl
YXRDaGFyYWN0ZXIpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1Nl
dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCks
IHByaXZhdGVGdW5jSXNTZXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5TZXRJdGVyYXRvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MSwgU3RyaW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5zZXRJdGVyYXRvck5leHRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJhdG9y
TmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzTWFwUHJpdmF0
ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0
ZUZ1bmNJc01hcCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQXJy
YXlQcml2YXRlTmFtZSgpLCBhcnJheUNvbnN0cnVjdG9yLT5nZXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmlzQXJyYXkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5pc0FycmF5Q29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzQXJyYXlDb25z
dHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTWFwSXRlcmF0
b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygp
LCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkubWFwSXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisKICAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkluc3BlY3Rvckluc3RydW1lbnRh
dGlvblByaXZhdGVOYW1lKCksIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRl
KHZtLCB0aGlzLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+TWFwUHJpdmF0ZU5hbWUsIG1hcENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdlbmVyYXRvclByb3RvdHlwZUdlbmVyYXRv
clJlc3VtZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuTWFwUHJpdmF0ZU5hbWUoKSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoaXNUaW1lVmFsdWVQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY1RoaXNUaW1lVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnRoaXNOdW1iZXJWYWx1ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVGhpc051
bWJlclZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjaWYgRU5BQkxF
KElOVEwpCkBAIC03NTYsMzYgKzczNywzMCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
TnVtYmVyRm9ybWF0UHJpdmF0ZU5hbWUoKSwgaW50bC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5OdW1iZXJGb3JtYXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CiAjZW5kaWYgLy8gRU5BQkxFKElOVEwpCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3RvciwgTm9JbnRyaW5z
aWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVjdFByaXZhdGVOYW1lLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9i
amVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5zcGVjaWVzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFNwZWNpZXNDb25zdHJ1Y3Rv
ckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuaXNDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNSZWdFeHBPYmplY3RQcml2
YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1Nw
ZWNJc1JlZ0V4cE9iamVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJv
dG9GbGFnc0dldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9H
bG9iYWxHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlclByaXZhdGVO
YW1lLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPnJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3Rv
TXVsdGlsaW5lR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90
b1NvdXJjZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1NvdXJjZUdldHRlck9iamVjdCwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJQcml2YXRlTmFt
ZSwgcmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1VuaWNvZGVH
ZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4
cFByb3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0ZsYWdzR2V0dGVyT2Jq
ZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0ds
b2JhbEdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0lnbm9yZUNh
c2VHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3Qs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvTXVsdGls
aW5lR2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXJPYmplY3Qs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU291cmNl
R2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVy
UHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZh
dGVOYW1lKCksIHJlZ0V4cFByb3RvVW5pY29kZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFJlZ0V4cC5wcm90b3R5cGUgaGVscGVy
cy4KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cEJ1
aWx0aW5FeGVjUHJpdmF0ZU5hbWUsIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAyLCBTdHJpbmcoKSwgZXNTcGVjUmVnRXhwQ3JlYXRlLCBOb0ludHJpbnNpYyksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclJlZ0V4cE1hdGNoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKHZtLCByZWdFeHBQcm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdF
eHBNYXRjaENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRQcml2
YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4cFBy
b3RvdHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0Q29kZUdlbmVyYXRv
cih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hZHZh
bmNlU3RyaW5nSW5kZXhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIHJlZ0V4cFByb3RvdHlwZUFkdmFuY2VTdHJpbmdJbmRleENvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhw
RXhlY1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwg
cmVnRXhwUHJvdG90eXBlUmVnRXhwRXhlY0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSwgSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU2Vh
cmNoRmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNwbGl0RmFzdFByaXZhdGVO
YW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90
b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b3R5cGVT
eW1ib2xSZXBsYWNlUHJpdmF0ZU5hbWUsIG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5yZWdFeHBUZXN0RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCwgUmVnRXhwVGVzdEZhc3RJbnRy
aW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBCdWls
dGluRXhlY1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5v
SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhw
TWF0Y2hGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBT
dHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZh
c3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBTcGxpdEZh
c3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygp
LCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5yZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0ZU5hbWUoKSwgbV9y
ZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5
bWJvbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFRlc3RG
YXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmco
KSwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50cmluc2ljKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFN0cmluZy5wcm90
b3R5cGUgaGVscGVycy4KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxh
Y2VQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0
cmluZ1Byb3RvdHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1
ZGVzSW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBT
dHJpbmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5zdHJpbmdTcGxpdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+c3RyaW5nU3Vic3RySW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVy
bmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSW5jbHVk
ZXNJbnRlcm5hbFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwg
U3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUoKSwgSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3Bs
aXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3Vi
c3RySW50ZXJuYWxQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIs
IFN0cmluZygpLCBidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCiAgICAgfTsKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0ds
b2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCmluZGV4
IGEzMjQwNTUwYzAzYTcxMTkwYTkyMDBkOGI2ZmY1NzQ0ZmU5ZGNjNTIuLmFiYTc1YWEyNTgzYzRj
M2U1ZDMwZjkzYmYyYWE2MDRhNjc5NTg2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRl
eCBmZWZkZWNkZjAzYjY0ZTZkZjNiNDEwMGQ2MWI2YTQ0N2NmYWYyZDhiLi44YTI3ZDkxZTc1NTY5
OThhNzI3OWVmODNmZTY2MDhkNDM0YmMwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAt
NDYsNyArNDYsNyBAQCBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKUwogCiAgICAgSlNWYWx1ZSBkZWZl
cnJlZCA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KGV4ZWMsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5pbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUgcHJvbWlz
ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJpdmF0ZU5h
bWUpOworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgQVNTRVJU
KHByb21pc2UuaW5oZXJpdHMoSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFs
dWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZl
cnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJp
dmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb21pc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNw
cAppbmRleCA1NmUyZjVhZWY5MjAxMzkwMmZiMmY3MTZjNzJkYjQ1NmZiYjYwMWM2Li4wMjAyZTE3
OWNmNDczYzg3NzUzNDE2ZGFlZWU0YTc1ODJkZGFkZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCkBAIC01OCwxMCArNTksMTAgQEAgSlNQcm9taXNlOjpK
U1Byb21pc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgSlNQcm9taXNlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwot
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5h
bWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBlbmRpbmcpKSk7Ci0g
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbFJlYWN0aW9u
c1ByaXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb21pc2VSZWplY3RSZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQo
KSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJp
dmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFN0YXR1czo6UGVuZGluZykpKTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VGdWxmaWxsUmVhY3Rp
b25zUHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVqZWN0UmVhY3Rpb25zUHJpdmF0
ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSwganNVbmRlZmlu
ZWQoKSk7CiB9CiAKIHZvaWQgSlNQcm9taXNlOjppbml0aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGVjdXRvcikKQEAgLTc4LDE0
ICs3OSwxNCBAQCB2b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogCiBhdXRvIEpTUHJvbWlzZTo6c3Rh
dHVzKFZNJiB2bSkgY29uc3QgLT4gU3RhdHVzCiB7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGdldERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUpOworICAg
IEpTVmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnByb21pc2VTdGF0ZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VSVCh2YWx1ZS5pc1VJ
bnQzMigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RhdHVzPih2YWx1ZS5hc1VJbnQzMigp
KTsKIH0KIAogSlNWYWx1ZSBKU1Byb21pc2U6OnJlc3VsdChWTSYgdm0pIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlc3VsdFByaXZh
dGVOYW1lKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNl
RGVmZXJyZWQuY3BwCmluZGV4IDBhYWQzNzA3MTYxZDQ0YTVkNWFiMDgyY2Y1ZjMyMjc1YmIwOTcy
OTIuLjY1ZDcyMzg3NmEwN2NiNDE2MWNiNTljZTYyNGRiYWYyYWQwYjYzN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5
LDcgKzU5LDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFsdWUgZGVmZXJy
ZWQgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+cHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogCi0gICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJy
ZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7CisgICAg
SlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQocHJvbWlzZS5p
bmhlcml0cyhKU1Byb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVy
cmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJp
dmF0ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCmlu
ZGV4IGM2ZmVkZTdhZGFmMTAwNWUxNmMxYjc0NGMyMjdlMDZlNjNkZmNiYzQuLjdiZmQ4YTlhNDdi
MTVlNjg3Y2U5YzZhNzM3YjRmYmJjYWU5MGY2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+LgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKIAorI2luY2x1
ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKQEAg
LTM4LDIzICs0MCwyMyBAQCB2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lLCBp
dGVyYXRlZFN0cmluZyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJp
bmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigwKSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1By
aXZhdGVOYW1lKCksIGl0ZXJhdGVkU3RyaW5nKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5h
bWUoKSwganNOdW1iZXIoMCkpOwogfQogCiBKU1ZhbHVlIEpTU3RyaW5nSXRlcmF0b3I6Oml0ZXJh
dGVkVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBnZXREaXJlY3Qo
ZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZh
dGVOYW1lKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsK
IH0KIAogSlNTdHJpbmdJdGVyYXRvciogSlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSlNWYWx1ZSBpdGVyYXRl
ZFN0cmluZyA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQ
cml2YXRlTmFtZSk7Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUpOworICAgIEpT
VmFsdWUgaXRlcmF0ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUoKSk7CisgICAgSlNWYWx1ZSBu
ZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSk7CiAKICAgICBhdXRvIGNsb25l
ID0gSlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxP
YmplY3QoKS0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNTdHJpbmcoaXRlcmF0ZWRTdHJp
bmcpKTsKLSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJ
dGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBuZXh0SW5kZXgpOworICAgIGNsb25lLT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9y
TmV4dEluZGV4UHJpdmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKICAgICByZXR1cm4gY2xvbmU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmlu
ZGV4IDRiNjMwYzJkN2M5Y2QzNGFmYzZkZGE2ZmQ2ZjQyYzI0M2RjN2FhZGEuLmE3ZjUxMGJhYjQ1
ZmExMmI3YTY3ZWMzZmZkZGY1MDM0Y2VmNTUxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcApAQCAtNzgsOCArNzgsOCBAQCB2b2lkIE1hcFBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSwgbWFwUHJvdG9GdW5j
VmFsdWVzLCBEb250RW51bSwgMCk7CiAKICAgICAvLyBQcml2YXRlIGdldCAvIHNldCBvcGVyYXRp
b25zLgotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmdldFByaXZhdGVOYW1lLCBtYXBQcm90b0Z1bmNHZXQsIERvbnRFbnVtLCAxKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5zZXRQcml2YXRlTmFtZSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51bSwgMik7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuZ2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51
bSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5j
U2V0LCBEb250RW51bSwgMik7CiAKICAgICBKU0Z1bmN0aW9uKiBlbnRyaWVzID0gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDAsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkuc3RyaW5nKCksIG1hcFByb3RvRnVuY0VudHJpZXMp
OwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBlbnRyaWVzLCBEb250RW51bSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMDhkYTFkYmZhZDIyM2Y1OTVkNTNkOTIxNWYxOTZjMTNhNTJmMTkzZS4uM2MyOTNm
YmI2NjRmNTY2MDQ4ZmI4OGNjMzVkZjY3MmViOWEwM2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjEsNiArMjEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgi
CiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIK
QEAgLTk5LDEwICsxMDAsMTAgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmoKICAgICAvLyBuby4g
b2YgYXJndW1lbnRzIGZvciBjb25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8
IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5jcmVhdGVQcml2YXRlTmFtZSwgb2JqZWN0
Q29uc3RydWN0b3JDcmVhdGUsIERvbnRFbnVtLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWZpbmVQcm9wZXJ0eVByaXZh
dGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCBEb250RW51bSwgMyk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+Z2V0UHJvdG90eXBlT2ZQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5
cGVPZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSwg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuY3JlYXRlUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVh
dGUsIERvbnRFbnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZh
dGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsK
KyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5nZXRQcm90b3R5cGVPZlByaXZhdGVOYW1lKCksIG9iamVjdENv
bnN0cnVjdG9yR2V0UHJvdG90eXBlT2YsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRP
d25Qcm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CiB9CiAKIEpTRnVuY3Rpb24qIE9iamVjdENv
bnN0cnVjdG9yOjphZGREZWZpbmVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWZsZWN0T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
ZmxlY3RPYmplY3QuY3BwCmluZGV4IDBhYzMyMGYyZTg4Y2FkZGM5OTVkZGIyZTcwZTJhNjYyYmRi
YWRjMTYuLjE3NTEyMmY1YTAxZjMzYzVmYTI2NmE5NjhkNTNjZjg1NDUyZmVmOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWZsZWN0T2JqZWN0LmgiCiAK
KyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmgiCkBAIC04NSw4ICs4Niw4IEBAIHZvaWQgUmVmbGVjdE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5vd25LZXlzUHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmplY3RPd25LZXlzLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yUHJp
dmF0ZU5hbWUsIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25LZXlz
UHJpdmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdE93bktleXMsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JQcml2YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMik7CiB9CiAKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCmluZGV4IDQ2OTkxODI0NjhlOTNjOWIzMDVjM2JhNGM0MWQyNDQyNjk0YjBiODAu
LmE3YmE3YzkzMWMzMDhjZTM4NDBiN2RiY2UwY2ZhNTM1NTAyZTQwZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMjMsNiAr
MjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5o
IgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5l
cy5oIgogI2luY2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGlu
ZXMuaCIKQEAgLTEzNyw4ICsxMzgsOCBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cgogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb25jYXQiLCBzdHJpbmdQcm90
b0Z1bmNDb25jYXQsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YsIERvbnRFbnVt
LCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibGFzdElu
ZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgRG9udEVudW0sIDEpOwotICAgIEpT
Q19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jUmVw
bGFjZVVzaW5nUmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4
cEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUsIHN0
cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCwgRG9udEVudW0sIDIpOworICAg
IEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSgp
LCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAsIERvbnRFbnVtLCAyLCBTdHJpbmdQ
cm90b3R5cGVSZXBsYWNlUmVnRXhwSW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBs
YWNlVXNpbmdTdHJpbmdTZWFyY2hQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNl
VXNpbmdTdHJpbmdTZWFyY2gsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigic2xpY2UiLCBzdHJpbmdQcm90b0Z1bmNTbGljZSwgRG9udEVu
dW0sIDIpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJz
dHIiLCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyaW5nIiwgc3RyaW5nUHJvdG9GdW5j
U3Vic3RyaW5nLCBEb250RW51bSwgMik7CkBAIC0xNzUsNyArMTc2LDcgQEAgdm9pZCBTdHJpbmdQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHIKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
bm9ybWFsaXplIiwgc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCBEb250RW51bSwgMSk7CiAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
aXRlcmF0b3JTeW1ib2wsIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CiAK
LSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+Y2hhckNvZGVBdFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNDaGFy
Q29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CisgICAgSlNDX05BVElW
RV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmND
aGFyQ29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CiAKICAgICAvLyBU
aGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgU3RyaW5nQ29uc3RydWN0
b3IgaGFzIGJlZW4gYnVpbHQKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281654</attachid>
            <date>2016-06-20 10:52:23 -0700</date>
            <delta_ts>2016-06-20 11:48:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158893-20160620105216.patch</filename>
            <type>text/plain</type>
            <size>121035</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjFlYTQzZDNhN2Y4ZjllODA0MWJmNWMwYzliMGRkMmIzYzNhNTYyLi5hYWE3ZTZhODdmYjgxMzM1
NDlmNzNmMDlkYjdkOTVjYTVhNjkxYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0ZSBnbG9i
YWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuIEZpcnN0
IGl0IG1vdmVzIGFsbCB0aGUgYnVpbHRpbiBuYW1lcworICAgICAgICBvdXQgb2YgQ29tbW9uSWRl
bnRpZmllcnMgYW5kIGludG8gQnVpbHRpbk5hbWVzLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAg
YWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBCdWlsdGlucyBkb2VzIG5vdCByZXF1aXJlIHJl
YnVpbGRpbmcKKyAgICAgICAgYWxsIG9mIEphdmFTY3JpcHRDb3JlLiBUaGlzIHBhdGNoIGFsc28g
YWRkcyBhIG5ldyBkZWNvcmF0b3IgdG8gb3VyCisgICAgICAgIGJ1aWx0aW5zIEBwcml2YXRlR2xv
YmFsIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCB0aGUgZnVuY3Rpb24KKyAgICAgICAgb24g
dGhlIGdsYWJvbCBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHRoZSBz
YW1lIGFzCisgICAgICAgIHRoZSBwcml2YXRlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIEFkZGl0aW9uYWxseSwgdGhpcyBwYXRjaCByZW1vdmVzIHRoZSBKU0FycmF5SXRlcmF0b3Iu
aC8uY3BwIGZpbGVzCisgICAgICAgIGFzIHRoZXkgbm8gbG9uZ2VyIGFwcGVhciB0byBiZSB1c2Vk
IGluIGFueSByZWFsIHdheS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6CisgICAgICAgIChCdWlsdGluc0NvbWJpbmVkSGVhZGVy
R2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zv
cl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAoZ2VuZXJhdGVfc2VjdGlvbl9mb3JfZ2xvYmFs
X3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weToKKyAgICAgICAgKiBTY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5OgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLl9faW5p
dF9fKToKKyAgICAgICAgKEJ1aWx0aW5GdW5jdGlvbi5mcm9tU3RyaW5nKToKKyAgICAgICAgKiBi
dWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0Fy
cmF5UHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAg
ICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlu
cy9HbG9iYWxPYmplY3QuanM6CisgICAgICAgICogYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMu
anM6CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1
aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qczoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUlu
dHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFy
cm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjpleHBlY3RlZEZ1bmN0aW9uRm9ySWRlbnRpZmllcik6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWROZXdUYXJnZXRGcm9tQXJyb3dGdW5jdGlvbkxl
eGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50
KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXROZXdUYXJnZXRUb0Fy
cm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdFB1dERlcml2ZWRDb25zdHJ1Y3RvclRvQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2VuZXJhdG9yU3RhdGVDaGFu
Z2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAo
SlNDOjplbWl0SG9tZU9iamVjdEZvckNhbGxlZSk6CisgICAgICAgIChKU0M6OmVtaXRQdXRIb21l
T2JqZWN0KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKToKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8TENoYXI+
OjpwYXJzZUlkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpMZXhlcjxVQ2hhcj46OnBhcnNlSWRl
bnRpZmllcik6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1Bh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpjcmVhdGVHZW5lcmF0
b3JQYXJhbWV0ZXJzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhw
b3J0RGVjbGFyYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHA6CisgICAgICAgICogcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5jcHA6CisgICAgICAgIChKU0M6OkNvbW1vbklkZW50aWZpZXJzOjpDb21t
b25JZGVudGlmaWVycyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAg
KEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1h
dCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZl
ZE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQp
OgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0
aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpjb25zdHJ1Y3RJbnRsSW5zdGFuY2VXaXRoV29ya2Fyb3VuZEZvckxlZ2FjeUludGxDb25z
dHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwOiBSZW1vdmVk
LgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpraW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBSZW1vdmVkLgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJh
eUl0ZXJhdG9yOjpKU0FycmF5SXRlcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5jcHA6CisgICAgICAgIChKU0M6
OkpTUHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU1Byb21pc2U6OnJl
c3VsdCk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmdJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1
ZSk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmNsb25lKToKKyAgICAgICAgKiBy
dW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok1hcFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZmxlY3RPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorCiAy
MDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
IHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1vcmUgdHlwZXMgb2YgSUNzIGlubGluZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4NDNlOGNlZThjMDM3NjI5NWE5MGM0
MjA2MjE0NmZiYjk1Li5mYmY1ZmY3ODcyODYzOTU1MmM1ZGE1MTU3ZWYzNDQ2NjVhZGNlODIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc2Niw4ICsxNzY2LDYgQEAKIAkJQTdC
NjAxODIxNjM5RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzlFNzgxRjE1RUVDQkE4MDA0N0M4
NTUgLyogVW5saW5rZWRDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVy
YXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JEQUVDMjE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHAgKi87IH07CiAJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JEQUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICov
OyB9OwotCQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdG
NEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovOyB9OwotCQlBN0JEQUVDQjE3
RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNB
cnJheUl0ZXJhdG9yLmggKi87IH07CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdG
aWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5o
ICovOyB9OwogCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRB
QjE2N0MwOENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcw
MTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAg
Ki87IH07CkBAIC0zOTg2LDggKzM5ODQsNiBAQAogCQlBN0I0QUNBRTE0ODRDOUNFMDBCMzhBMzYg
LyogSlNFeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNF
eHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCREFFQzIxN0Y0
RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90
b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlv
bklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJQTdCREFFQzMxN0Y0RUExNDAwRjYx
NDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBKU0Fy
cmF5SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKLQkJQTdCREFFQzUxN0Y0RUEx
NDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0FycmF5SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdCRkYzQkYxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRmlsdHJhdGlvblJlc3VsdC5oOyBwYXRoID0g
ZGZnL0RGR0ZpbHRyYXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdDMEM0QUExNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UmVmLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFJlZlByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3MTcsOCArNTcxMyw2IEBACiAJ
CQkJMEYyQjY2QkExN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywK
IAkJCQkwRjJCNjZCQjE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuaCAqLywK
IAkJCQkwRjJCNjZCQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVz
LmggKi8sCi0JCQkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5j
cHAgKi8sCi0JCQkJQTdCREFFQzUxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5o
ICovLAogCQkJCTg2RkE5RThGMTQyQkJCMkQwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3Bw
ICovLAogCQkJCTg2RkE5RTkwMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCAq
LywKIAkJCQk2NTdDRjQ1NjE5QkY2NjYyMDA0QUNCRjIgLyogSlNDYWxsZWUuY3BwICovLApAQCAt
NzY2MCw3ICs3NjU0LDYgQEAKIAkJCQkwRjJCNjZFNzE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJh
eUJ1ZmZlclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RTkxN0I2QjVBQjAw
QTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZF
QTE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBN0JEQUVDQjE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxODBFMTZGNUNEMDBCMzQ0NjAgLyogSlNCYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNDBEMTdENzBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGQTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpT
Qm91bmRGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTA3LDcgKzkxMDAsNiBAQAogCQkJ
CTBGMkI2NkU2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGMkI2NkU4MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVm
ZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMxMUMzNzFDNzdDRUNBMDBFNkIxQjYg
LyogSGVhcFNuYXBzaG90QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBN0JEQUVDQTE3
RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0MjEzNTlCMEE2NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDQwRjhBRjBBNTA4RDIwMDAwNUYwNjEgLyogSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJh
dGVfY29tYmluZWRfaGVhZGVyLnB5CmluZGV4IDg5MWJkM2NiNDI2MGE4OTFhY2U1MjMzN2NhNjA3
ZWM3NTdiMWQwZTQuLjY3YjExZWY5ZTMwMGRjYzBkYjUxZDY5ODRkZTQyMTQyYWY2OWIwZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
X2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkKQEAg
LTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAy
MDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChj
KSAyMDE0LCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIEJ1aWx0aW5zQ29t
YmluZWRIZWFkZXJHZW5lcmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgogICAgICAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KG9iamVjdCkpCiAg
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFi
bGVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlv
bl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdl
bmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9wcml2YXRlX2NvZGVfbmFtZV9tYWNybygpKQogICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSGVhZGVyU3Rh
dGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVt
cGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKICAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRC
b3R0b20pLnN1YnN0aXR1dGUoYXJncykpCkBAIC0xNTAsMyArMTUxLDIyIEBAIGV4dGVybiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXNDb25zdHJ1Y3RBYmlsaXR5OyIi
IiAlIGZ1bmN0aW9uCiAKICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVu
Y05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKICAgICAgICAgcmV0dXJuICdcbicuam9pbihs
aW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2Rl
X25hbWVfbWFjcm8oc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbWFjcm9Q
cmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAor
ICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQoIiNk
ZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dM
T0JBTF9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQorICAgICAgICBmdW5jdGlvbnMgPSBmaWx0ZXIo
bGFtYmRhIGZ1bmN0aW9uOiBmdW5jdGlvbi5pc19nbG9iYWxfcHJpdmF0ZSwgc2VsZi5tb2RlbCgp
LmFsbF9mdW5jdGlvbnMoKSkKKyAgICAgICAgZnVuY3Rpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiB4
LmZ1bmN0aW9uX25hbWUpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAg
ICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1
bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgJ2NvZGVOYW1lJzogQnVpbHRp
bnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbiksCisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcywg
JShjb2RlTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQorCisgICAgICAgIHJldHVybiAnXG4n
LmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9i
dWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9o
ZWFkZXIucHkKaW5kZXggYjcyYTk0YmZlMWUxYzg4MTZmMWMxNWEzOGIzYzdmZDM3OWRlNmZlMS4u
N2RhYTI4OWEyMTMwYzZlYTFmNTA0NmY4MzIxMmI4NzhhMTdiNGE2NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2Vw
YXJhdGVfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weQpAQCAtMSw2ICsxLDYgQEAK
ICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKGMpIDIw
MTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zX21vZGVsLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfbW9kZWwucHkKaW5kZXggMDIyYTk4YjJiMjE2MTRkODQxYWU1Y2E2ZGJk
NTAxMzk1YmFmNzJjMC4uNzdiMmI4ODVjZGNhMjFhOWRmZDM3MmIzMzVmMWM5M2QwZjQ5ZjU2OCAx
MDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnNfbW9kZWwucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfbW9kZWwucHkKQEAgLTQxLDggKzQxLDkgQEAgX0ZSQU1FV09SS19DT05GSUdfTUFQ
ID0gewogfQogCiBmdW5jdGlvbkhlYWRSZWdFeHAgPSByZS5jb21waWxlKHIiKD86QFtcd3w9XStc
cypcbikqZnVuY3Rpb25ccytcdytccypcKC4qP1wpIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxM
KQotZnVuY3Rpb25JbnRyaW5zaWNSZWdFeHAgPSByZS5jb21waWxlKHIiXkBpbnRyaW5zaWM9KFx3
KylccypcbiIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSXNDb25zdHJ1Y3Rv
clJlZ0V4cCA9IHJlLmNvbXBpbGUociJeQGNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUu
RE9UQUxMKQorZnVuY3Rpb25HbG9iYWxQcml2YXRlUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBn
bG9iYWxQcml2YXRlIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxMKQorZnVuY3Rpb25JbnRyaW5z
aWNSZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGludHJpbnNpYz0oXHcrKSIsIHJlLk1VTFRJTElO
RSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uSXNDb25zdHJ1Y3RvclJlZ0V4cCA9IHJlLmNvbXBpbGUo
ciIuKl5AY29uc3RydWN0b3IiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCiBmdW5jdGlvbk5h
bWVSZWdFeHAgPSByZS5jb21waWxlKHIiZnVuY3Rpb25ccysoXHcrKVxzKlwoIiwgcmUuTVVMVElM
SU5FIHwgcmUuRE9UQUxMKQogZnVuY3Rpb25QYXJhbWV0ZXJGaW5kZXIgPSByZS5jb21waWxlKHIi
XmZ1bmN0aW9uXHMrKD86XHcrKVxzKlwoKCg/OlxzKlx3Kyk/XHMqKD86XHMqLFxzKlx3KykqKT9c
cypcKSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKIApAQCAtOTQsMTEgKzk1LDEyIEBAIGNs
YXNzIEJ1aWx0aW5PYmplY3Q6CiAKIAogY2xhc3MgQnVpbHRpbkZ1bmN0aW9uOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBmdW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIGlzX2NvbnN0cnVj
dG9yLCBwYXJhbWV0ZXJzLCBpbnRyaW5zaWMpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5j
dGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2NvbnN0cnVjdG9yLCBp
c19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKToKICAgICAgICAgc2VsZi5mdW5jdGlvbl9uYW1l
ID0gZnVuY3Rpb25fbmFtZQogICAgICAgICBzZWxmLmZ1bmN0aW9uX3NvdXJjZSA9IGZ1bmN0aW9u
X3NvdXJjZQotICAgICAgICBzZWxmLmlzX2NvbnN0cnVjdG9yID0gaXNfY29uc3RydWN0b3IKICAg
ICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycworICAgICAgICBzZWxmLmlzX2NvbnN0
cnVjdG9yID0gaXNfY29uc3RydWN0b3IKKyAgICAgICAgc2VsZi5pc19nbG9iYWxfcHJpdmF0ZSA9
IGlzX2dsb2JhbF9wcml2YXRlCiAgICAgICAgIHNlbGYuaW50cmluc2ljID0gaW50cmluc2ljCiAg
ICAgICAgIHNlbGYub2JqZWN0ID0gTm9uZSAgIyBTZXQgYnkgdGhlIG93bmluZyBCdWlsdGluT2Jq
ZWN0CiAKQEAgLTExOSwxMSArMTIxLDEyIEBAIGNsYXNzIEJ1aWx0aW5GdW5jdGlvbjoKIAogICAg
ICAgICBmdW5jdGlvbl9uYW1lID0gZnVuY3Rpb25OYW1lUmVnRXhwLmZpbmRhbGwoZnVuY3Rpb25f
c291cmNlKVswXQogICAgICAgICBpc19jb25zdHJ1Y3RvciA9IGZ1bmN0aW9uSXNDb25zdHJ1Y3Rv
clJlZ0V4cC5tYXRjaChmdW5jdGlvbl9zb3VyY2UpICE9IE5vbmUKKyAgICAgICAgaXNfZ2xvYmFs
X3ByaXZhdGUgPSBmdW5jdGlvbkdsb2JhbFByaXZhdGVSZWdFeHAubWF0Y2goZnVuY3Rpb25fc291
cmNlKSAhPSBOb25lCiAgICAgICAgIHBhcmFtZXRlcnMgPSBbcy5zdHJpcCgpIGZvciBzIGluIGZ1
bmN0aW9uUGFyYW1ldGVyRmluZGVyLmZpbmRhbGwoZnVuY3Rpb25fc291cmNlKVswXS5zcGxpdCgn
LCcpXQogICAgICAgICBpZiBsZW4ocGFyYW1ldGVyc1swXSkgPT0gMDoKICAgICAgICAgICAgIHBh
cmFtZXRlcnMgPSBbXQogCi0gICAgICAgIHJldHVybiBCdWlsdGluRnVuY3Rpb24oZnVuY3Rpb25f
bmFtZSwgZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmlu
c2ljKQorICAgICAgICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0
aW9uX3NvdXJjZSwgcGFyYW1ldGVycywgaXNfY29uc3RydWN0b3IsIGlzX2dsb2JhbF9wcml2YXRl
LCBpbnRyaW5zaWMpCiAKICAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICAgaW50ZXJmYWNl
ID0gIiVzKCVzKSIgJSAoc2VsZi5mdW5jdGlvbl9uYW1lLCAnLCAnLmpvaW4oc2VsZi5wYXJhbWV0
ZXJzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5
SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNTY1OTVmNzE0MWU1NWY1MWYyZTIwMDk1ZDY3ZTU4
ZDhhZDk5MjE1Yi4uY2JhZmNiOGFjMzRlZDYwMjU0NWUwNDdlN2RiZjg0Zjk5ZjliMDc3YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0
b3JQcm90b3R5cGUuanMKQEAgLTQxLDYgKzQxLDcgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgcmV0
dXJuIG5leHQuQGNhbGwodGhpcyk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBhcnJh
eUl0ZXJhdG9yVmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC02Myw2ICs2NCw3
IEBAIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JWYWx1ZU5leHQoKQogICAgIHJldHVybiB7IGRvbmUs
IHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5
TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODUsNiArODcsNyBAQCBmdW5jdGlvbiBh
cnJheUl0ZXJhdG9yS2V5TmV4dCgpCiAgICAgcmV0dXJuIHsgZG9uZSwgdmFsdWUgfTsKIH0KIAor
QGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHQoKQogewog
ICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9BcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9B
cnJheVByb3RvdHlwZS5qcwppbmRleCAwMzMzYzcxYjk3ZTJiOWM3NGYyN2NmNmU5YWVlNjgzOGUy
Mzk0Zjk5Li5iNWQzMjIyYmMyZmI5ZWNjYzBjMmFjMjBiYmE5MzI3YWZiMDY0ZTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCkBAIC0y
NSw2ICsyNSw3IEBACiAgKi8KIAogQGNvbnN0cnVjdG9yCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rp
b24gY3JlYXRlQXJyYXlJdGVyYXRvcihpdGVyYXRlZE9iamVjdCwga2luZCwgaXRlcmF0aW9uRnVu
Y3Rpb24pCiB7CiAgICAgdGhpcy5AaXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRlZE9iamVjdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAppbmRleCBiNmY0
ZTM4NjdmMmJjZWFiOTZkNjkzODA4Y2I0Njc3ODYyYTE2NDVlLi4wYmJhMTA2MTU2MzJiYTBkN2Ri
MWU5Nzc1NGRjMzc4NjFhZjY2YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNywxMSArMjcsMTM5IEBACiAjZGVmaW5lIEJ1aWx0aW5OYW1l
c19oCiAKICNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKKyNpbmNsdWRlICJCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRl
ICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2RlZmluZSBKU0NfQ09NTU9O
X1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCisgICAgSlND
X0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfRlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAor
ICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFj
cm8pIFwKKyAgICBtYWNybyhpdGVyYXRlZE9iamVjdCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0
b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdGlvbktpbmQpIFwKKyAgICBtYWNy
byhhcnJheUl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwK
KyAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2luZCkgXAorICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwK
KyAgICBtYWNybyhpdGVyYXRlZFN0cmluZykgXAorICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4KSBcCisgICAgbWFjcm8ocHJvbWlzZSkgXAorICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFu
ZGxlcikgXAorICAgIG1hY3JvKHJlamVjdGlvbkhhbmRsZXIpIFwKKyAgICBtYWNybyhpbmRleCkg
XAorICAgIG1hY3JvKGRlZmVycmVkKSBcCisgICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCisg
ICAgbWFjcm8oT2JqZWN0KSBcCisgICAgbWFjcm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykg
XAorICAgIG1hY3JvKE51bWJlcikgXAorICAgIG1hY3JvKEFycmF5KSBcCisgICAgbWFjcm8oU3Ry
aW5nKSBcCisgICAgbWFjcm8oUmVnRXhwKSBcCisgICAgbWFjcm8oTWFwKSBcCisgICAgbWFjcm8o
UHJvbWlzZSkgXAorICAgIG1hY3JvKFJlZmxlY3QpIFwKKyAgICBtYWNybyhJbnRlcm5hbFByb21p
c2UpIFwKKyAgICBtYWNybyhhYnMpIFwKKyAgICBtYWNybyhmbG9vcikgXAorICAgIG1hY3JvKHRy
dW5jKSBcCisgICAgbWFjcm8oaXNGaW5pdGUpIFwKKyAgICBtYWNybyhpc05hTikgXAorICAgIG1h
Y3JvKGNyZWF0ZSkgXAorICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCisgICAgbWFjcm8oZ2V0
UHJvdG90eXBlT2YpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAg
ICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVzKSBcCisgICAgbWFjcm8ob3duS2V5cykgXAorICAg
IG1hY3JvKEVycm9yKSBcCisgICAgbWFjcm8oUmFuZ2VFcnJvcikgXAorICAgIG1hY3JvKFR5cGVF
cnJvcikgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5ndGgpIFwKKyAgICBtYWNybyh0eXBlZEFy
cmF5U29ydCkgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBc
CisgICAgbWFjcm8oQnVpbHRpbkxvZykgXAorICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKKyAgICBt
YWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAorICAgIG1hY3JvKGVucXVldWVKb2IpIFwKKyAgICBt
YWNybyhoYW5kbGVyKSBcCisgICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBcCisgICAgbWFjcm8ocHJv
bWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKKyAgICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25z
KSBcCisgICAgbWFjcm8ocHJvbWlzZVJlc3VsdCkgXAorICAgIG1hY3JvKHB1c2gpIFwKKyAgICBt
YWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKKyAgICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKKyAgICBt
YWNybyhzdGFyRGVmYXVsdCkgXAorICAgIG1hY3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikg
XAorICAgIG1hY3JvKGdldCkgXAorICAgIG1hY3JvKHNldCkgXAorICAgIG1hY3JvKHNoaWZ0KSBc
CisgICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFycmF5KSBcCisgICAgbWFjcm8oSW50OEFycmF5KSBc
CisgICAgbWFjcm8oSW50MTZBcnJheSkgXAorICAgIG1hY3JvKEludDMyQXJyYXkpIFwKKyAgICBt
YWNybyhVaW50OEFycmF5KSBcCisgICAgbWFjcm8oVWludDhDbGFtcGVkQXJyYXkpIFwKKyAgICBt
YWNybyhVaW50MTZBcnJheSkgXAorICAgIG1hY3JvKFVpbnQzMkFycmF5KSBcCisgICAgbWFjcm8o
RmxvYXQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBcCisgICAgbWFjcm8oZXhl
YykgXAorICAgIG1hY3JvKGdlbmVyYXRvcikgXAorICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwK
KyAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkgXAorICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBc
CisgICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBc
CisgICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1lTW9kZSkgXAorICAgIG1hY3JvKENvbGxhdG9yKSBc
CisgICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQpIFwKKyAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwK
KyAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZhbHVlKSBcCisgICAgbWFjcm8odGhpc1RpbWVWYWx1
ZSkgXAorICAgIG1hY3JvKHRoaXNOdW1iZXJWYWx1ZSkgXAorICAgIG1hY3JvKG5ld1RhcmdldExv
Y2FsKSBcCisgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNCb3Vu
ZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCisgICAg
bWFjcm8oaW5zdGFuY2VPZikgXAorICAgIG1hY3JvKGlzQXJyYXkpIFwKKyAgICBtYWNybyhpc0Fy
cmF5Q29uc3RydWN0b3IpIFwKKyAgICBtYWNybyhpc0NvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8o
aXNSZWdFeHBPYmplY3QpIFwKKyAgICBtYWNybyhjb25jYXRNZW1jcHkpIFwKKyAgICBtYWNybyhh
cHBlbmRNZW1jcHkpIFwKKyAgICBtYWNybyhwcmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRz
KSBcCisgICAgbWFjcm8ocHJpbnQpIFwKKyAgICBtYWNybyhpc1NldCkgXAorICAgIG1hY3JvKGlz
TWFwKSBcCisgICAgbWFjcm8ocmVnRXhwQ3JlYXRlKSBcCisgICAgbWFjcm8oU2V0SXRlcmF0b3Ip
IFwKKyAgICBtYWNybyhzZXRJdGVyYXRvck5leHQpIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdS
ZWdFeHApIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpIFwKKyAgICBtYWNy
byhNYXBJdGVyYXRvcikgXAorICAgIG1hY3JvKG1hcEl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3Jv
KHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCisgICAgbWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCisgICAg
bWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xv
YmFsR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCisg
ICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQ
cm90b1NvdXJjZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBc
CisgICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhw
UHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAorICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBc
CisgICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFz
dCkgXAorICAgIG1hY3JvKHJlZ0V4cFRlc3RGYXN0KSBcCisgICAgbWFjcm8oc3RyaW5nSW5jbHVk
ZXNJbnRlcm5hbCkgXAorICAgIG1hY3JvKHN0cmluZ1NwbGl0RmFzdCkgXAorICAgIG1hY3JvKHN0
cmluZ1N1YnN0ckludGVybmFsKQorCisKICNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BV
QkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZh
dGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKICNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9f
UFJJVkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1w
bCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNjk0NjNjMzM2MDJl
MjhmN2RkNDI5YWQyMzQ2ZGIxYTdlNWVlZGRlZS4uM2MxNDA2ODdkZmM3ZTAwZWZlOTFhZTgwYjJh
YzY3NmZhOWJmNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0dlbmVyYXRvclByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIDI1LjMu
My4zIEdlbmVyYXRvclJlc3VtZSAoIGdlbmVyYXRvciwgdmFsdWUgKQogLy8gMjUuMy4zLjQgR2Vu
ZXJhdG9yUmVzdW1lQWJydXB0KGdlbmVyYXRvciwgYWJydXB0Q29tcGxldGlvbikKK0BnbG9iYWxQ
cml2YXRlCiBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFsdWUsIHJl
c3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKaW5kZXggOGJhMzQ5MDhhZmE3OWJjMzYyMjJkYzll
MTUzZTI4ZjI5MmMyMDkxMC4uNTc3NmEyMjk2YmFhYzhjNTQxMmI0Y2UzNWRmNzA4OTgwMzkwYzY5
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVj
dC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT2JqZWN0Lmpz
CkBAIC0yNiw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitAZ2xvYmFsUHJpdmF0ZQogZnVu
Y3Rpb24gdG9JbnRlZ2VyKHRhcmdldCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0zOCw2ICsz
OSw3IEBAIGZ1bmN0aW9uIHRvSW50ZWdlcih0YXJnZXQpCiAgICAgcmV0dXJuIEB0cnVuYyhudW1i
ZXJWYWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQp
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDgsNiArNTAsNyBAQCBmdW5jdGlvbiB0b0xlbmd0
aCh0YXJnZXQpCiAgICAgcmV0dXJuIGxlbmd0aCA+IDAgPyAobGVuZ3RoIDwgbWF4U2FmZUludGVn
ZXIgPyBsZW5ndGggOiBtYXhTYWZlSW50ZWdlcikgOiAwOwogfQogCitAZ2xvYmFsUHJpdmF0ZQog
ZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC01
NywxMSArNjAsMTMgQEAgZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIAogLy8gRklYTUU6
IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5hbWUgY2hhbmdlZCB0byAiZ2V0IFtTeW1ib2wuc3Bl
Y2llc10iLgogLy8gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUxMzYzCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gc3BlY2llc0dldHRlcigpCiB7CiAgICAg
cmV0dXJuIHRoaXM7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBzcGVjaWVzQ29uc3Ry
dWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3IpCiB7CiAgICAgdmFyIGNvbnN0cnVjdG9yID0g
b2JqLmNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4IGM0ZTU5YmIwNzkzYjllMDBhZTdkOWEyNTE1YTNk
ZDJkMmI0YjEyOGIuLjE5MWRiM2Y2YWNmNTljNjg0YWMzMjZlMjdjM2UzZTkyZDYzYjA3OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9u
cy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlv
bnMuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBT
dXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitAZ2xvYmFsUHJpdmF0ZQog
ZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2UpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMzIs
NiArMzQsNyBAQCBmdW5jdGlvbiBpc1Byb21pc2UocHJvbWlzZSkKICAgICByZXR1cm4gQGlzT2Jq
ZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5AcHJvbWlzZVN0YXRlOwogfQogCitAZ2xvYmFsUHJp
dmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9uKGNhcGFiaWxpdHksIGhhbmRsZXIpCiB7
CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDIsNiArNDUsNyBAQCBmdW5jdGlvbiBuZXdQcm9taXNl
UmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxlcikKICAgICB9OwogfQogCitAZ2xvYmFsUHJpdmF0
ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHkoY29uc3RydWN0b3IpCiB7CiAgICAgInVz
ZSBzdHJpY3QiOwpAQCAtODAsNiArODQsNyBAQCBmdW5jdGlvbiBuZXdQcm9taXNlQ2FwYWJpbGl0
eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHk7CiB9CiAKK0BnbG9i
YWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIGFy
Z3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTg4LDYgKzkzLDcgQEAgZnVuY3Rpb24g
dHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCBhcmd1bWVudCkKICAgICAgICAgQGVu
cXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgW3JlYWN0aW9uc1tpbmRleF0sIGFyZ3VtZW50
XSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2Us
IHJlYXNvbikKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xMDMsNiArMTA5LDcgQEAgZnVuY3Rp
b24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCiAgICAgQHRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9u
IGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZhbHVlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAg
LTExOCw2ICsxMjUsNyBAQCBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkK
ICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7CiB9CiAKK0Bn
bG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMocHJvbWlzZSkK
IHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xNjQsNiArMTcyLDcgQEAgZnVuY3Rpb24gY3JlYXRl
UmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiAgICAgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUK
IGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiB7CiAgICAg
InVzZSBzdHJpY3QiOwpAQCAtMTgwLDYgKzE4OSw3IEBAIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlv
bkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkBy
ZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJlc3VsdCk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5h
YmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTE5Myw2ICsyMDMsNyBAQCBmdW5j
dGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxl
LCB0aGVuKQogICAgIH0KIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGluaXRpYWxpemVQ
cm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4IDI5NTdmMTRjYjcz
OTgwZjI0NWY2ZDFjNzQ2ZGFmZjgxMjdlNDkyZGMuLjlkOTQ1YTRjZTM3MmNiYjNjOWY1MDNmMTJk
YmZmMTRlYzFjNTU2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFkdmFuY2VTdHJpbmdJbmRleChzdHJpbmcs
IGluZGV4LCB1bmljb2RlKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBBZHZh
bmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAyMS4yLjUuMi4zLgpAQCAtNDUsNiArNDYs
NyBAQCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBpbmRleCwgdW5pY29kZSkK
ICAgICByZXR1cm4gaW5kZXggKyAyOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVn
RXhwRXhlYyhyZWdleHAsIHN0cikKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC02MCw2ICs2Miw3
IEBAIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBzdHIpCiAgICAgcmV0dXJuIGJ1aWx0aW5F
eGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhh
c09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoKHJlZ2V4cCkgewogICAgIC8vIFRo
aXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50ZXJuYWwgZnVuY3Rpb24uCiAgICAg
bGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAsICJleGVjIik7CkBAIC0zMjYsNiAr
MzI5LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAgICByZXR1cm4gcmVzdWx0LmluZGV4
OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3Rz
Rm9yUmVnRXhwU3BsaXQocmVnZXhwKSB7CiAgICAgLy8gVGhpcyBpcyBhY2Nlc3NlZCBieSB0aGUg
UmVnRXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlvbi4KICAgICBsZXQgcmVnZXhwRXhlYyA9IEB0cnlH
ZXRCeUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDg5NjUxMGMwNDRlZWU4ODUyOTBlNTVhYjA3
ZmE5OTkzZmJiZDA2ZWIuLmVmYjg1N2I3M2IwZGQyNmJmNWY2YzdlZWU0OWI2NzIzMjg2NDI0NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5
cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlw
ZS5qcwpAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiBtYXRjaChyZWdleHApCiAgICAgcmV0dXJu
IGNyZWF0ZWRSZWdFeHAuQG1hdGNoU3ltYm9sKHRoaXNTdHJpbmcpOwogfQogCitAZ2xvYmFsUHJp
dmF0ZQogZnVuY3Rpb24gcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIHJlcGVhdFNsb3dQYXRoKHN0cmlu
ZywgY291bnQpCiAgICAgfQogfQogCi0KK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiByZXBlYXRD
aGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBA
IC0yMDIsNiArMjAzLDcgQEAgZnVuY3Rpb24gcGFkRW5kKG1heExlbmd0aC8qLCBmaWxsU3RyaW5n
Ki8pCiAgICAgcmV0dXJuIHN0cmluZyArIHRydW5jYXRlZFN0cmluZ0ZpbGxlcjsKIH0KIAorQGds
b2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1Jl
cGxhY2UocmVnZXhwLCByZXBsYWNlcikgewogICAgIGlmIChyZXBsYWNlciAhPT0gQHJlZ0V4cFBy
b3RvdHlwZVN5bWJvbFJlcGxhY2UpCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuY3BwCmluZGV4IDQ5YmZmNDBjYTdhNjcyZGQ1ZDhlZWE4NmJkZWU4MGY5OWFjYjQ5OGYu
LjE5M2QyODlhYzdkNzQ5MzY3MzA0MTY5ODlhZWNjZjY1NTMzMDI0OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJBcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAi
Qnl0ZWNvZGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKQEAgLTM2LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNfVE9f
U0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMtPm5h
bWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRy
aW5zaWNfIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFN
RVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUjI1ByaXZhdGVOYW1lKCkuaW1wbCgpLCAmQnl0ZWNvZGVJ
bnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY18jI25hbWUpOwogCiBCeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICA6IG1fdm0o
dm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM5OWMyZTg1NGIzNGU4OGEyOGQ4MmQzMjUxNzU3ZDFh
N2M0ZThkYjIuLjkxZjVjNzc0N2FkNjUwYmE1ZmQwM2MyNDlhM2U1ZDUwYWNhMTlhNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCkBAIC05MTAsMTIgKzkxMCwxMiBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxl
KgogCiAgICAgICAgIGlmIChtX2NvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiBpc05ld1Rhcmdl
dFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBvZmZzZXQgPSBmdW5j
dGlvblN5bWJvbFRhYmxlLT50YWtlTmV4dFNjb3BlT2Zmc2V0KCk7Ci0gICAgICAgICAgICBmdW5j
dGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCku
bmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZS5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoVmFyT2Zm
c2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uU3ltYm9sVGFibGUtPnNldChOb0xv
Y2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRM
b2NhbFByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZz
ZXQpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKCkg
JiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3Vw
ZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVu
Y3Rpb25TeW1ib2xUYWJsZS0+dGFrZU5leHRTY29wZU9mZnNldChOb0xvY2tpbmdOZWNlc3Nhcnkp
OwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2Fy
eSwgcHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lLmltcGwoKSwg
U3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0KSkpOworICAgICAgICAgICAgZnVuY3Rp
b25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmJ1
aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1i
b2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBy
ZXR1cm47CkBAIC05MzAsMTMgKzkzMCwxMyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0
aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogICAg
IH0KICAgICAKICAgICBpZiAobV9jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJn
ZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRvIGFkZFRhcmdldCA9
IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFt
ZSk7CisgICAgICAgIGF1dG8gYWRkVGFyZ2V0ID0gZW52aXJvbm1lbnQuYWRkKHByb3BlcnR5TmFt
ZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpOwogICAgICAg
ICBhZGRUYXJnZXQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICAgICAgYWRk
VGFyZ2V0Lml0ZXJhdG9yLT52YWx1ZS5zZXRJc0xldCgpOwogICAgIH0KIAogICAgIGlmIChpc0Nv
bnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJp
dmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRv
IGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuZGVy
aXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1
Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVy
aXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGRlcml2ZWRDb25zdHJ1Y3Rv
ci5pdGVyYXRvci0+dmFsdWUuc2V0SXNDYXB0dXJlZCgpOwogICAgICAgICBkZXJpdmVkQ29uc3Ry
dWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNldElzTGV0KCk7CiAgICAgfQpAQCAtMjk3Nyw5ICsyOTc3
LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsRXZhbChSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEMKIAogRXhwZWN0ZWRGdW5jdGlvbiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIoY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllcikKIHsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5PYmplY3QgfHwgaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3RQ
cml2YXRlTmFtZSkKKyAgICBpZiAoaWRlbnRpZmllciA9PSBwcm9wZXJ0eU5hbWVzKCkuT2JqZWN0
IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLk9iamVjdFBy
aXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBlY3RPYmplY3RDb25zdHJ1Y3RvcjsKLSAg
ICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5BcnJheSB8fCBpZGVudGlm
aWVyID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUpCisgICAgaWYgKGlk
ZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLkFycmF5IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVy
dHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLkFycmF5UHJpdmF0ZU5hbWUoKSkKICAgICAgICAgcmV0
dXJuIEV4cGVjdEFycmF5Q29uc3RydWN0b3I7CiAgICAgcmV0dXJuIE5vRXhwZWN0ZWRGdW5jdGlv
bjsKIH0KQEAgLTQwNDUsNyArNDA0NSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBUYWdnZWRUZW1wCiAgICAg
fQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGdldFRlbXBsYXRlT2JqZWN0ID0gbnVsbHB0cjsK
LSAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZ2V0VGVtcGxhdGVP
YmplY3RQcml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUgdmFyID0gdmFyaWFibGUocHJvcGVydHlO
YW1lcygpLmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAg
ICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gdmFyLmxvY2FsKCkpCiAgICAgICAgIGdldFRlbXBs
YXRlT2JqZWN0ID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5KCksIGxvY2FsKTsKICAgICBlbHNlIHsK
QEAgLTQyMzUsMTYgKzQyMzUsMTYgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRU
aGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogICAgIAogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25M
ZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlh
YmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICBWYXJp
YWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVz
KCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKIAotICAgIHJldHVybiBlbWl0R2V0RnJv
bVNjb3BlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsIGVtaXRMb2FkQXJyb3dGdW5jdGlvbkxleGljYWxF
bnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSksIG5l
d1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICByZXR1cm4gZW1pdEdldEZyb21TY29w
ZShtX25ld1RhcmdldFJlZ2lzdGVyLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJv
bm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0
ZU5hbWUoKSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKICAgICAKIH0KIAogUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9yRnJv
bUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZhcmlhYmxlIHByb3Rv
U2NvcGVWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJp
dmF0ZU5hbWUpOwotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBl
bWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmRl
cml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKSwgcHJvdG9TY29wZVZhciwgVGhyb3dJZk5vdEZv
dW5kKTsKKyAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1l
cygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpOworICAg
IHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVu
Y3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRl
cml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpLCBwcm90b1Njb3BlVmFyLCBUaHJvd0lmTm90
Rm91bmQpOwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW5zdXJlVGhpcygp
CkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3
VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKICAgICBpZiAoaXNOZXdUYXJnZXRV
c2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0
aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgCi0gICAgICAg
IFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJn
ZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICAgICAgVmFyaWFibGUgbmV3VGFyZ2V0VmFyID0gdmFy
aWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0
ZU5hbWUoKSk7CiAgICAgICAgIGVtaXRQdXRUb1Njb3BlKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRM
ZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgbmV3VGFyZ2V0VmFyLCBuZXdUYXJnZXQoKSwgRG9O
b3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwog
ICAgIH0KIH0KQEAgLTQyOTksNyArNDI5OSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUoKQogICAg
ICAgICBpZiAoaXNTdXBlclVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAg
ICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVy
KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgVmFyaWFibGUgcHJvdG9TY29wZSA9IHZhcmlh
YmxlKHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSk7CisgICAg
ICAgICAgICBWYXJpYWJsZSBwcm90b1Njb3BlID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1
aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpOwogICAgICAgICAg
ICAgZW1pdFB1dFRvU2NvcGUobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVu
dFJlZ2lzdGVyLCBwcm90b1Njb3BlLCAmbV9jYWxsZWVSZWdpc3RlciwgRG9Ob3RUaHJvd0lmTm90
Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNDU2NCw3ICs0NTY0LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKIHZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JTdGF0ZUNoYW5nZShpbnQzMl90IHN0YXRl
KQogewogICAgIFJlZ2lzdGVySUQqIGNvbXBsZXRlZFN0YXRlID0gZW1pdExvYWQobnVsbHB0ciwg
anNOdW1iZXIoc3RhdGUpKTsKLSAgICBlbWl0UHV0QnlJZChnZW5lcmF0b3JSZWdpc3RlcigpLCBw
cm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwgY29tcGxldGVkU3RhdGUp
OworICAgIGVtaXRQdXRCeUlkKGdlbmVyYXRvclJlZ2lzdGVyKCksIHByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIGNvbXBsZXRlZFN0YXRl
KTsKIH0KIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlTGFiZWwo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCmluZGV4IDIzYzAyNmJmMmNjNTliZWFmMWE2NTUwMmE3ZjdkOWM1ZGZjMThmYjcuLmI2
ZDBhMzcyYmI5YjZjYmE1YTI4YjZkYjJmYWFkNjY2MjcwYTZiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MSwx
MiArMTYxLDEyIEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogewogICAgIGlmIChnZW5lcmF0b3IuaXNEZXJp
dmVkQ2xhc3NDb250ZXh0KCkgfHwgZ2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVjdG9yQ29udGV4
dCgpKSB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGdlbmVyYXRv
ci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmly
b25tZW50KCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0b3IsIGdlbmVyYXRvci5wcm9wZXJ0eU5h
bWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGRlcml2ZWRDb25zdHJ1Y3Rvciwg
Z2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0
ZU5hbWUoKSk7CiAgICAgfQogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNl
dEluZGV4KEpTU3RhY2s6OkNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJ
ZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5h
bWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRH
ZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgJmNhbGxlZSwgZ2VuZXJhdG9yLnByb3Bl
cnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiB9CiAK
IHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IpCkBAIC00NTcsNyArNDU3LDcgQEAgUmVnaXN0ZXJJRCogT2JqZWN0TGl0
ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3QKIAogc3RhdGljIGlubGluZSB2b2lkIGVtaXRQdXRIb21lT2JqZWN0KEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGZ1bmN0aW9uLCBSZWdpc3RlcklEKiBob21lT2Jq
ZWN0KQogewotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnBy
b3BlcnR5TmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUsIGhvbWVPYmplY3QpOworICAgIGdl
bmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSwgaG9tZU9iamVjdCk7CiB9CiAK
IFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0zMjgyLDE0ICszMjgyLDE0IEBA
IHZvaWQgRnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgUmVnaXN0ZXJJRCopCiAgICAgICAgIC8vIEJ1dCB0byBtYWtlIGl0IGVmZmljaWVudCwg
d2Ugd2lsbCBpbnRyb2R1Y2UgSlNHZW5lcmF0b3IgY2xhc3MsIGFkZCBvcGNvZGUgbmV3X2dlbmVy
YXRvciBhbmQgdXNlIGl0cyBDKysgZmllbGRzIGluc3RlYWQgb2YgdGhlc2UgcHJpdmF0ZSBwcm9w
ZXJ0aWVzLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxNTQ1CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRv
ci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmdlbmVyYXRv
ck5leHRQcml2YXRlTmFtZSwgbmV4dC5nZXQoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9y
UmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5l
cmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgbmV4dC5nZXQoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRp
cmVjdCk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5n
ZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmdlbmVyYXRvclRo
aXNQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpLCBQcm9wZXJ0eU5vZGU6Oktu
b3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRv
ci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSgpLCBnZW5lcmF0b3IudGhpc1JlZ2lzdGVy
KCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGlu
aXRpYWxTdGF0ZSA9IGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBqc051bWJlcigwKSk7Ci0g
ICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVn
aXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVO
YW1lLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOworICAgICAgICBn
ZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCks
IGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQ
cml2YXRlTmFtZSgpLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwog
Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9y
UmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZh
dGVOYW1lLCBnZW5lcmF0b3IuZW1pdExvYWQobnVsbHB0ciwganNOdWxsKCkpLCBQcm9wZXJ0eU5v
ZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdl
bmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmJ1
aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSwgZ2VuZXJhdG9yLmVtaXRM
b2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKICAg
ICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0KCkgPj0gbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgICAg
ICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsTGVhdmVDYWxsRnJhbWUsIGxhc3RMaW5lKCks
IHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXgg
MGVlZjg5YTY0NzRhMDczZGZiZTFiZjQ2NzA3MTI1YTk5YjRmMjljNi4uNGE3ZDU5MjQ0NWEzYmE5
ODMzNjBiMjMwOGVmZjFhYjgyNDk4Y2ExZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1ZGUg
Ikl0ZXJhdG9yT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKLSNpbmNsdWRlICJK
U0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpAQCAtMTc2LDggKzE3NSw3
IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVj
KQogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU1dlYWtTZXQ6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOwog
Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQXJyYXlJdGVyYXRvcjo6aW5mbygpKQotICAgICAg
ICB8fCB2YWx1ZS5pbmhlcml0cyhKU01hcEl0ZXJhdG9yOjppbmZvKCkpCisgICAgaWYgKHZhbHVl
LmluaGVyaXRzKEpTTWFwSXRlcmF0b3I6OmluZm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJp
dHMoSlNTZXRJdGVyYXRvcjo6aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1N0
cmluZ0l0ZXJhdG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3I6OmluZm8oKSkpCkBAIC0zMTksMjggKzMxNyw2IEBAIEpTVmFsdWUgSlNJ
bmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoSlNBcnJheUl0ZXJhdG9yKiBhcnJheUl0ZXJh
dG9yID0ganNEeW5hbWljQ2FzdDxKU0FycmF5SXRlcmF0b3IqPih2YWx1ZSkpIHsKLSAgICAgICAg
U3RyaW5nIGtpbmQ7Ci0gICAgICAgIHN3aXRjaCAoYXJyYXlJdGVyYXRvci0+a2luZChleGVjKSkg
ewotICAgICAgICBjYXNlIEFycmF5SXRlcmF0ZUtleToKLSAgICAgICAgICAgIGtpbmQgPSBBU0NJ
SUxpdGVyYWwoImtleSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQXJyYXlJ
dGVyYXRlVmFsdWU6Ci0gICAgICAgICAgICBraW5kID0gQVNDSUlMaXRlcmFsKCJ2YWx1ZSIpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5VmFsdWU6Ci0g
ICAgICAgICAgICBraW5kID0gQVNDSUlMaXRlcmFsKCJrZXkrdmFsdWUiKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICAgICAg
SlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIsIDIpOwot
ICAgICAgICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKQotICAgICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRl
eCsrLCBjb25zdHJ1Y3RJbnRlcm5hbFByb3BlcnR5KGV4ZWMsICJhcnJheSIsIGFycmF5SXRlcmF0
b3ItPml0ZXJhdGVkVmFsdWUoZXhlYykpKTsKLSAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4
KGV4ZWMsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoZXhlYywgImtpbmQiLCBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywga2luZCkpKTsKLSAgICAgICAgcmV0dXJuIGFycmF5Owot
ICAgIH0KLQogICAgIGlmIChKU01hcEl0ZXJhdG9yKiBtYXBJdGVyYXRvciA9IGpzRHluYW1pY0Nh
c3Q8SlNNYXBJdGVyYXRvcio+KHZhbHVlKSkgewogICAgICAgICBTdHJpbmcga2luZDsKICAgICAg
ICAgc3dpdGNoIChtYXBJdGVyYXRvci0+a2luZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTGV4ZXIuY3BwCmluZGV4IGQ2N2RmOTQ3ODEzMjMyOWQ4ODZkNTNjMzcyOGRhNmNlZDk0Njhk
NjUuLjNjOTU5ZTRmYWMwNWNhYTlmMjViMmE1Yzc3NmMxZjU1NDk2N2FhMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMDks
IDIwMTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA3IENhbWVyb24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6
ZWdlZC5odSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNA
cWl3aS5iZSkKQEAgLTkzOSw3ICs5MzksNyBAQCB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJ
ZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPExDaGFyPjo6cAogICAg
ICAgICAgICAgaWYgKGlzUHJpdmF0ZU5hbWUpCiAgICAgICAgICAgICAgICAgaWRlbnQgPSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5sb29rVXBQcml2YXRlTmFtZSgqaWRlbnQpOwogICAgICAgICAgICAg
ZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQp
Ci0gICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT51bmRlZmluZWRQcml2YXRlTmFtZTsKKyAgICAgICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50
ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnVuZGVmaW5lZFByaXZhdGVO
YW1lKCk7CiAgICAgICAgICAgICBpZiAoIWlkZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBJ
TlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsKICAgICAgICAgfQpAQCAtMTAxNiw3ICsxMDE2
LDcgQEAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlTX0lOTElO
RSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnAKICAgICAgICAgICAgIGlmIChpc1ByaXZhdGVO
YW1lKQogICAgICAgICAgICAgICAgIGlkZW50ID0gbV92bS0+cHJvcGVydHlOYW1lcy0+bG9va1Vw
UHJpdmF0ZU5hbWUoKmlkZW50KTsKICAgICAgICAgICAgIGVsc2UgaWYgKCppZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkKQotICAgICAgICAgICAgICAgIHRva2Vu
RGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWU7
CisgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS51bmRlZmluZWRQcml2YXRlTmFtZSgpOwogICAgICAgICAgICAgaWYg
KCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9QUklWQVRFX05BTUVfRVJS
T1JUT0s7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA3
ZDg1MWNlYWNhMmVhYWQ5N2RjNjQxYzI0MWY0YjVhMGM3MjNhYjg0Li5jODExNjQwOGIxMGI1ZjBj
ZWYyNWQ1NWI5MDA4YmRkNzkyOTFkMzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIE5vZGVzX2gKICNkZWZpbmUgTm9kZXNfaAog
CisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRl
ICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAKaW5kZXggNDU3NTc0MTdmOTVlOTY1NjgwZDgxZDA5ZDlmOGFhMGI5MTM2
YWZkOC4uYjZjODc3OTBmMjUwMWNlNzQ5ZmI4NGRjNDhlYmE5YjJlNzBkYTQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTg5NywyMyArMTg5NywyMyBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpGb3JtYWxQ
YXJhbWV0ZXJMaXN0IFBhcnNlcjxMZQogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gdG9r
ZW5TdGFydFBvc2l0aW9uKCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yCi0gICAgZGVjbGFyZVBhcmFt
ZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUHJpdmF0ZU5hbWUpOwotICAgIGF1
dG8gZ2VuZXJhdG9yID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1f
dm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclByaXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRp
b24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFy
ZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9y
UHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3IgPSBjb250ZXh0LmNyZWF0ZUJpbmRp
bmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
Z2VuZXJhdG9yUHJpdmF0ZU5hbWUoKSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29u
dGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAgIGNvbnRleHQuYXBwZW5kUGFyYW1ldGVy
KHBhcmFtZXRlcnMsIGdlbmVyYXRvciwgMCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yU3RhdGUKLSAg
ICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JTdGF0ZVBy
aXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvclN0YXRlID0gY29udGV4dC5jcmVhdGVCaW5k
aW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclN0YXRl
UHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xh
cmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCkpOworICAgIGF1
dG8gZ2VuZXJhdG9yU3RhdGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlv
biwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2
YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJh
dGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywg
Z2VuZXJhdG9yU3RhdGUsIDApOwogCiAgICAgLy8gQGdlbmVyYXRvclZhbHVlCi0gICAgZGVjbGFy
ZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yVmFsdWVQcml2YXRlTmFt
ZSk7Ci0gICAgYXV0byBnZW5lcmF0b3JWYWx1ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0
aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVByaXZhdGVO
YW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0
YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGdlbmVy
YXRvclZhbHVlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0t
PnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUo
KSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0
ZW1lbnQpOwogICAgIGNvbnRleHQuYXBwZW5kUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRv
clZhbHVlLCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JSZXN1bWVNb2RlCi0gICAgZGVjbGFyZVBh
cmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUmVzdW1lTW9kZVByaXZhdGVO
YW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvclJlc3VtZU1vZGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRp
bmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUmVzdW1l
TW9kZVByaXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpE
ZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lTW9kZVByaXZhdGVOYW1lKCkp
OworICAgIGF1dG8gZ2VuZXJhdG9yUmVzdW1lTW9kZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xv
Y2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5l
cmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUoKSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25t
ZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAgIGNvbnRleHQuYXBwZW5kUGFy
YW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRvclJlc3VtZU1vZGUsIDApOwogCiAgICAgcmV0dXJu
IHBhcmFtZXRlcnM7CkBAIC0yODcxLDE1ICsyODcxLDE1IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVl
QnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNs
YXJhCiAgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgICAgIGZhaWxJZkZhbHNlKGV4cHJlc3Np
b24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogCi0gICAgICAgICAgICBEZWNsYXJhdGlv
blJlc3VsdE1hc2sgZGVjbGFyYXRpb25SZXN1bHQgPSBkZWNsYXJlVmFyaWFibGUoJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUsIERlY2xhcmF0aW9uVHlwZTo6Q29u
c3REZWNsYXJhdGlvbik7CisgICAgICAgICAgICBEZWNsYXJhdGlvblJlc3VsdE1hc2sgZGVjbGFy
YXRpb25SZXN1bHQgPSBkZWNsYXJlVmFyaWFibGUoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUoKSwgRGVjbGFyYXRpb25UeXBlOjpDb25z
dERlY2xhcmF0aW9uKTsKICAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvblJlc3VsdCAmIERlY2xh
cmF0aW9uUmVzdWx0OjpJbnZhbGlkRHVwbGljYXRlRGVjbGFyYXRpb24pCiAgICAgICAgICAgICAg
ICAgaW50ZXJuYWxGYWlsV2l0aE1lc3NhZ2UoZmFsc2UsICJPbmx5IG9uZSAnZGVmYXVsdCcgZXhw
b3J0IGlzIGFsbG93ZWQiKTsKIAotICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gYXNzaWdubWVu
dCA9IGNvbnRleHQuY3JlYXRlQXNzaWduUmVzb2x2ZShsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlO
YW1lcy0+c3RhckRlZmF1bHRQcml2YXRlTmFtZSwgZXhwcmVzc2lvbiwgc3RhcnQsIHN0YXJ0LCB0
b2tlbkVuZFBvc2l0aW9uKCksIEFzc2lnbm1lbnRDb250ZXh0OjpDb25zdERlY2xhcmF0aW9uU3Rh
dGVtZW50KTsKKyAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGFzc2lnbm1lbnQgPSBjb250ZXh0
LmNyZWF0ZUFzc2lnblJlc29sdmUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUoKSwgZXhwcmVzc2lvbiwgc3RhcnQsIHN0
YXJ0LCB0b2tlbkVuZFBvc2l0aW9uKCksIEFzc2lnbm1lbnRDb250ZXh0OjpDb25zdERlY2xhcmF0
aW9uU3RhdGVtZW50KTsKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlRXhwclN0
YXRlbWVudChsb2NhdGlvbiwgYXNzaWdubWVudCwgc3RhcnQsIHRva2VuRW5kUG9zaXRpb24oKSk7
CiAgICAgICAgICAgICBpZiAoIWlzRnVuY3Rpb25PckNsYXNzRGVjbGFyYXRpb24pCiAgICAgICAg
ICAgICAgICAgZmFpbElmRmFsc2UoYXV0b1NlbWlDb2xvbigpLCAiRXhwZWN0ZWQgYSAnOycgZm9s
bG93aW5nIGEgdGFyZ2V0ZWQgZXhwb3J0IGRlY2xhcmF0aW9uIik7Ci0gICAgICAgICAgICBsb2Nh
bE5hbWUgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+c3RhckRlZmF1bHRQcml2YXRlTmFtZTsKKyAg
ICAgICAgICAgIGxvY2FsTmFtZSA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5zdGFyRGVmYXVsdFByaXZhdGVOYW1lKCk7CiAgICAgICAgIH0KICAgICAgICAgZmFpbElmRmFs
c2UocmVzdWx0LCAiQ2Fubm90IHBhcnNlIHRoZSBkZWNsYXJhdGlvbiIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUu
Y3BwCmluZGV4IDAxYjEwMDRmZjE1YTcwMGFhYWNjYzNkOTA3MDFlMzEzMDcwYjI2ODQuLjg4OTU3
ZTFjNDdmMjhkZTI1MTAxNDUyZTZhNTA2YzM2MzUzNDE0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5o
IgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKQEAgLTM4LDcgKzM3LDYgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLQogY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRlcmF0b3JQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIkFycmF5IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgJmFycmF5SXRl
cmF0b3JQcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShBcnJheUl0ZXJhdG9yUHJv
dG90eXBlKSB9OwogCiAvKiBTb3VyY2UgZm9yIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQ
cm90b3R5cGUuaAppbmRleCBiOTcwN2ExNmYyMWVlNDBkY2E0MDgzYWFhZGVmZGVkYTY4OGYxYjdm
Li5iNTE1YzJiYWRlMzljNzBlYjJiODc2Y2IzMmFkZDQ5YzMzMWEyZTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5o
CkBAIC0zMCw2ICszMCwxMiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorZW51bSBBcnJheUl0ZXJh
dGlvbktpbmQgOiB1aW50MzJfdCB7CisgICAgQXJyYXlJdGVyYXRlS2V5LAorICAgIEFycmF5SXRl
cmF0ZVZhbHVlLAorICAgIEFycmF5SXRlcmF0ZUtleVZhbHVlCit9OworCiBjbGFzcyBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDgxZDIxZjhhYzNiZWI4MzhiODcz
NWEwOGJlYWI3MjI4Y2I3MjU3NWYuLjhjYzZjYTA2MGFkNTQ3MTNhOWJhZTc5YTUwM2E5M2RjODZj
ZGFjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNB
cnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggNDc1ZGYy
NTg2ODMxMTAzMjAxMGRhZjk2ZjY0NWE3ZDc2NzZiNTQxYy4uOTI2NTI4ZTBmZWU5NDIxNDRiY2I4
NTQ4ZjZhMWRhZDg4ZDg3NGZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA5LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDksIDIwMTIsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTQzLDcgKzQzLDYgQEAgQ29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKFZNKiB2
bSkKICAgICAsIG1fYnVpbHRpbk5hbWVzKG5ldyBCdWlsdGluTmFtZXModm0sIHRoaXMpKQogICAg
IEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9LRVlXT1JEKElOSVRJQUxJWkVfS0VZV09SRCkK
ICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpF
X1BST1BFUlRZX05BTUUpCi0gICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hf
UFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfTkFNRSkKICAgICBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1NZTUJP
TCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oCmluZGV4IDViYjBiYWU2OTI1MWQwMDNlMzFiNzJjYjNjYjU0N2E3OGUyMzY1Nzgu
Ljg1Y2ViYmYzOGY5ZTUyMWIzMDM4YTVmYzRhYzQyNWYxZTgwN2JkYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjEsNyAr
MjEsNiBAQAogI2lmbmRlZiBDb21tb25JZGVudGlmaWVyc19oCiAjZGVmaW5lIENvbW1vbklkZW50
aWZpZXJzX2gKIAotI2luY2x1ZGUgIkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTMy
NiwxMzIgKzMyNSw2IEBACiAgICAgbWFjcm8odG9TdHJpbmdUYWcpIFwKICAgICBtYWNybyh1bnNj
b3BhYmxlcykKIAotI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKG1hY3JvKSBcCi0gICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNf
RlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAotICAgIEpTQ19DT01NT05fQllURUNPREVfSU5U
UklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKLSAgICBtYWNybyhpdGVyYXRlZE9i
amVjdCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0SW5kZXgpIFwKLSAgICBtYWNybyhh
cnJheUl0ZXJhdGlvbktpbmQpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dCkgXAotICAg
IG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2lu
ZCkgXAotICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwKLSAgICBtYWNybyhpdGVyYXRlZFN0cmluZykg
XAotICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBcCi0gICAgbWFjcm8ocHJvbWlz
ZSkgXAotICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFuZGxlcikgXAotICAgIG1hY3JvKHJlamVjdGlv
bkhhbmRsZXIpIFwKLSAgICBtYWNybyhpbmRleCkgXAotICAgIG1hY3JvKGRlZmVycmVkKSBcCi0g
ICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCi0gICAgbWFjcm8oT2JqZWN0KSBcCi0gICAgbWFj
cm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykgXAotICAgIG1hY3JvKE51bWJlcikgXAotICAg
IG1hY3JvKEFycmF5KSBcCi0gICAgbWFjcm8oU3RyaW5nKSBcCi0gICAgbWFjcm8oUmVnRXhwKSBc
Ci0gICAgbWFjcm8oTWFwKSBcCi0gICAgbWFjcm8oUHJvbWlzZSkgXAotICAgIG1hY3JvKFJlZmxl
Y3QpIFwKLSAgICBtYWNybyhJbnRlcm5hbFByb21pc2UpIFwKLSAgICBtYWNybyhhYnMpIFwKLSAg
ICBtYWNybyhmbG9vcikgXAotICAgIG1hY3JvKHRydW5jKSBcCi0gICAgbWFjcm8oaXNGaW5pdGUp
IFwKLSAgICBtYWNybyhpc05hTikgXAotICAgIG1hY3JvKGNyZWF0ZSkgXAotICAgIG1hY3JvKGRl
ZmluZVByb3BlcnR5KSBcCi0gICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKLSAgICBtYWNybyhn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKLSAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVz
KSBcCi0gICAgbWFjcm8ob3duS2V5cykgXAotICAgIG1hY3JvKEVycm9yKSBcCi0gICAgbWFjcm8o
UmFuZ2VFcnJvcikgXAotICAgIG1hY3JvKFR5cGVFcnJvcikgXAotICAgIG1hY3JvKHR5cGVkQXJy
YXlMZW5ndGgpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5U29ydCkgXAotICAgIG1hY3JvKHR5cGVk
QXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oQnVpbHRpbkxvZykgXAot
ICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKLSAgICBtYWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAot
ICAgIG1hY3JvKGVucXVldWVKb2IpIFwKLSAgICBtYWNybyhoYW5kbGVyKSBcCi0gICAgbWFjcm8o
cHJvbWlzZVN0YXRlKSBcCi0gICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKLSAg
ICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25zKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlc3Vs
dCkgXAotICAgIG1hY3JvKHB1c2gpIFwKLSAgICBtYWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKLSAg
ICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKLSAgICBtYWNybyhzdGFyRGVmYXVsdCkgXAotICAgIG1h
Y3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikgXAotICAgIG1hY3JvKGdldCkgXAotICAgIG1h
Y3JvKHNldCkgXAotICAgIG1hY3JvKHNoaWZ0KSBcCi0gICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFy
cmF5KSBcCi0gICAgbWFjcm8oSW50OEFycmF5KSBcCi0gICAgbWFjcm8oSW50MTZBcnJheSkgXAot
ICAgIG1hY3JvKEludDMyQXJyYXkpIFwKLSAgICBtYWNybyhVaW50OEFycmF5KSBcCi0gICAgbWFj
cm8oVWludDhDbGFtcGVkQXJyYXkpIFwKLSAgICBtYWNybyhVaW50MTZBcnJheSkgXAotICAgIG1h
Y3JvKFVpbnQzMkFycmF5KSBcCi0gICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCi0gICAgbWFjcm8o
RmxvYXQ2NEFycmF5KSBcCi0gICAgbWFjcm8oZXhlYykgXAotICAgIG1hY3JvKGdlbmVyYXRvcikg
XAotICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkg
XAotICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUp
IFwKLSAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1l
TW9kZSkgXAotICAgIG1hY3JvKENvbGxhdG9yKSBcCi0gICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQp
IFwKLSAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKLSAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZh
bHVlKSBcCi0gICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAotICAgIG1hY3JvKHRoaXNOdW1iZXJW
YWx1ZSkgXAotICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCi0gICAgbWFjcm8oZGVyaXZlZENv
bnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCi0gICAgbWFjcm8oaGFz
SW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCi0gICAgbWFjcm8oaW5zdGFuY2VPZikgXAotICAgIG1h
Y3JvKGlzQXJyYXkpIFwKLSAgICBtYWNybyhpc0FycmF5Q29uc3RydWN0b3IpIFwKLSAgICBtYWNy
byhpc0NvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKLSAgICBtYWNy
byhjb25jYXRNZW1jcHkpIFwKLSAgICBtYWNybyhhcHBlbmRNZW1jcHkpIFwKLSAgICBtYWNybyhw
cmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRzKSBcCi0gICAgbWFjcm8ocHJpbnQpIFwKLSAg
ICBtYWNybyhpc1NldCkgXAotICAgIG1hY3JvKGlzTWFwKSBcCi0gICAgbWFjcm8ocmVnRXhwQ3Jl
YXRlKSBcCi0gICAgbWFjcm8oU2V0SXRlcmF0b3IpIFwKLSAgICBtYWNybyhzZXRJdGVyYXRvck5l
eHQpIFwKLSAgICBtYWNybyhyZXBsYWNlVXNpbmdSZWdFeHApIFwKLSAgICBtYWNybyhyZXBsYWNl
VXNpbmdTdHJpbmdTZWFyY2gpIFwKLSAgICBtYWNybyhNYXBJdGVyYXRvcikgXAotICAgIG1hY3Jv
KG1hcEl0ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCi0gICAg
bWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRl
cikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVn
RXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxp
bmVHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1NvdXJjZUdldHRlcikgXAotICAgIG1h
Y3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmlj
b2RlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAot
ICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFz
dCkgXAotICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFzdCkgXAotICAgIG1hY3JvKHJlZ0V4cFRlc3RG
YXN0KSBcCi0gICAgbWFjcm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5hbCkgXAotICAgIG1hY3JvKHN0
cmluZ1NwbGl0RmFzdCkgXAotICAgIG1hY3JvKHN0cmluZ1N1YnN0ckludGVybmFsKSBcCi0KIG5h
bWVzcGFjZSBKU0MgewogICAgIAogICAgIGNsYXNzIEJ1aWx0aW5OYW1lczsKQEAgLTQ4NCwxMCAr
MzU3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTQ19DT01NT05fSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9H
TE9CQUwpCiAjdW5kZWYgSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUk9QRVJUWV9OQU1FX0dMT0JB
TAogCi0jZGVmaW5lIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1F
X0dMT0JBTChuYW1lKSBjb25zdCBJZGVudGlmaWVyIG5hbWUjI1ByaXZhdGVOYW1lOwotICAgICAg
ICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKEpTQ19J
REVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTCkKLSN1bmRlZiBK
U0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfUFJPUEVSVFlfTkFNRV9HTE9CQUwKLQogI2Rl
ZmluZSBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfV0VMTF9LTk9XTl9TWU1CT0xfR0xP
QkFMKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbmFtZSMjU3ltYm9sOwogICAgICAgICBKU0NfQ09N
TU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChKU0NfSURFTlRJ
RklFUl9ERUNMQVJFX1BSSVZBVEVfV0VMTF9LTk9XTl9TWU1CT0xfR0xPQkFMKQogI3VuZGVmIEpT
Q19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmlu
ZGV4IGU1NDQzMTBmYjIzZGUyZTI5Njg5ZmQ3NmVlN2Y3OTc2ZDI0NDE3MjIuLmE2ZWNmZDI4NGIx
MDFjM2FjMDAxZjY4MmY4ODhkZWQxOTc2Nzg0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMjUsNyArMjUsOSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCisKICNpbmNs
dWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ2xvbmVkQXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiQ29kZVByb2ZpbGluZy5oIgpAQCAtNzE3LDcgKzcxOSw3IEBAIFNMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9zYXZlKQogICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBnZW5lcmF0b3IgPSBPUCgx
KS5qc1ZhbHVlKCk7CiAgICAgR2VuZXJhdG9yRnJhbWUqIGZyYW1lID0gbnVsbHB0cjsKLSAgICBK
U1ZhbHVlIHZhbHVlID0gZ2VuZXJhdG9yLmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Z2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdlbmVyYXRv
ci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRv
ckZyYW1lUHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKICAgICAgICAg
ZnJhbWUgPSBqc0Nhc3Q8R2VuZXJhdG9yRnJhbWUqPih2YWx1ZSk7CiAgICAgZWxzZSB7CkBAIC03
MjUsNyArNzI3LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3NhdmUpCiAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1NDUKICAgICAgICAg
ZnJhbWUgPSBHZW5lcmF0b3JGcmFtZTo6Y3JlYXRlKGV4ZWMtPnZtKCksICBleGVjLT5jb2RlQmxv
Y2soKS0+bnVtQ2FsbGVlTG9jYWxzKCkpOwogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChn
ZW5lcmF0b3IsIHRydWUsIFB1dFByb3BlcnR5U2xvdDo6UHV0QnlJZCk7Ci0gICAgICAgIGFzT2Jq
ZWN0KGdlbmVyYXRvciktPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5wdXQoYXNPYmplY3QoZ2Vu
ZXJhdG9yKSwgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0
ZU5hbWUsIGZyYW1lLCBzbG90KTsKKyAgICAgICAgYXNPYmplY3QoZ2VuZXJhdG9yKS0+bWV0aG9k
VGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0b3IpLCBleGVjLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSgp
LCBmcmFtZSwgc2xvdCk7CiAgICAgfQogICAgIHVuc2lnbmVkIGxpdmVDYWxsZWVMb2NhbHNJbmRl
eCA9IHBjWzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+c2F2ZShleGVjLCBleGVjLT5j
b2RlQmxvY2soKS0+bGl2ZUNhbGxlZUxvY2Fsc0F0WWllbGQobGl2ZUNhbGxlZUxvY2Fsc0luZGV4
KSk7CkBAIC03MzYsNyArNzM4LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Jlc3VtZSkK
IHsKICAgICBCRUdJTigpOwogICAgIEpTVmFsdWUgZ2VuZXJhdG9yID0gT1AoMSkuanNWYWx1ZSgp
OwotICAgIEdlbmVyYXRvckZyYW1lKiBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0b3JGcmFtZSo+KGdl
bmVyYXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZyYW1lUHJp
dmF0ZU5hbWUpKTsKKyAgICBHZW5lcmF0b3JGcmFtZSogZnJhbWUgPSBqc0Nhc3Q8R2VuZXJhdG9y
RnJhbWUqPihnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCkpKTsKICAgICB1bnNpZ25lZCBsaXZl
Q2FsbGVlTG9jYWxzSW5kZXggPSBwY1syXS51LnVuc2lnbmVkVmFsdWU7CiAgICAgZnJhbWUtPnJl
c3VtZShleGVjLCBleGVjLT5jb2RlQmxvY2soKS0+bGl2ZUNhbGxlZUxvY2Fsc0F0WWllbGQobGl2
ZUNhbGxlZUxvY2Fsc0luZGV4KSk7CiAgICAgRU5EKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCA0ODM4OWNkM2Iy
NTRiOGEzOWVjMTA1MTg1MWE5Y2M1NGViNzljY2U5Li4zYTgwNTAwZjhmZGUxYzRmNzUwZTg3MGI5
YzBhMjY4MTA4YmU3OGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDE1IEFuZHkgVmFuV2Fnb25lciAodGhldGFsZWNyYWZ0ZXJAZ21haWwuY29tKQor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKaW5k
ZXggZTFkZDNlNDRkZjRhNGUxMjlkMDFiOGRjOTk5ZTg2NjlmOTI2NjkxOC4uZGU1MDlmNTM5YzIx
MGQxNjhhNzQxMjFlYmViOWM0NDIxZjc1MGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1aWx0
aW5OYW1lcy5oIgogI2luY2x1ZGUgIkRhdGVDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkVycm9y
LmgiCiAjaW5jbHVkZSAiSW50bERhdGVUaW1lRm9ybWF0LmgiCkBAIC0xMTYsNyArMTE3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVH
ZXR0ZXJGb3JtYXQoRXhlY1N0YXRlKgogICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3Zp
ZGUgY29tcGF0aWJpbGl0eSB3aXRoIEVDTUEtNDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAg
ICBpZiAoIWR0ZikKLSAgICAgICAgZHRmID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3Jt
YXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5h
bWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgZHRmID0ganNE
eW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0
YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3Rp
dHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgLy8gMi4gUmV0dXJuSWZBYnJ1cHQoZHRm
KS4KICAgICBpZiAoIWR0ZikKQEAgLTE1Myw3ICsxNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMo
RXhlYwogICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3
aXRoIEVDTUEtNDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIWRhdGVUaW1lRm9y
bWF0KQotICAgICAgICBkYXRlVGltZUZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1l
Rm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVy
dHlOYW1lcy0+aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIGRhdGVU
aW1lRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhp
c1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFkYXRl
VGltZUZvcm1hdCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJv
cihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5yZXNv
bHZlZE9wdGlvbnMgY2FsbGVkIG9uIHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxp
emVkIGFzIGEgRGF0ZVRpbWVGb3JtYXQiKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAw
YTVkNTYzMTZkNTZhYjVhMDg1ZTY0ODViNTExNzg2N2Y5Zjk3ODdhLi5mZTJjOWRiZjZmZDk0MmJj
YTFiNWEwNTQ3Njg1MjViYWI3NmEyOTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyICh0aGV0
YWxlY3JhZnRlckBnbWFpbC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw2ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1l
cy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSW50bE51bWJlckZvcm1hdC5oIgog
I2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgpAQCAtMTA1LDcgKzEwNyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1h
dChFeGVjU3RhdGUqIHN0CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21w
YXRpYmlsaXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICgh
bmYpCi0gICAgICAgIG5mID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUt
PnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1
YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIG5mID0ganNEeW5hbWljQ2FzdDxJ
bnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZt
KCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZh
dGVOYW1lKCkpKTsKIAogICAgIGlmICghbmYpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiSW50bC5OdW1iZXJGb3JtYXQu
cHJvdG90eXBlLmZvcm1hdCBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5p
dGlhbGl6ZWQgYXMgYSBOdW1iZXJGb3JtYXQiKSkpOwpAQCAtMTQxLDcgKzE0Myw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNSZXNv
bHZlZE9wdGlvbnMoRXhlY1N0CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBj
b21wYXRpYmlsaXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlm
ICghbnVtYmVyRm9ybWF0KQotICAgICAgICBudW1iZXJGb3JtYXQgPSBqc0R5bmFtaWNDYXN0PElu
dGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0o
KS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAg
ICAgbnVtYmVyRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUt
PnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCkpKTsKIAogICAgIGlmICgh
bnVtYmVyRm9ybWF0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVy
cm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5yZXNv
bHZlZE9wdGlvbnMgY2FsbGVkIG9uIHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxp
emVkIGFzIGEgTnVtYmVyRm9ybWF0IikpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCmluZGV4IDEyOWQ5ODU1MzhmNWI4ODJjMDBjZDlk
Y2YwMzQ3M2IwN2JlYzY0YzguLmUzYmZmMzg3N2IwOGYxZDk2OWM3MzFlZjRiMTMyN2RmZTY0OTRi
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElu
bGluZXMuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtl
IFN1enVraSA8eXVzdWtlLnN1enVraUBzc2xhYi5pY3Mua2Vpby5hYy5qcD4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTlRMKQog
CisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSW50bE9iamVjdC5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ5LDcgKzUxLDcgQEAgSlNWYWx1ZSBjb25zdHJ1Y3RJ
bnRsSW5zdGFuY2VXaXRoV29ya2Fyb3VuZEZvckxlZ2FjeUludGxDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUmIHMKICAgICAgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5h
bWUsIGluc3RhbmNlKTsKKyAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVO
YW1lKCksIGluc3RhbmNlKTsKICAgICAgICAgICAgIHJldHVybiB0aGlzT2JqZWN0OwogICAgICAg
ICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJ
dGVyYXRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMTA1Yjg3ZjhiYjhi
MjNiMGUyYjE2ZjM5OTVhMDEzZTc1NmVhZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0
ZXJhdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKLQotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVz
LmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5s
aW5lcy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLWNvbnN0IENsYXNzSW5mbyBKU0FycmF5SXRlcmF0b3I6OnNfaW5mbyA9IHsgIkFycmF5IEl0
ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FycmF5SXRl
cmF0b3IpIH07Ci0KLXZvaWQgSlNBcnJheUl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpTT2JqZWN0KiBpdGVy
YXRlZE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotCi0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lLCBpdGVyYXRlZE9iamVjdCk7Ci0gICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5h
bWUsIGpzTnVtYmVyKDApKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmFy
cmF5SXRlcmF0aW9uS2luZFByaXZhdGVOYW1lLCBqc051bWJlcihraW5kKSk7Ci19Ci0KLUFycmF5
SXRlcmF0aW9uS2luZCBKU0FycmF5SXRlcmF0b3I6OmtpbmQoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAotewotICAgIEpTVmFsdWUga2luZFZhbHVlID0gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMt
PnZtKCkucHJvcGVydHlOYW1lcy0+YXJyYXlJdGVyYXRpb25LaW5kUHJpdmF0ZU5hbWUpOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxBcnJheUl0ZXJhdGlvbktpbmQ+KGtpbmRWYWx1ZS5hc0ludDMy
KCkpOwotfQotCi1KU1ZhbHVlIEpTQXJyYXlJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1ZShFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdldERpcmVjdChleGVjLT52bSgpLCBleGVj
LT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkT2JqZWN0UHJpdmF0ZU5hbWUpOwotfQotCi0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVy
YXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNjZiZDJlNTM1MmJhMjE1OTM2NDI3MWVj
YWJiYWY4MGUxNTM2M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTQXJyYXlJdGVyYXRvcl9oCi0jZGVmaW5lIEpT
QXJyYXlJdGVyYXRvcl9oCi0KLSNpbmNsdWRlICJKU09iamVjdC5oIgotCi1uYW1lc3BhY2UgSlND
IHsKLQotZW51bSBBcnJheUl0ZXJhdGlvbktpbmQgOiB1aW50MzJfdCB7Ci0gICAgQXJyYXlJdGVy
YXRlS2V5LAotICAgIEFycmF5SXRlcmF0ZVZhbHVlLAotICAgIEFycmF5SXRlcmF0ZUtleVZhbHVl
Ci19OwotCi1jbGFzcyBKU0FycmF5SXRlcmF0b3IgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0KLSAgICBERUNM
QVJFX0VYUE9SVF9JTkZPOwotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQXJyYXlJdGVyYXRvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBK
U09iamVjdCogaXRlcmF0ZWRPYmplY3QpCi0gICAgewotICAgICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwotICAgICAgICBKU0FycmF5SXRlcmF0b3IqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8SlNBcnJheUl0ZXJhdG9yPih2bS5oZWFwKSkgSlNBcnJheUl0ZXJhdG9yKHZt
LCBzdHJ1Y3R1cmUpOwotICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIHN0cnVj
dHVyZS0+Z2xvYmFsT2JqZWN0KCksIGtpbmQsIGl0ZXJhdGVkT2JqZWN0KTsKLSAgICAgICAgcmV0
dXJuIGluc3RhbmNlOwotICAgIH0KLQotICAgIEFycmF5SXRlcmF0aW9uS2luZCBraW5kKEV4ZWNT
dGF0ZSopIGNvbnN0OwotICAgIEpTVmFsdWUgaXRlcmF0ZWRWYWx1ZShFeGVjU3RhdGUqKSBjb25z
dDsKLSAgICBKU0FycmF5SXRlcmF0b3IqIGNsb25lKEV4ZWNTdGF0ZSopOwotCi0gICAgdXNpbmcg
SlNOb25GaW5hbE9iamVjdDo6YXJyYXlTdG9yYWdlT3JOdWxsOwotcHJpdmF0ZToKLSAgICBKU0Fy
cmF5SXRlcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCosIEFycmF5SXRlcmF0aW9uS2luZCwgSlNPYmplY3QqIGl0ZXJh
dGVkT2JqZWN0KTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vICFkZWZpbmVkKEpTQXJyYXlJdGVyYXRv
cl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5k
ZXggNmViMDg5MjEzN2ZkODMxNDJiZDYwZTgxMWM0NTI4MGQ1MDcwY2UwMS4uY2NjM2IwNWQ3Nzll
MDg2OWQ0Yjk3MDJmYmNjOTlkZDhiOGIzM2M5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEpTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzX2gKICNkZWZpbmUgSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXNfaAogCisjaW5jbHVkZSAiQnVpbHRpbk5h
bWVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJdGVyYXRvck9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCkBAIC01Miw3ICs1Myw3IEBAIHZvaWQgSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPkJZVEVTX1BFUl9FTEVNRU5ULCBqc051bWJlcihWaWV3Q2xhc3M6OmVsZW1l
bnRTaXplKSwgRG9udEVudW0gfCBSZWFkT25seSB8IERvbnREZWxldGUpOwogCiAgICAgaWYgKHBy
aXZhdGVBbGxvY2F0b3IpCi0gICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFt
ZSwgcHJpdmF0ZUFsbG9jYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwor
ICAgICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWxsb2NhdGVUeXBlZEFycmF5UHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUFsbG9jYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaAppbmRleCA0ZjNiOGVjN2I0OTEyNDI1ZTA0MjM2MTE0
YmUzMmU2ZjY0OGFhNDkwLi4wYjAyM2Q4MmQ5Y2E2NDI2ZDliN2YwODVmNGQ4MmE4ZTI0YzdjYThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhl
bHBlcnMuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKLSNpbmNsdWRl
ICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUg
IkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDQwYTky
ZmM1YTExZGNkNDRhZWEyOTM0YTUzNGJlODk4MjRjODk2NWEuLmFiMDE5Y2E4N2MyYzIxYmEwNTY3
ZmY0MmZkMzVlN2MwY2RhYjI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5j
bHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKQEAgLTQyNiw3ICs0MjUsNyBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICAgICAgICAgIGluaXQuc2V0
UHJvdG90eXBlKEpTICMjIHR5cGUgIyMgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZShpbml0LnZtLCBp
bml0Lmdsb2JhbCwgSlMgIyMgdHlwZSAjIyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0Lmdsb2JhbC0+bV90eXBlZEFycmF5UHJvdG8uZ2V0
KGluaXQuZ2xvYmFsKSkpKTsgXAogICAgICAgICAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoSlMgIyMg
dHlwZSAjIyBBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0
LnByb3RvdHlwZSkpOyBcCiAgICAgICAgICAgICBpbml0LnNldENvbnN0cnVjdG9yKEpTICMjIHR5
cGUgIyMgQXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAj
IyB0eXBlICMjIEFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0
Lmdsb2JhbCwgaW5pdC5nbG9iYWwtPm1fdHlwZWRBcnJheVN1cGVyQ29uc3RydWN0b3IuZ2V0KGlu
aXQuZ2xvYmFsKSksIGluaXQucHJvdG90eXBlLCBBU0NJSUxpdGVyYWwoI3R5cGUgIkFycmF5Iiks
IHR5cGVkQXJyYXlDb25zdHJ1Y3RvckFsbG9jYXRlICMjIHR5cGUgIyMgQXJyYXlDb2RlR2VuZXJh
dG9yKGluaXQudm0pKSk7IFwKLSAgICAgICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbihpbml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPnR5cGUgIyMgQXJy
YXlQcml2YXRlTmFtZSwgaW5pdC5jb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCisgICAgICAgICAg
ICBpbml0Lmdsb2JhbC0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oaW5pdC52bSwgaW5pdC52
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBlICMjIEFycmF5UHJpdmF0ZU5hbWUo
KSwgaW5pdC5jb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCiAgICAgICAgIH0pOwogICAgIEZPUl9F
QUNIX1RZUEVEX0FSUkFZX1RZUEVfRVhDTFVESU5HX0RBVEFfVklFVyhJTklUX1RZUEVEX0FSUkFZ
X0xBVEVSKQogI3VuZGVmIElOSVRfVFlQRURfQVJSQVlfTEFURVIKQEAgLTYxOSw4ICs2MTgsOCBA
QCBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5SYW5nZUVycm9yLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rv
ci5nZXQoKSwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJyb3IsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCks
IERvbnRFbnVtKTsKIAotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3IsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3Rv
ciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQ
cml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5BcnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAogI2RlZmluZSBQVVRfQ09O
U1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5h
bWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yLCBE
b250RW51bSk7IFwKQEAgLTY1Myw4ICs2NTIsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAog
ICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsK
IAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7Ci0g
ICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0xlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1
aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5l
cmF0b3Iodm0pLCB0aGlzKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlM
ZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5
cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29u
c3RydWN0b3IpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQgPSBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1By
aXZhdGVGdW5jU29ydCk7CkBAIC02NjgsMTMgKzY2NSw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3Ry
dWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkgPSBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBl
bmRNZW1jcHkpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQ29uY2F0U2xvd1BhdGggPSBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBlQ29uY2F0
U2xvd1BhdGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CiAKLSAgICBKU09iamVjdCogYXJyYXlJ
dGVyYXRvclByb3RvdHlwZSA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhp
cywgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0
ZXJhdG9yUHJvdG90eXBlLmdldCgpKSk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNDcmVh
dGVBcnJheUl0ZXJhdG9yID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBh
cnJheVByb3RvdHlwZUNyZWF0ZUFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKTsKLSAgICBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0b3ItPnB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBl
KTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JWYWx1ZU5leHQgPSBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5
cGVBcnJheUl0ZXJhdG9yVmFsdWVOZXh0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIEpT
RnVuY3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvcktleU5leHQgPSBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJh
dG9yS2V5TmV4dENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0FycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5VmFs
dWVOZXh0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotCiAgICAgSlNPYmplY3QqIHJlZ0V4cFBy
b3RvRmxhZ3NHZXR0ZXJPYmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90
eXBlLmdldCgpLCB2bS5wcm9wZXJ0eU5hbWVzLT5mbGFncyk7CiAgICAgSlNPYmplY3QqIHJlZ0V4
cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0ID0gZ2V0R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFBy
b3RvdHlwZS5nZXQoKSwgdm0ucHJvcGVydHlOYW1lcy0+Z2xvYmFsKTsKICAgICBtX3JlZ0V4cFBy
b3RvR2xvYmFsR2V0dGVyLnNldCh2bSwgdGhpcywgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmpl
Y3QpOwpAQCAtNjg5LDcwICs2NzksNjEgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBK
U09iamVjdCogcmVnRXhwU3ltYm9sUmVwbGFjZSA9IGFzT2JqZWN0KG1fcmVnRXhwUHJvdG90eXBl
LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wpLmFzQ2VsbCgp
KTsKICAgICBtX3JlZ0V4cFByb3RvU3ltYm9sUmVwbGFjZS5zZXQodm0sIHRoaXMsIHJlZ0V4cFN5
bWJvbFJlcGxhY2UpOwogCisjZGVmaW5lIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTihu
YW1lLCBjb2RlKSBKU0Z1bmN0aW9uKiBuYW1lICMjIFByaXZhdGVGdW5jdGlvbiA9IEpTRnVuY3Rp
b246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgY29kZSAjIyBDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcyk7CisgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9O
QU1FKENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTikKKyN1bmRlZiBDUkVBVEVfUFJJVkFU
RV9HTE9CQUxfRlVOQ1RJT04KKworICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBl
ID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUu
Z2V0KCkpKTsKKyAgICBjcmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZUZ1bmN0aW9uLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYXJyYXlJdGVyYXRvclByb3RvdHlw
ZSk7CisKKwogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CisjZGVm
aW5lIElOSVRfUFJJVkFURV9HTE9CQUwobmFtZSwgY29kZSkgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUgIyMgUHJpdmF0ZU5hbWUoKSwgbmFt
ZSAjIyBQcml2YXRlRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1F
KElOSVRfUFJJVkFURV9HTE9CQUwpCisjdW5kZWYgSU5JVF9QUklWQVRFX0dMT0JBTAogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjppbmZpbml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVk
S2V5d29yZCwganNVbmRlZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+b3duRW51bWVy
YWJsZVByb3BlcnR5S2V5c1ByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCBvd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+Z2V0VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNHZXRUZW1w
bGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+ZW5xdWV1ZUpvYlByaXZhdGVOYW1l
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+RXJyb3JQcml2YXRlTmFtZSwgbV9lcnJvckNvbnN0cnVj
dG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5SYW5nZUVycm9yUHJpdmF0ZU5hbWUs
IG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5U
eXBlRXJyb3JQcml2YXRlTmFtZSwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lLCBwcml2YXRlRnVu
Y1R5cGVkQXJyYXlMZW5ndGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlHZXRP
cmlnaW5hbENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9y
aWdpbmFsQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlTb3J0
UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmlzQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lzQm91bmRGdW5j
dGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uUHJp
dmF0ZU5hbWUsIHByaXZhdGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5pbnN0YW5jZU9mUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSW5zdGFuY2VP
ZiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QnVpbHRpbkxvZ1ByaXZhdGVOYW1lLCBidWlsdGlu
TG9nLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OdW1iZXJQcml2YXRlTmFtZSwgbnVtYmVyQ29u
c3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlJlZ0V4cFByaXZhdGVOYW1lLCBtX3Jl
Z0V4cENvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5TdHJpbmdQcml2
YXRlTmFtZSwgc3RyaW5nQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmFic1By
aXZhdGVOYW1lLCBwcml2YXRlRnVuY0FicywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Zmxvb3JQ
cml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNGbG9vciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHJ1
bmNQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUcnVuYywgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
aXNGaW5pdGVQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0Zpbml0ZSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+aXNOYU5Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc05hTiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+UHJvbWlzZVByaXZhdGVOYW1lLCBwcm9taXNlQ29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPlJlZmxlY3RQcml2YXRlTmFtZSwgcmVmbGVjdE9iamVjdCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+SW50ZXJuYWxQcm9taXNlUHJpdmF0ZU5hbWUsIGludGVybmFs
UHJvbWlzZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0K
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlcGVhdENoYXJh
Y3RlclByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygp
LCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5yZXBlYXRTbG93UGF0aFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlUmVwZWF0U2xvd1BhdGhD
b2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnJlcGVhdENoYXJhY3RlcnNTbG93UGF0aFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlUmVwZWF0Q2hhcmFjdGVy
c1Nsb3dQYXRoQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmlzU2V0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3Ry
aW5nKCksIHByaXZhdGVGdW5jSXNTZXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5TZXRJdGVy
YXRvclByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygp
LCBwcml2YXRlRnVuY1NldEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+c2V0SXRl
cmF0b3JOZXh0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+aXNNYXBQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgcHJpdmF0ZUZ1bmNJc01hcCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXlQ
cml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3Rvci0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5pc0FycmF5KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheUNvbnN0cnVjdG9y
UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNBcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5jb25jYXRNZW1jcHlQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNDb25jYXRNZW1j
cHksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmFwcGVuZE1lbWNweVByaXZhdGVOYW1lLCBwcml2
YXRlRnVuY0FwcGVuZE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkub3duRW51bWVyYWJsZVByb3BlcnR5S2V5c1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVjdFBy
aXZhdGVOYW1lKCksIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVucXVldWVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuRXJyb3JQcml2YXRlTmFtZSgpLCBtX2Vycm9y
Q29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LlJhbmdlRXJyb3JQcml2YXRlTmFtZSgpLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuVHlwZUVycm9yUHJpdmF0ZU5h
bWUoKSwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkudHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVG
dW5jVHlwZWRBcnJheUxlbmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkudHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRl
RnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lKCksIHByaXZhdGVG
dW5jVHlwZWRBcnJheVNvcnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmlzQm91bmRGdW5jdGlvblByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9u
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNJbnN0YW5jZUJvdW5k
RnVuY3Rpb25Qcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlv
biwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW5zdGFuY2VPZlByaXZh
dGVOYW1lKCksIHByaXZhdGVGdW5jSW5zdGFuY2VPZiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuQnVpbHRpbkxvZ1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5Mb2csIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk51bWJlclByaXZhdGVOYW1lKCksIG51
bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5S
ZWdFeHBQcml2YXRlTmFtZSgpLCBtX3JlZ0V4cENvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5TdHJpbmdQcml2YXRlTmFtZSgpLCBzdHJpbmdD
b25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWJzUHJp
dmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBYnMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmZsb29yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNGbG9vciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudHJ1bmNQcml2YXRlTmFtZSgpLCBwcml2YXRl
RnVuY1RydW5jLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0Zpbml0
ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmlzTmFOUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc05hTiwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUHJvbWlzZVByaXZhdGVOYW1l
KCksIHByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuUmVmbGVjdFByaXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkludGVybmFsUHJvbWlzZVByaXZhdGVOYW1lKCksIGlu
dGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlcGVhdENoYXJhY3RlclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rlciks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzU2V0UHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJ
c1NldCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlNldEl0ZXJhdG9y
UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwg
cHJpdmF0ZUZ1bmNTZXRJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnNldEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3JOZXh0KSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNNYXBQcml2YXRlTmFtZSgpLCBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzTWFwKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheVByaXZhdGVOYW1l
KCksIGFycmF5Q29uc3RydWN0b3ItPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNB
cnJheSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQXJyYXlDb25z
dHJ1Y3RvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNBcnJheUNvbnN0cnVjdG9yLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb25jYXRNZW1jcHlQcml2YXRlTmFt
ZSgpLCBwcml2YXRlRnVuY0NvbmNhdE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuYXBwZW5kTWVtY3B5UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcHBlbmRN
ZW1jcHksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdFNsb3dQ
YXRoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+TWFwSXRlcmF0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvciksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPm1hcEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yTmV4dCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JWYWx1ZU5l
eHRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JWYWx1ZU5leHQsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JLZXlOZXh0UHJp
dmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcnJheUl0ZXJhdG9yS2V5TmV4dCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dFByaXZh
dGVOYW1lKCksIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dCwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlQXJyYXlJdGVyYXRvclByaXZhdGVO
YW1lKCksIHByaXZhdGVGdW5jQ3JlYXRlQXJyYXlJdGVyYXRvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0xlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5j
VG9MZW5ndGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvSW50ZWdl
clByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVG9JbnRlZ2VyLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pc0RpY3Rpb25hcnlQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdElzRGljdGlvbmFyeUNvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuaXNQcm9taXNlUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0lzUHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlz
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZVJlYWN0
aW9uUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBw
cm9taXNlT3BlcmF0aW9uc05ld1Byb21pc2VSZWFjdGlvbkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlz
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZUNhcGFi
aWxpdHlQcml2YXRlTmFtZSgpLCBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCBwcm9taXNlT3BlcmF0aW9uc1RyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZUdlbmVyYXRvcih2
bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQ
cm9taXNlUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCBwcm9taXNlT3BlcmF0aW9uc1JlamVjdFByb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZ1bGZpbGxQcm9taXNlUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNl
T3BlcmF0aW9uc0Z1bGZpbGxQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21p
c2VPcGVyYXRpb25zQ3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zQ29kZUdlbmVyYXRvcih2bSksIHRo
aXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVhY3Rp
b25Kb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IHByb21pc2VPcGVyYXRpb25zUHJvbWlzZVJlYWN0aW9uSm9iQ29kZUdlbmVyYXRvcih2bSksIHRo
aXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzb2x2
ZVRoZW5hYmxlSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1Byb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
Lk1hcEl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAx
LCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLm1hcEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHByaXZhdGVGdW5jTWFwSXRlcmF0b3JO
ZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Qcml2YXRlTmFtZSgpLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3Q6OmNyZWF0ZSh2bSwgdGhpcywgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPk1hcFByaXZhdGVOYW1lLCBtYXBDb25zdHJ1Y3RvciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnZW5lcmF0b3JQcm90b3R5
cGVHZW5lcmF0b3JSZXN1bWVDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk1hcFByaXZhdGVOYW1lKCksIG1hcENvbnN0cnVjdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50aGlzVGltZVZhbHVlUHJp
dmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUaGlzVGltZVZhbHVlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS50aGlzTnVtYmVyVmFsdWVQcml2YXRlTmFtZSgpLCBwcml2YXRl
RnVuY1RoaXNOdW1iZXJWYWx1ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAog
I2lmIEVOQUJMRShJTlRMKQpAQCAtNzYxLDM2ICs3NDIsMzAgQEAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25z
dHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLk51bWJlckZvcm1hdFByaXZhdGVOYW1lKCksIGludGwtPmdldERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyRm9ybWF0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAogI2VuZGlmIC8vIEVOQUJMRShJTlRMKQogCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3Is
IE5vSW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNSZWdFeHBPYmplY3RQcml2
YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVj
SXNSZWdFeHBPYmplY3QsIElzUmVnRXhwT2JqZWN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3BlY2llc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RTcGVjaWVz
Q29uc3RydWN0b3JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc0NvbnN0cnVjdG9yLCBOb0lu
dHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzUmVnRXhw
T2JqZWN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgZXNTcGVjSXNSZWdFeHBPYmplY3QsIElzUmVnRXhwT2JqZWN0SW50cmluc2ljKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUs
IHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJl
Z0V4cFByb3RvR2xvYmFsR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVy
T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0
ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyT2JqZWN0LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b011bHRpbGluZUdldHRlclByaXZhdGVOYW1lLCBy
ZWdFeHBQcm90b011bHRpbGluZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
cmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0
ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVy
UHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJv
dG9Vbmljb2RlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5yZWdFeHBQcm90b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9GbGFn
c0dldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVn
RXhwUHJvdG9HbG9iYWxHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0dsb2JhbEdldHRl
ck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJv
dG9JZ25vcmVDYXNlR2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0
dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQ
cm90b011bHRpbGluZUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0
dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQ
cm90b1NvdXJjZUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvU291cmNlR2V0dGVyT2Jq
ZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b1N0
aWNreUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyT2JqZWN0LCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b1VuaWNvZGVH
ZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBSZWdFeHAucHJvdG90
eXBlIGhlbHBlcnMuCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5yZWdFeHBCdWlsdGluRXhlY1ByaXZhdGVOYW1lLCBidWlsdGluUmVnRXhwRXhlYywgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwQ3JlYXRlUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGVzU3BlY1JlZ0V4cENyZWF0ZSwgTm9JbnRyaW5z
aWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNPYnNlcnZhYmxl
U2lkZUVmZmVjdHNGb3JSZWdFeHBNYXRjaFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0
ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90eXBlSGFzT2JzZXJ2YWJsZVNpZGVFZmZl
Y3RzRm9yUmVnRXhwTWF0Y2hDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4
cFNwbGl0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCByZWdFeHBQcm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdENv
ZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuYWR2YW5jZVN0cmluZ0luZGV4UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRl
QnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdFeHBQcm90b3R5cGVBZHZhbmNlU3RyaW5nSW5kZXhDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnJlZ0V4cEV4ZWNQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIHJlZ0V4cFByb3RvdHlwZVJlZ0V4cEV4ZWNDb2RlR2VuZXJhdG9yKHZtKSwgdGhp
cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cE1hdGNoRmFzdFByaXZhdGVOYW1lLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNN
YXRjaEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBTZWFyY2hGYXN0UHJpdmF0
ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFBy
b3RvRnVuY1NlYXJjaEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBTcGxpdEZh
c3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwg
cmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhw
UHJvdG90eXBlU3ltYm9sUmVwbGFjZVByaXZhdGVOYW1lLCBtX3JlZ0V4cFByb3RvdHlwZS0+Z2V0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5yZXBsYWNlU3ltYm9sKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+cmVnRXhwVGVzdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRl
c3RGYXN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
cmVnRXhwQnVpbHRpbkV4ZWNQcml2YXRlTmFtZSgpLCBidWlsdGluUmVnRXhwRXhlYywgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwQ3JlYXRlUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgZXNTcGVjUmVnRXhw
Q3JlYXRlLCBOb0ludHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnJlZ0V4cE1hdGNoRmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSgp
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1
bmNTZWFyY2hGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVn
RXhwU3BsaXRGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAy
LCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZVByaXZhdGVO
YW1lKCksIG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnJlcGxhY2VTeW1ib2wpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZWdFeHBUZXN0RmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0LCBSZWdFeHBUZXN0RmFzdEludHJp
bnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBT
dHJpbmcucHJvdG90eXBlIGhlbHBlcnMuCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JT
dHJpbmdSZXBsYWNlUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCBzdHJpbmdQcm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdS
ZXBsYWNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5z
dHJpbmdJbmNsdWRlc0ludGVybmFsUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMSwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+c3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ1N1YnN0ckludGVybmFsUHJpdmF0ZU5hbWUs
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdT
dWJzdHJJbnRlcm5hbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0
cmluZ0luY2x1ZGVzSW50ZXJuYWxQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDEsIFN0cmluZygpLCBidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ1NwbGl0RmFzdFByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1By
b3RvRnVuY1NwbGl0RmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnN0cmluZ1N1YnN0ckludGVybmFsUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgIH07CiAgICAgYWRkU3RhdGljR2xvYmFs
cyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9t
aXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmNwcAppbmRleCBhMzI0MDU1MGMwM2E3MTE5MGE5MjAwZDhiNmZmNTc0NGZlOWRjYzUyLi5hYmE3
NWFhMjU4M2M0YzNlNWQzMGY5M2JmMmFhNjA0YTY3OTU4NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZC5jcHAKaW5kZXggZmVmZGVjZGYwM2I2NGU2ZGYzYjQxMDBkNjFiNmE0NDdjZmFmMmQ4Yi4uOGEy
N2Q5MWU3NTU2OTk4YTcyNzllZjgzZmU2NjA4ZDQzNGJjMGUxZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlMKIAogICAgIEpT
VmFsdWUgZGVmZXJyZWQgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAKLSAgICBKU1Zh
bHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlz
ZVByaXZhdGVOYW1lKTsKKyAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwog
ICAgIEFTU0VSVChwcm9taXNlLmluaGVyaXRzKEpTSW50ZXJuYWxQcm9taXNlOjppbmZvKCkpKTsK
ICAgICBKU1ZhbHVlIHJlc29sdmUgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIEpTVmFsdWUgcmVq
ZWN0ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnJlamVjdFByaXZhdGVOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZS5jcHAKaW5kZXggNTZlMmY1YWVmOTIwMTM5MDJmYjJmNzE2YzcyZGI0NTZmYmI2MDFj
Ni4uMDIwMmUxNzljZjQ3M2M4Nzc1MzQxNmRhZWVlNGE3NTgyZGRhZGVhYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCiAKKyNpbmNsdWRlICJCdWls
dGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtNTgsMTAgKzU5LDEwIEBAIEpT
UHJvbWlzZTo6SlNQcm9taXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB2b2lkIEpT
UHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKHZtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VTdGF0
ZVByaXZhdGVOYW1lLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU3RhdHVzOjpQZW5k
aW5nKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZUZ1bGZp
bGxSZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQoKSk7Ci0gICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVqZWN0UmVhY3Rpb25zUHJpdmF0ZU5hbWUsIGpz
VW5kZWZpbmVkKCkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlz
ZVJlc3VsdFByaXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VTdGF0ZVByaXZhdGVOYW1lKCks
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBlbmRpbmcpKSk7CisgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlRnVs
ZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlamVjdFJlYWN0
aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc3VsdFByaXZhdGVOYW1lKCks
IGpzVW5kZWZpbmVkKCkpOwogfQogCiB2b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhlY3V0b3Ip
CkBAIC03OCwxNCArNzksMTQgQEAgdm9pZCBKU1Byb21pc2U6OmluaXRpYWxpemUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHUKIAogYXV0byBKU1By
b21pc2U6OnN0YXR1cyhWTSYgdm0pIGNvbnN0IC0+IFN0YXR1cwogewotICAgIEpTVmFsdWUgdmFs
dWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VTdGF0ZVByaXZhdGVO
YW1lKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlU3RhdGVQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQo
dmFsdWUuaXNVSW50MzIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFN0YXR1cz4odmFsdWUu
YXNVSW50MzIoKSk7CiB9CiAKIEpTVmFsdWUgSlNQcm9taXNlOjpyZXN1bHQoVk0mIHZtKSBjb25z
dAogewotICAgIHJldHVybiBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VS
ZXN1bHRQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc3VsdFByaXZhdGVOYW1lKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCAwYWFkMzcwNzE2MWQ0NGE1ZDVhYjA4MmNmNWYz
MjI3NWJiMDk3MjkyLi42NWQ3MjM4NzZhMDdjYjQxNjFjYjU5Y2U2MjRkYmFmMmFkMGI2MzdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJl
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJy
ZWQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01OSw3ICs1OSw3IEBAIEpTUHJvbWlzZURlZmVycmVkKiBKU1Byb21pc2VEZWZlcnJl
ZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsCiAKICAgICBKU1Zh
bHVlIGRlZmVycmVkID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoZXhlYywgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUgcHJvbWlz
ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJpdmF0ZU5h
bWUpOworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgQVNTRVJU
KHByb21pc2UuaW5oZXJpdHMoSlNQcm9taXNlOjppbmZvKCkpKTsKICAgICBKU1ZhbHVlIHJlc29s
dmUgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
cmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0
KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1l
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJ
dGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJh
dG9yLmNwcAppbmRleCBjNmZlZGU3YWRhZjEwMDVlMTZjMWI3NDRjMjI3ZTA2ZTYzZGZjYmM0Li43
YmZkOGE5YTQ3YjE1ZTY4N2NlOWM2YTczN2I0ZmJiY2FlOTBmNjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgi
CiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxp
bmVzLmgiCkBAIC0zOCwyMyArNDAsMjMgQEAgdm9pZCBKU1N0cmluZ0l0ZXJhdG9yOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIGl0ZXJhdGUKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkp
OwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2
YXRlTmFtZSwgaXRlcmF0ZWRTdHJpbmcpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwganNOdW1iZXIoMCkpOwor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0
ZWRTdHJpbmdQcml2YXRlTmFtZSgpLCBpdGVyYXRlZFN0cmluZyk7CisgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRl
eFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDApKTsKIH0KIAogSlNWYWx1ZSBKU1N0cmluZ0l0ZXJh
dG9yOjppdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4g
Z2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRT
dHJpbmdQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGdldERpcmVjdChleGVjLT52bSgpLCBleGVj
LT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0
ZU5hbWUoKSk7CiB9CiAKIEpTU3RyaW5nSXRlcmF0b3IqIEpTU3RyaW5nSXRlcmF0b3I6OmNsb25l
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTVmFs
dWUgaXRlcmF0ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJh
dGVkU3RyaW5nUHJpdmF0ZU5hbWUpOwotICAgIEpTVmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1l
KTsKKyAgICBKU1ZhbHVlIGl0ZXJhdGVkU3RyaW5nID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lKCkpOworICAg
IEpTVmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lKCkpOwogCiAgICAg
YXV0byBjbG9uZSA9IEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUo
KS0+Z2xvYmFsT2JqZWN0KCktPnN0cmluZ0l0ZXJhdG9yU3RydWN0dXJlKCksIGFzU3RyaW5nKGl0
ZXJhdGVkU3RyaW5nKSk7Ci0gICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwgbmV4dEluZGV4KTsKKyAgICBj
bG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJp
bmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lKCksIG5leHRJbmRleCk7CiAgICAgcmV0dXJu
IGNsb25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90
eXBlLmNwcAppbmRleCA0YjYzMGMyZDdjOWNkMzRhZmM2ZGRhNmZkNmY0MmMyNDNkYzdhYWRhLi5h
N2Y1MTBiYWI0NWZhMTJiN2E2N2VjM2ZmZGRmNTAzNGNlZjU1MWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKQEAgLTc4LDggKzc4LDggQEAg
dm9pZCBNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNOYW1lKCksIG1h
cFByb3RvRnVuY1ZhbHVlcywgRG9udEVudW0sIDApOwogCiAgICAgLy8gUHJpdmF0ZSBnZXQgLyBz
ZXQgb3BlcmF0aW9ucy4KLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5nZXRQcml2YXRlTmFtZSwgbWFwUHJvdG9GdW5jR2V0LCBEb250
RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+c2V0UHJpdmF0ZU5hbWUsIG1hcFByb3RvRnVuY1NldCwgRG9udEVudW0s
IDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByaXZhdGVOYW1lKCksIG1hcFByb3RvRnVuY0dl
dCwgRG9udEVudW0sIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNldFByaXZhdGVOYW1lKCksIG1h
cFByb3RvRnVuY1NldCwgRG9udEVudW0sIDIpOwogCiAgICAgSlNGdW5jdGlvbiogZW50cmllcyA9
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLnN0cmluZygpLCBtYXBQcm90b0Z1
bmNFbnRyaWVzKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwgZW50cmllcywgRG9u
dEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IDA4ZGExZGJmYWQyMjNmNTk1ZDUzZDkyMTVmMTk2YzEzYTUyZjE5
M2UuLjNjMjkzZmJiNjY0ZjU2NjA0OGZiODhjYzM1ZGY2NzJlYjlhMDNkNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPYmplY3RDb25z
dHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVy
Zmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUg
IkVycm9yLmgiCkBAIC05OSwxMCArMTAwLDEwIEBAIHZvaWQgT2JqZWN0Q29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqCiAg
ICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwg
UmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogCi0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Y3JlYXRlUHJpdmF0ZU5h
bWUsIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlLCBEb250RW51bSwgMik7Ci0gICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+ZGVmaW5lUHJv
cGVydHlQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSwgRG9udEVu
dW0sIDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmdldFByb3RvdHlwZU9mUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9y
R2V0UHJvdG90eXBlT2YsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJp
dmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcywgRG9udEVudW0s
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0
cnVjdG9yQ3JlYXRlLCBEb250RW51bSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZGVmaW5lUHJv
cGVydHlQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCBEb250
RW51bSwgMyk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2V0UHJvdG90eXBlT2ZQcml2YXRlTmFtZSgp
LCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mLCBEb250RW51bSwgMSk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZ2V0T3duUHJvcGVydHlOYW1lc1ByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcywgRG9udEVudW0sIDEpOwogfQogCiBKU0Z1bmN0aW9u
KiBPYmplY3RDb25zdHJ1Y3Rvcjo6YWRkRGVmaW5lUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAppbmRleCAwYWMzMjBmMmU4OGNhZGRjOTk1ZGRiMmU3
MGUyYTY2MmJkYmFkYzE2Li4xNzUxMjJmNWEwMWYzM2M1ZmEyNjZhOTY4ZDUzY2Y4NTQ1MmZlZjky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVmbGVjdE9i
amVjdC5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oIgpAQCAtODUsOCArODYsOCBAQCB2b2lkIFJlZmxlY3RPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8o
KSkpOwogCi0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+b3duS2V5c1ByaXZhdGVOYW1lLCByZWZsZWN0T2JqZWN0T3duS2V5cywgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldE93blByb3BlcnR5RGVz
Y3JpcHRvclByaXZhdGVOYW1lLCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMik7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkub3duS2V5c1ByaXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3RPd25LZXlzLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yUHJpdmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5
RGVzY3JpcHRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHksIDIpOwogfQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0Njk5MTgyNDY4ZTkzYzliMzA1YzNiYTRjNDFkMjQ0
MjY5NGIwYjgwLi5hN2JhN2M5MzFjMzA4Y2UzODQwYjdkYmNlMGNmYTUzNTUwMmU0MGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTdHJpbmdQ
cm90b3R5cGUuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ1dHRl
cmZseUlubGluZXMuaCIKICNpbmNsdWRlICJDYWNoZWRDYWxsLmgiCiAjaW5jbHVkZSAiQ29waWVk
U3BhY2VJbmxpbmVzLmgiCkBAIC0xMzcsOCArMTM4LDggQEAgdm9pZCBTdHJpbmdQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHIKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29uY2F0Iiwg
c3RyaW5nUHJvdG9GdW5jQ29uY2F0LCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNJbmRleE9m
LCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImxhc3RJbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIERvbnRFbnVtLCAx
KTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUsIHN0cmluZ1By
b3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCwgRG9udEVudW0sIDIsIFN0cmluZ1Byb3RvdHlwZVJl
cGxhY2VSZWdFeHBJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaFByaXZh
dGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gsIERvbnRFbnVt
LCAyKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJp
dmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBEb250RW51bSwg
MiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cEludHJpbnNpYyk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9G
dW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoLCBEb250RW51bSwgMik7CiAgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNsaWNlIiwgc3RyaW5nUHJvdG9GdW5jU2xp
Y2UsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigic3Vic3RyIiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBEb250RW51bSwgMik7CiAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0cmluZyIsIHN0cmlu
Z1Byb3RvRnVuY1N1YnN0cmluZywgRG9udEVudW0sIDIpOwpAQCAtMTc1LDcgKzE3Niw3IEBAIHZv
aWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTU3RyCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oIm5vcm1hbGl6ZSIsIHN0cmluZ1Byb3RvRnVuY05vcm1hbGl6ZSwgRG9udEVudW0s
IDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvciwgRG9udEVu
dW0sIDApOwogCi0gICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmNoYXJDb2RlQXRQcml2YXRlTmFtZSwgc3RyaW5nUHJv
dG9GdW5jQ2hhckNvZGVBdCwgRG9udEVudW0sIDEsIENoYXJDb2RlQXRJbnRyaW5zaWMpOworICAg
IEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jaGFyQ29kZUF0UHJpdmF0ZU5hbWUoKSwgc3RyaW5n
UHJvdG9GdW5jQ2hhckNvZGVBdCwgRG9udEVudW0sIDEsIENoYXJDb2RlQXRJbnRyaW5zaWMpOwog
CiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIFN0cmlu
Z0NvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281656</attachid>
            <date>2016-06-20 11:13:58 -0700</date>
            <delta_ts>2016-06-20 12:52:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158893-20160620111352.patch</filename>
            <type>text/plain</type>
            <size>123016</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjFlYTQzZDNhN2Y4ZjllODA0MWJmNWMwYzliMGRkMmIzYzNhNTYyLi40YjFlNTFhNjI3ZDJiMWMy
NzE2NzM5OTc2NTE3MzEyZjAxNTI3ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTQgQEAKKzIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0ZSBnbG9i
YWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuIEZpcnN0
IGl0IG1vdmVzIGFsbCB0aGUgYnVpbHRpbiBuYW1lcworICAgICAgICBvdXQgb2YgQ29tbW9uSWRl
bnRpZmllcnMgYW5kIGludG8gQnVpbHRpbk5hbWVzLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAg
YWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBCdWlsdGlucyBkb2VzIG5vdCByZXF1aXJlIHJl
YnVpbGRpbmcKKyAgICAgICAgYWxsIG9mIEphdmFTY3JpcHRDb3JlLiBUaGlzIHBhdGNoIGFsc28g
YWRkcyBhIG5ldyBkZWNvcmF0b3IgdG8gb3VyCisgICAgICAgIGJ1aWx0aW5zIEBwcml2YXRlR2xv
YmFsIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCB0aGUgZnVuY3Rpb24KKyAgICAgICAgb24g
dGhlIGdsYWJvbCBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHRoZSBz
YW1lIGFzCisgICAgICAgIHRoZSBwcml2YXRlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIEFkZGl0aW9uYWxseSwgdGhpcyBwYXRjaCByZW1vdmVzIHRoZSBKU0FycmF5SXRlcmF0b3Iu
aC8uY3BwIGZpbGVzCisgICAgICAgIGFzIHRoZXkgbm8gbG9uZ2VyIGFwcGVhciB0byBiZSB1c2Vk
IGluIGFueSByZWFsIHdheS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2Ny
aXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6CisgICAg
ICAgIChCdWlsdGluc0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6Cisg
ICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAo
Z2VuZXJhdGVfc2VjdGlvbl9mb3JfZ2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKToKKyAg
ICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRl
ci5weToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5OgorICAg
ICAgICAoQnVpbHRpbkZ1bmN0aW9uLl9faW5pdF9fKToKKyAgICAgICAgKEJ1aWx0aW5GdW5jdGlv
bi5mcm9tU3RyaW5nKToKKyAgICAgICAgKiBidWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1
aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3Rv
dHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxPYmplY3QuanM6CisgICAgICAgICog
YnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanM6CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhw
UHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qczoKKyAg
ICAgICAgKiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRl
ZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpleHBlY3RlZEZ1bmN0aW9uRm9y
SWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVt
cGxhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRO
ZXdUYXJnZXRGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChK
U0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJv
d0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRQdXROZXdUYXJnZXRUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dERlcml2ZWRDb25zdHJ1Y3RvclRv
QXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0R2VuZXJhdG9yU3RhdGVDaGFuZ2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0SG9tZU9iamVjdEZvckNhbGxlZSk6
CisgICAgICAgIChKU0M6OmVtaXRQdXRIb21lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RnVuY3Rp
b25Ob2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2Ny
aXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpz
dWJ0eXBlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldElu
dGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6TGV4ZXI8TENoYXI+OjpwYXJzZUlkZW50aWZpZXIpOgorICAgICAgICAo
SlNDOjpMZXhlcjxVQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNl
cjxMZXhlclR5cGU+OjpjcmVhdGVHZW5lcmF0b3JQYXJhbWV0ZXJzKToKKyAgICAgICAgKEpTQzo6
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFyYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHA6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHA6CisgICAgICAgIChK
U0M6OkNvbW1vbklkZW50aWZpZXJzOjpDb21tb25JZGVudGlmaWVycyk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQpOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9y
bWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRs
T2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsSW5zdGFuY2VXaXRo
V29ya2Fyb3VuZEZvckxlZ2FjeUludGxDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9K
U0FycmF5SXRlcmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0
b3I6OmZpbmlzaENyZWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJh
dG9yOjpraW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjppdGVy
YXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5o
OiBSZW1vdmVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpKU0FycmF5SXRlcmF0b3IpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
aW5pdCk6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pT
UHJvbWlzZS5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAoSlNDOjpKU1Byb21pc2U6OnJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHA6CisgICAgICAgIChK
U0M6OkpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRl
cmF0b3I6OmNsb25lKToKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Ok1hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OlJlZmxlY3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorCiAyMDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1v
cmUgdHlwZXMgb2YgSUNzIGlubGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDYzNjU2ZDIyN2U1Mzc4Nzc0Zjk5N2ZhZjQ2ZDFiYWU1OTNjYWM4ZDIuLjIwNzUxZmQ2OWMy
ZThkY2ZiNTRiNjhjNjViNzVhYjJiZTJkZDZhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTY4NSw3ICs2ODUsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNB
cnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNw
cAotICAgIHJ1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1
bmN0aW9uLmNwcAogICAgIHJ1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2Fs
bGVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4NDNlOGNlZThj
MDM3NjI5NWE5MGM0MjA2MjE0NmZiYjk1Li45MWI3YWEzOTk3NDRjMGNkZGY5OGM1OTkxZjI0NWZj
M2M1MDVmZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcxMCw3ICsxNzEw
LDcgQEAKIAkJQTc0REVGOTUxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEYxODJE
OTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwICovOyB9OwogCQlBNzRERUY5NjE4MkQ5
OTE0MDA1MjJDMjIgLyogSlNNYXBJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOTAxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRl
cmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzU3MDZERTExOEEyQkNGMDA1N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJC
Q0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwICovOyB9OwotCQlBNzVFRTlCMjE4
QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRp
bk5hbWVzLmggKi87IH07CisJCUE3NUVFOUIyMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFt
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUVF
OUIwMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0Eg
LyogRXhlY3V0YWJsZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxv
Y2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzY3QjVCNTE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2
N0I1QjMxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNw
cCAqLzsgfTsKIAkJQTc2N0I1QjYxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJD
cmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzY3QjVCNDE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuaCAqLzsgfTsKQEAgLTE3NjYsOCArMTc2Niw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEw
MDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2Vk
Q29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTdCREFFQzgxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFF
QzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9Owog
CQlBN0JEQUVDOTE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0
RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFF
Q0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMg
LyogSlNBcnJheUl0ZXJhdG9yLmNwcCAqLzsgfTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBD
IC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdCREFFQzUxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5o
ICovOyB9OwogCQlBN0JGRjNDMDE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYz
QkYxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdD
MEM0QUMxNjgxMDMwMjAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcw
MTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1Njcmlw
dFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0MwQzRBQTE2N0MwOENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMzk4
Niw4ICszOTg0LDYgQEAKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFj
cm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAv
KiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0g
eGNvZGUubGFuZy5jcHA7IH07CiAJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCREFF
QzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5jcHA7IH07Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBK
U0FycmF5SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJh
eUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5ODY4
OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR0ZpbHRyYXRpb25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0cmF0
aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3QzA4
Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1NjcmlwdFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3QzBDNEFCMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzE3LDggKzU3MTMsNiBAQAogCQkJCTBGMkI2NkJBMTdC
NkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2QkIx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkMx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJCUE3
QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJCUE3
QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4NkZB
OUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4NkZB
OUU5MDE0MkJCQjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNjU3Q0Y0
NTYxOUJGNjY2MjAwNEFDQkYyIC8qIEpTQ2FsbGVlLmNwcCAqLywKQEAgLTc2NjAsNyArNzY1NCw2
IEBACiAJCQkJMEYyQjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Fy
cmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdB
RTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdC
REFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM0MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24u
aCBpbiBIZWFkZXJzICovLApAQCAtOTEwNyw3ICs5MTAwLDYgQEAKIAkJCQkwRjJCNjZFNjE3QjZC
NUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJCNjZFODE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTUzMTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFwc2hv
dEJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBD
IC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3
RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQy
QkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0MEY4QUYwQTUwOEQyMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hl
YWRlci5weQppbmRleCA4OTFiZDNjYjQyNjBhODkxYWNlNTIzMzdjYTYwN2VjNzU3YjFkMGU0Li42
N2IxMWVmOWUzMDBkY2MwZGI1MWQ2OTg0ZGU0MjE0MmFmNjliMGUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21i
aW5lZF9oZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRp
bnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAog
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSwg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykgMjAx
NCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtNjAsNiArNjAsNyBAQCBjbGFzcyBCdWlsdGluc0NvbWJpbmVkSGVhZGVyR2Vu
ZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKICAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChz
ZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX29iamVjdChvYmplY3QpKQogICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKCkpCiAg
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFt
ZV9tYWNybygpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9u
X2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5Db21iaW5lZEhlYWRlclN0YXRpY01hY3Jvcykuc3Vi
c3RpdHV0ZShhcmdzKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRl
cy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFw
cGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0
dXRlKGFyZ3MpKQpAQCAtMTUwLDMgKzE1MSwyMiBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfJShjb2RlTmFtZSlzQ29uc3RydWN0QWJpbGl0eTsiIiIgJSBmdW5jdGlvbgog
CiAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMpIFxcIiAl
IGZ1bmN0aW9uX2FyZ3MpCiAgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisKKyAgICBk
ZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfZ2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKHNl
bGYpOgorICAgICAgICBhcmdzID0geworICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5t
b2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKKyAgICAgICAgfQorCisg
ICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9Q
cmVmaXgpc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShtYWNy
bykgXFwiICUgYXJncykKKyAgICAgICAgZnVuY3Rpb25zID0gZmlsdGVyKGxhbWJkYSBmdW5jdGlv
bjogZnVuY3Rpb24uaXNfZ2xvYmFsX3ByaXZhdGUsIHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25z
KCkpCisgICAgICAgIGZ1bmN0aW9ucy5zb3J0KGtleT1sYW1iZGEgeDogeC5mdW5jdGlvbl9uYW1l
KQorICAgICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICAgICAgZnVuY3Rp
b25fYXJncyA9IHsKKyAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlv
bl9uYW1lLAorICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1h
bmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pLAorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMsICUoY29kZU5hbWUpcykg
XFwiICUgZnVuY3Rpb25fYXJncykKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5CmluZGV4
IGI3MmE5NGJmZTFlMWM4ODE2ZjFjMTVhMzhiM2M3ZmQzNzlkZTZmZTEuLjdkYWEyODlhMjEzMGM2
ZWExZjUwNDZmODMyMTJiODc4YTE3YjRhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5w
eQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2Vu
diBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1LCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkg
b2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19t
b2RlbC5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
X21vZGVsLnB5CmluZGV4IDAyMmE5OGIyYjIxNjE0ZDg0MWFlNWNhNmRiZDUwMTM5NWJhZjcyYzAu
Ljc3YjJiODg1Y2RjYTIxYTlkZmQzNzJiMzM1ZjFjOTNkMGY0OWY1NjggMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVs
LnB5CkBAIC00MSw4ICs0MSw5IEBAIF9GUkFNRVdPUktfQ09ORklHX01BUCA9IHsKIH0KIAogZnVu
Y3Rpb25IZWFkUmVnRXhwID0gcmUuY29tcGlsZShyIig/OkBbXHd8PV0rXHMqXG4pKmZ1bmN0aW9u
XHMrXHcrXHMqXCguKj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSW50
cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShyIl5AaW50cmluc2ljPShcdyspXHMqXG4iLCByZS5N
VUxUSUxJTkUgfCByZS5ET1RBTEwpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5j
b21waWxlKHIiXkBjb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0
aW9uR2xvYmFsUHJpdmF0ZVJlZ0V4cCA9IHJlLmNvbXBpbGUociIuKl5AZ2xvYmFsUHJpdmF0ZSIs
IHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUu
Y29tcGlsZShyIi4qXkBpbnRyaW5zaWM9KFx3KykiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwp
CitmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGNvbnN0cnVj
dG9yIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxMKQogZnVuY3Rpb25OYW1lUmVnRXhwID0gcmUu
Y29tcGlsZShyImZ1bmN0aW9uXHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFM
TCkKIGZ1bmN0aW9uUGFyYW1ldGVyRmluZGVyID0gcmUuY29tcGlsZShyIl5mdW5jdGlvblxzKyg/
Olx3KylccypcKCgoPzpccypcdyspP1xzKig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxU
SUxJTkUgfCByZS5ET1RBTEwpCiAKQEAgLTk0LDExICs5NSwxMiBAQCBjbGFzcyBCdWlsdGluT2Jq
ZWN0OgogCiAKIGNsYXNzIEJ1aWx0aW5GdW5jdGlvbjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
ZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVy
cywgaW50cmluc2ljKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVu
Y3Rpb25fc291cmNlLCBwYXJhbWV0ZXJzLCBpc19jb25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZh
dGUsIGludHJpbnNpYyk6CiAgICAgICAgIHNlbGYuZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uX25h
bWUKICAgICAgICAgc2VsZi5mdW5jdGlvbl9zb3VyY2UgPSBmdW5jdGlvbl9zb3VyY2UKLSAgICAg
ICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYucGFy
YW1ldGVycyA9IHBhcmFtZXRlcnMKKyAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2Nv
bnN0cnVjdG9yCisgICAgICAgIHNlbGYuaXNfZ2xvYmFsX3ByaXZhdGUgPSBpc19nbG9iYWxfcHJp
dmF0ZQogICAgICAgICBzZWxmLmludHJpbnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9i
amVjdCA9IE5vbmUgICMgU2V0IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMTks
MTEgKzEyMSwxMiBAQCBjbGFzcyBCdWlsdGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25f
bmFtZSA9IGZ1bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAg
ICAgICAgaXNfY29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2go
ZnVuY3Rpb25fc291cmNlKSAhPSBOb25lCisgICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVu
Y3Rpb25HbG9iYWxQcml2YXRlUmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQog
ICAgICAgICBwYXJhbWV0ZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRl
ckZpbmRlci5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAg
aWYgbGVuKHBhcmFtZXRlcnNbMF0pID09IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10K
IAotICAgICAgICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9u
X3NvdXJjZSwgaXNfY29uc3RydWN0b3IsIHBhcmFtZXRlcnMsIGludHJpbnNpYykKKyAgICAgICAg
cmV0dXJuIEJ1aWx0aW5GdW5jdGlvbihmdW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBh
cmFtZXRlcnMsIGlzX2NvbnN0cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKQog
CiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUg
KHNlbGYuZnVuY3Rpb25fbmFtZSwgJywgJy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmpzCmluZGV4IDU2NTk1ZjcxNDFlNTVmNTFmMmUyMDA5NWQ2N2U1OGQ4YWQ5OTIxNWIuLmNi
YWZjYjhhYzM0ZWQ2MDI1NDVlMDQ3ZTdkYmY4NGY5OWY5YjA3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpz
CkBAIC00MSw2ICs0MSw3IEBAIGZ1bmN0aW9uIG5leHQoKQogICAgIHJldHVybiBuZXh0LkBjYWxs
KHRoaXMpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gYXJyYXlJdGVyYXRvclZhbHVl
TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNjMsNiArNjQsNyBAQCBmdW5jdGlvbiBh
cnJheUl0ZXJhdG9yVmFsdWVOZXh0KCkKICAgICByZXR1cm4geyBkb25lLCB2YWx1ZSB9OwogfQog
CitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gYXJyYXlJdGVyYXRvcktleU5leHQoKQogewogICAg
ICJ1c2Ugc3RyaWN0IjsKQEAgLTg1LDYgKzg3LDcgQEAgZnVuY3Rpb24gYXJyYXlJdGVyYXRvcktl
eU5leHQoKQogICAgIHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRl
CiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmlj
dCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90
b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUu
anMKaW5kZXggMDMzM2M3MWI5N2UyYjljNzRmMjdjZjZlOWFlZTY4MzhlMjM5NGY5OS4uYjVkMzIy
MmJjMmZiOWVjY2MwYzJhYzIwYmJhOTMyN2FmYjA2NGU5MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAtMjUsNiArMjUsNyBAQAog
ICovCiAKIEBjb25zdHJ1Y3RvcgorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGNyZWF0ZUFycmF5
SXRlcmF0b3IoaXRlcmF0ZWRPYmplY3QsIGtpbmQsIGl0ZXJhdGlvbkZ1bmN0aW9uKQogewogICAg
IHRoaXMuQGl0ZXJhdGVkT2JqZWN0ID0gaXRlcmF0ZWRPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggYjZmNGUzODY3ZjJiY2VhYjk2
ZDY5MzgwOGNiNDY3Nzg2MmExNjQ1ZS4uMGJiYTEwNjE1NjMyYmEwZDdkYjFlOTc3NTRkYzM3ODYx
YWY2NmEzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsMTEgKzI3LDEzOSBAQAogI2RlZmluZSBCdWlsdGluTmFtZXNfaAogCiAjaW5jbHVk
ZSAiQnVpbHRpblV0aWxzLmgiCisjaW5jbHVkZSAiQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5U
SUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNP
REVfSU5UUklOU0lDX0ZVTkNUSU9OU19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBKU0NfQ09NTU9O
X0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1FKG1hY3JvKSBcCisgICAgbWFj
cm8oaXRlcmF0ZWRPYmplY3QpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dEluZGV4KSBc
CisgICAgbWFjcm8oYXJyYXlJdGVyYXRpb25LaW5kKSBcCisgICAgbWFjcm8oYXJyYXlJdGVyYXRv
ck5leHQpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9ySXNEb25lKSBcCisgICAgbWFjcm8oYXJy
YXlJdGVyYXRvcktpbmQpIFwKKyAgICBtYWNybyhjaGFyQ29kZUF0KSBcCisgICAgbWFjcm8oaXRl
cmF0ZWRTdHJpbmcpIFwKKyAgICBtYWNybyhzdHJpbmdJdGVyYXRvck5leHRJbmRleCkgXAorICAg
IG1hY3JvKHByb21pc2UpIFwKKyAgICBtYWNybyhmdWxmaWxsbWVudEhhbmRsZXIpIFwKKyAgICBt
YWNybyhyZWplY3Rpb25IYW5kbGVyKSBcCisgICAgbWFjcm8oaW5kZXgpIFwKKyAgICBtYWNybyhk
ZWZlcnJlZCkgXAorICAgIG1hY3JvKGNvdW50ZG93bkhvbGRlcikgXAorICAgIG1hY3JvKE9iamVj
dCkgXAorICAgIG1hY3JvKG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpIFwKKyAgICBtYWNybyhO
dW1iZXIpIFwKKyAgICBtYWNybyhBcnJheSkgXAorICAgIG1hY3JvKFN0cmluZykgXAorICAgIG1h
Y3JvKFJlZ0V4cCkgXAorICAgIG1hY3JvKE1hcCkgXAorICAgIG1hY3JvKFByb21pc2UpIFwKKyAg
ICBtYWNybyhSZWZsZWN0KSBcCisgICAgbWFjcm8oSW50ZXJuYWxQcm9taXNlKSBcCisgICAgbWFj
cm8oYWJzKSBcCisgICAgbWFjcm8oZmxvb3IpIFwKKyAgICBtYWNybyh0cnVuYykgXAorICAgIG1h
Y3JvKGlzRmluaXRlKSBcCisgICAgbWFjcm8oaXNOYU4pIFwKKyAgICBtYWNybyhjcmVhdGUpIFwK
KyAgICBtYWNybyhkZWZpbmVQcm9wZXJ0eSkgXAorICAgIG1hY3JvKGdldFByb3RvdHlwZU9mKSBc
CisgICAgbWFjcm8oZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKSBcCisgICAgbWFjcm8oZ2V0T3du
UHJvcGVydHlOYW1lcykgXAorICAgIG1hY3JvKG93bktleXMpIFwKKyAgICBtYWNybyhFcnJvcikg
XAorICAgIG1hY3JvKFJhbmdlRXJyb3IpIFwKKyAgICBtYWNybyhUeXBlRXJyb3IpIFwKKyAgICBt
YWNybyh0eXBlZEFycmF5TGVuZ3RoKSBcCisgICAgbWFjcm8odHlwZWRBcnJheVNvcnQpIFwKKyAg
ICBtYWNybyh0eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKEJ1
aWx0aW5Mb2cpIFwKKyAgICBtYWNybyhob21lT2JqZWN0KSBcCisgICAgbWFjcm8oZ2V0VGVtcGxh
dGVPYmplY3QpIFwKKyAgICBtYWNybyhlbnF1ZXVlSm9iKSBcCisgICAgbWFjcm8oaGFuZGxlcikg
XAorICAgIG1hY3JvKHByb21pc2VTdGF0ZSkgXAorICAgIG1hY3JvKHByb21pc2VGdWxmaWxsUmVh
Y3Rpb25zKSBcCisgICAgbWFjcm8ocHJvbWlzZVJlamVjdFJlYWN0aW9ucykgXAorICAgIG1hY3Jv
KHByb21pc2VSZXN1bHQpIFwKKyAgICBtYWNybyhwdXNoKSBcCisgICAgbWFjcm8ocmVwZWF0Q2hh
cmFjdGVyKSBcCisgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCisgICAgbWFjcm8oc3RhckRlZmF1
bHQpIFwKKyAgICBtYWNybyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pIFwKKyAgICBtYWNybyhn
ZXQpIFwKKyAgICBtYWNybyhzZXQpIFwKKyAgICBtYWNybyhzaGlmdCkgXAorICAgIG1hY3JvKGFs
bG9jYXRlVHlwZWRBcnJheSkgXAorICAgIG1hY3JvKEludDhBcnJheSkgXAorICAgIG1hY3JvKElu
dDE2QXJyYXkpIFwKKyAgICBtYWNybyhJbnQzMkFycmF5KSBcCisgICAgbWFjcm8oVWludDhBcnJh
eSkgXAorICAgIG1hY3JvKFVpbnQ4Q2xhbXBlZEFycmF5KSBcCisgICAgbWFjcm8oVWludDE2QXJy
YXkpIFwKKyAgICBtYWNybyhVaW50MzJBcnJheSkgXAorICAgIG1hY3JvKEZsb2F0MzJBcnJheSkg
XAorICAgIG1hY3JvKEZsb2F0NjRBcnJheSkgXAorICAgIG1hY3JvKGV4ZWMpIFwKKyAgICBtYWNy
byhnZW5lcmF0b3IpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JOZXh0KSBcCisgICAgbWFjcm8oZ2Vu
ZXJhdG9yU3RhdGUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JGcmFtZSkgXAorICAgIG1hY3JvKGdl
bmVyYXRvclZhbHVlKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yVGhpcykgXAorICAgIG1hY3JvKGdl
bmVyYXRvclJlc3VtZU1vZGUpIFwKKyAgICBtYWNybyhDb2xsYXRvcikgXAorICAgIG1hY3JvKERh
dGVUaW1lRm9ybWF0KSBcCisgICAgbWFjcm8oTnVtYmVyRm9ybWF0KSBcCisgICAgbWFjcm8oaW50
bFN1YnN0aXR1dGVWYWx1ZSkgXAorICAgIG1hY3JvKHRoaXNUaW1lVmFsdWUpIFwKKyAgICBtYWNy
byh0aGlzTnVtYmVyVmFsdWUpIFwKKyAgICBtYWNybyhuZXdUYXJnZXRMb2NhbCkgXAorICAgIG1h
Y3JvKGRlcml2ZWRDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAor
ICAgIG1hY3JvKGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAorICAgIG1hY3JvKGluc3RhbmNl
T2YpIFwKKyAgICBtYWNybyhpc0FycmF5KSBcCisgICAgbWFjcm8oaXNBcnJheUNvbnN0cnVjdG9y
KSBcCisgICAgbWFjcm8oaXNDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKGlzUmVnRXhwT2JqZWN0
KSBcCisgICAgbWFjcm8oY29uY2F0TWVtY3B5KSBcCisgICAgbWFjcm8oYXBwZW5kTWVtY3B5KSBc
CisgICAgbWFjcm8ocHJlZGljdEZpbmFsTGVuZ3RoRnJvbUFyZ3VtdW50cykgXAorICAgIG1hY3Jv
KHByaW50KSBcCisgICAgbWFjcm8oaXNTZXQpIFwKKyAgICBtYWNybyhpc01hcCkgXAorICAgIG1h
Y3JvKHJlZ0V4cENyZWF0ZSkgXAorICAgIG1hY3JvKFNldEl0ZXJhdG9yKSBcCisgICAgbWFjcm8o
c2V0SXRlcmF0b3JOZXh0KSBcCisgICAgbWFjcm8ocmVwbGFjZVVzaW5nUmVnRXhwKSBcCisgICAg
bWFjcm8ocmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKSBcCisgICAgbWFjcm8oTWFwSXRlcmF0b3Ip
IFwKKyAgICBtYWNybyhtYXBJdGVyYXRvck5leHQpIFwKKyAgICBtYWNybyhyZWdFeHBCdWlsdGlu
RXhlYykgXAorICAgIG1hY3JvKHJlZ0V4cE1hdGNoRmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFBy
b3RvRmxhZ3NHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b0dsb2JhbEdldHRlcikgXAor
ICAgIG1hY3JvKHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4
cFByb3RvTXVsdGlsaW5lR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9Tb3VyY2VHZXR0
ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b1N0aWNreUdldHRlcikgXAorICAgIG1hY3JvKHJl
Z0V4cFByb3RvVW5pY29kZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvdHlwZVN5bWJv
bFJlcGxhY2UpIFwKKyAgICBtYWNybyhyZWdFeHBSZXBsYWNlRmFzdCkgXAorICAgIG1hY3JvKHJl
Z0V4cFNlYXJjaEZhc3QpIFwKKyAgICBtYWNybyhyZWdFeHBTcGxpdEZhc3QpIFwKKyAgICBtYWNy
byhyZWdFeHBUZXN0RmFzdCkgXAorICAgIG1hY3JvKHN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpIFwK
KyAgICBtYWNybyhzdHJpbmdTcGxpdEZhc3QpIFwKKyAgICBtYWNybyhzdHJpbmdTdWJzdHJJbnRl
cm5hbCkKKworCiAjZGVmaW5lIElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkobmFt
ZSkgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRkKG1fIyNuYW1lIyNQcml2YXRlTmFtZS5pbXBsKCks
ICZtXyMjbmFtZSk7CiAjZGVmaW5lIElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlko
bmFtZSkgbV9wdWJsaWNUb1ByaXZhdGVNYXAuYWRkKG1fIyNuYW1lLmltcGwoKSwgJm1fIyNuYW1l
IyNQcml2YXRlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCmluZGV4IDY5NDYzYzMzNjAyZTI4ZjdkZDQyOWFkMjM0
NmRiMWE3ZTVlZWRkZWUuLjNjMTQwNjg3ZGZjN2UwMGVmZTkxYWU4MGIyYWM2NzZmYTliZjQ4ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90
b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclBy
b3RvdHlwZS5qcwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjUsNiArMjYsNyBAQAogCiAvLyAyNS4zLjMuMyBHZW5lcmF0b3JS
ZXN1bWUgKCBnZW5lcmF0b3IsIHZhbHVlICkKIC8vIDI1LjMuMy40IEdlbmVyYXRvclJlc3VtZUFi
cnVwdChnZW5lcmF0b3IsIGFicnVwdENvbXBsZXRpb24pCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rp
b24gZ2VuZXJhdG9yUmVzdW1lKGdlbmVyYXRvciwgc2VudFZhbHVlLCByZXN1bWVNb2RlKQogewog
ICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9HbG9iYWxPYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xv
YmFsT2JqZWN0LmpzCmluZGV4IDhiYTM0OTA4YWZhNzliYzM2MjIyZGM5ZTE1M2UyOGYyOTJjMjA5
MTAuLjU3NzZhMjI5NmJhYWM4YzU0MTJiNGNlMzVkZjcwODk4MDM5MGM2OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcwpAQCAtMjYsNiArMjYs
NyBAQAogCiAvLyBAaW50ZXJuYWwKIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHRvSW50ZWdl
cih0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMzgsNiArMzksNyBAQCBmdW5jdGlv
biB0b0ludGVnZXIodGFyZ2V0KQogICAgIHJldHVybiBAdHJ1bmMobnVtYmVyVmFsdWUpOwogfQog
CitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9MZW5ndGgodGFyZ2V0KQogewogICAgICJ1c2Ug
c3RyaWN0IjsKQEAgLTQ4LDYgKzUwLDcgQEAgZnVuY3Rpb24gdG9MZW5ndGgodGFyZ2V0KQogICAg
IHJldHVybiBsZW5ndGggPiAwID8gKGxlbmd0aCA8IG1heFNhZmVJbnRlZ2VyID8gbGVuZ3RoIDog
bWF4U2FmZUludGVnZXIpIDogMDsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGlzRGlj
dGlvbmFyeShvYmplY3QpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNTcsMTEgKzYwLDEzIEBA
IGZ1bmN0aW9uIGlzRGljdGlvbmFyeShvYmplY3QpCiAKIC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRv
IGhhdmUgaXQncyBuYW1lIGNoYW5nZWQgdG8gImdldCBbU3ltYm9sLnNwZWNpZXNdIi4KIC8vIHNl
ZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2MworQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIHNwZWNpZXNHZXR0ZXIoKQogewogICAgIHJldHVybiB0aGlzOwog
fQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gc3BlY2llc0NvbnN0cnVjdG9yKG9iaiwgZGVm
YXVsdENvbnN0cnVjdG9yKQogewogICAgIHZhciBjb25zdHJ1Y3RvciA9IG9iai5jb25zdHJ1Y3Rv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3Bl
cmF0aW9ucy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0
aW9ucy5qcwppbmRleCBjNGU1OWJiMDc5M2I5ZTAwYWU3ZDlhMjUxNWEzZGQyZDJiNGIxMjhiLi4x
OTFkYjNmNmFjZjU5YzY4NGFjMzI2ZTI3YzNlM2U5MmQ2M2IwNzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNiAr
MjYsNyBAQAogCiAvLyBAaW50ZXJuYWwKIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGlzUHJv
bWlzZShwcm9taXNlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTMyLDYgKzM0LDcgQEAgZnVu
Y3Rpb24gaXNQcm9taXNlKHByb21pc2UpCiAgICAgcmV0dXJuIEBpc09iamVjdChwcm9taXNlKSAm
JiAhIXByb21pc2UuQHByb21pc2VTdGF0ZTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9u
IG5ld1Byb21pc2VSZWFjdGlvbihjYXBhYmlsaXR5LCBoYW5kbGVyKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKQEAgLTQyLDYgKzQ1LDcgQEAgZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9uKGNhcGFi
aWxpdHksIGhhbmRsZXIpCiAgICAgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIG5l
d1Byb21pc2VDYXBhYmlsaXR5KGNvbnN0cnVjdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAg
LTgwLDYgKzg0LDcgQEAgZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHkoY29uc3RydWN0b3Ip
CiAgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVu
Y3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCBhcmd1bWVudCkKIHsKICAg
ICAidXNlIHN0cmljdCI7CkBAIC04OCw2ICs5Myw3IEBAIGZ1bmN0aW9uIHRyaWdnZXJQcm9taXNl
UmVhY3Rpb25zKHJlYWN0aW9ucywgYXJndW1lbnQpCiAgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9t
aXNlUmVhY3Rpb25Kb2IsIFtyZWFjdGlvbnNbaW5kZXhdLCBhcmd1bWVudF0pOwogfQogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCiB7CiAg
ICAgInVzZSBzdHJpY3QiOwpAQCAtMTAzLDYgKzEwOSw3IEBAIGZ1bmN0aW9uIHJlamVjdFByb21p
c2UocHJvbWlzZSwgcmVhc29uKQogICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlv
bnMsIHJlYXNvbik7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBmdWxmaWxsUHJvbWlz
ZShwcm9taXNlLCB2YWx1ZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xMTgsNiArMTI1LDcg
QEAgZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCiAgICAgQHRyaWdnZXJQ
cm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQog
ZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiB7CiAgICAgInVzZSBz
dHJpY3QiOwpAQCAtMTY0LDYgKzE3Miw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmluZ0Z1bmN0
aW9ucyhwcm9taXNlKQogICAgIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9t
aXNlUmVhY3Rpb25Kb2IocmVhY3Rpb24sIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsK
QEAgLTE4MCw2ICsxODksNyBAQCBmdW5jdGlvbiBwcm9taXNlUmVhY3Rpb25Kb2IocmVhY3Rpb24s
IGFyZ3VtZW50KQogICAgIHJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5AcmVzb2x2ZS5AY2FsbChA
dW5kZWZpbmVkLCByZXN1bHQpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcHJvbWlz
ZVJlc29sdmVUaGVuYWJsZUpvYihwcm9taXNlVG9SZXNvbHZlLCB0aGVuYWJsZSwgdGhlbikKIHsK
ICAgICAidXNlIHN0cmljdCI7CkBAIC0xOTMsNiArMjAzLDcgQEAgZnVuY3Rpb24gcHJvbWlzZVJl
c29sdmVUaGVuYWJsZUpvYihwcm9taXNlVG9SZXNvbHZlLCB0aGVuYWJsZSwgdGhlbikKICAgICB9
CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBpbml0aWFsaXplUHJvbWlzZShleGVjdXRv
cikKIHsKICAgICAidXNlIHN0cmljdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwppbmRleCAyOTU3ZjE0Y2I3Mzk4MGYyNDVmNmQxYzc0
NmRhZmY4MTI3ZTQ5MmRjLi45ZDk0NWE0Y2UzNzJjYmIzYzlmNTAzZjEyZGJmZjE0ZWMxYzU1NjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90
eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5
cGUuanMKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKK0BnbG9iYWxQ
cml2YXRlCiBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBpbmRleCwgdW5pY29k
ZSkKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgQWR2YW5jZVN0cmluZ0luZGV4
IGRlc2NyaWJlZCBpbiBFUzYgMjEuMi41LjIuMy4KQEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24g
YWR2YW5jZVN0cmluZ0luZGV4KHN0cmluZywgaW5kZXgsIHVuaWNvZGUpCiAgICAgcmV0dXJuIGlu
ZGV4ICsgMjsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhw
LCBzdHIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNjAsNiArNjIsNyBAQCBmdW5jdGlvbiBy
ZWdFeHBFeGVjKHJlZ2V4cCwgc3RyKQogICAgIHJldHVybiBidWlsdGluRXhlYy5AY2FsbChyZWdl
eHAsIHN0cik7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBoYXNPYnNlcnZhYmxlU2lk
ZUVmZmVjdHNGb3JSZWdFeHBNYXRjaChyZWdleHApIHsKICAgICAvLyBUaGlzIGlzIGFjY2Vzc2Vk
IGJ5IHRoZSBSZWdFeHBFeGVjIGludGVybmFsIGZ1bmN0aW9uLgogICAgIGxldCByZWdleHBFeGVj
ID0gQHRyeUdldEJ5SWQocmVnZXhwLCAiZXhlYyIpOwpAQCAtMzI2LDYgKzMyOSw3IEBAIGZ1bmN0
aW9uIHNlYXJjaChzdHJBcmcpCiAgICAgcmV0dXJuIHJlc3VsdC5pbmRleDsKIH0KIAorQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0
KHJlZ2V4cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50
ZXJuYWwgZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAs
ICJleGVjIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3Ry
aW5nUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1By
b3RvdHlwZS5qcwppbmRleCA4OTY1MTBjMDQ0ZWVlODg1MjkwZTU1YWIwN2ZhOTk5M2ZiYmQwNmVi
Li5lZmI4NTdiNzNiMGRkMjZiZjVmNmM3ZWVlNDliNjcyMzI4NjQyNDQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKQEAgLTQ2LDYg
KzQ2LDcgQEAgZnVuY3Rpb24gbWF0Y2gocmVnZXhwKQogICAgIHJldHVybiBjcmVhdGVkUmVnRXhw
LkBtYXRjaFN5bWJvbCh0aGlzU3RyaW5nKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9u
IHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAt
ODQsNyArODUsNyBAQCBmdW5jdGlvbiByZXBlYXRTbG93UGF0aChzdHJpbmcsIGNvdW50KQogICAg
IH0KIH0KIAotCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0Q2hhcmFjdGVyc1Nsb3dQ
YXRoKHN0cmluZywgY291bnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMjAyLDYgKzIwMyw3
IEBAIGZ1bmN0aW9uIHBhZEVuZChtYXhMZW5ndGgvKiwgZmlsbFN0cmluZyovKQogICAgIHJldHVy
biBzdHJpbmcgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlKHJlZ2V4cCwg
cmVwbGFjZXIpIHsKICAgICBpZiAocmVwbGFjZXIgIT09IEByZWdFeHBQcm90b3R5cGVTeW1ib2xS
ZXBsYWNlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAppbmRl
eCA0OWJmZjQwY2E3YTY3MmRkNWQ4ZWVhODZiZGVlODBmOTlhY2I0OThmLi4xOTNkMjg5YWM3ZDc0
OTM2NzMwNDE2OTg5YWVjY2Y2NTUzMzAyNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCkBA
IC0yNiw4ICsyNiwxMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5oIgorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJh
dG9yLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0dlbmVyYXRvckZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNQcm9taXNlLmgiCkBAIC0zNiw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jZGVm
aW5lIElOSVRJQUxJWkVfQllURUNPREVfSU5UUklOU0lDX05BTUVTX1RPX1NFVChuYW1lKSBtX2J5
dGVjb2RlSW50cmluc2ljTWFwLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lIyNQcml2YXRlTmFt
ZS5pbXBsKCksICZCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljXyMjbmFtZSk7
CisjZGVmaW5lIElOSVRJQUxJWkVfQllURUNPREVfSU5UUklOU0lDX05BTUVTX1RPX1NFVChuYW1l
KSBtX2J5dGVjb2RlSW50cmluc2ljTWFwLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5uYW1lIyNQcml2YXRlTmFtZSgpLmltcGwoKSwgJkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6
ZW1pdF9pbnRyaW5zaWNfIyNuYW1lKTsKIAogQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeShWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcAppbmRleCAzOTljMmU4NTRiMzRlODhhMjhkODJkMzI1MTc1N2QxYTdjNGU4ZGIyLi45MWY1
Yzc3NDdhZDY1MGJhNWZkMDNjMjQ5YTNlNWQ1MGFjYTE5YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApA
QCAtOTEwLDEyICs5MTAsMTIgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFy
cm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZChTeW1ib2xUYWJsZSoKIAogICAgICAgICBp
ZiAobV9jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFy
cm93RnVuY3Rpb24oKSkgewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJs
ZS0+dGFrZU5leHRTY29wZU9mZnNldCgpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJs
ZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLm5ld1RhcmdldExvY2Fs
UHJpdmF0ZU5hbWUuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7
CisgICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5
LCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFt
ZSgpLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0KSkpOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBpZiAoaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9y
S2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBpc1N1cGVyVXNlZEluSW5uZXJB
cnJvd0Z1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIG9mZnNldCA9IGZ1bmN0aW9uU3ltYm9sVGFi
bGUtPnRha2VOZXh0U2NvcGVPZmZzZXQoTm9Mb2NraW5nTmVjZXNzYXJ5KTsKLSAgICAgICAgICAg
IGZ1bmN0aW9uU3ltYm9sVGFibGUtPnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFt
ZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZS5pbXBsKCksIFN5bWJvbFRhYmxlRW50
cnkoVmFyT2Zmc2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uU3ltYm9sVGFibGUt
PnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5k
ZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShW
YXJPZmZzZXQob2Zmc2V0KSkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuOwpAQCAtOTMw
LDEzICs5MzAsMTMgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RnVu
Y3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZChTeW1ib2xUYWJsZSoKICAgICB9CiAgICAgCiAgICAg
aWYgKG1fY29kZVR5cGUgPT0gRnVuY3Rpb25Db2RlICYmIGlzTmV3VGFyZ2V0VXNlZEluSW5uZXJB
cnJvd0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgYXV0byBhZGRUYXJnZXQgPSBlbnZpcm9ubWVudC5h
ZGQocHJvcGVydHlOYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUpOworICAgICAgICBh
dXRvIGFkZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5h
bWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKICAgICAgICAgYWRkVGFyZ2V0Lml0
ZXJhdG9yLT52YWx1ZS5zZXRJc0NhcHR1cmVkKCk7CiAgICAgICAgIGFkZFRhcmdldC5pdGVyYXRv
ci0+dmFsdWUuc2V0SXNMZXQoKTsKICAgICB9CiAKICAgICBpZiAoaXNDb25zdHJ1Y3RvcigpICYm
IGNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBpc1N1cGVy
VXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXJpdmVkQ29uc3Ry
dWN0b3IgPSBlbnZpcm9ubWVudC5hZGQocHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3Rv
clByaXZhdGVOYW1lKTsKKyAgICAgICAgYXV0byBkZXJpdmVkQ29uc3RydWN0b3IgPSBlbnZpcm9u
bWVudC5hZGQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3Rv
clByaXZhdGVOYW1lKCkpOwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZh
bHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICAgICAgZGVyaXZlZENvbnN0cnVjdG9yLml0ZXJhdG9y
LT52YWx1ZS5zZXRJc0xldCgpOwogICAgIH0KQEAgLTI5NzcsOSArMjk3Nyw5IEBAIFJlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbEV2YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBmdW5jLCBDCiAKIEV4cGVjdGVkRnVuY3Rpb24gQnl0ZWNvZGVHZW5lcmF0b3I6OmV4
cGVjdGVkRnVuY3Rpb25Gb3JJZGVudGlmaWVyKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIp
CiB7Ci0gICAgaWYgKGlkZW50aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0IHx8
IGlkZW50aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0UHJpdmF0ZU5hbWUpCisg
ICAgaWYgKGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLk9iamVjdCB8fCBpZGVudGlmaWVy
ID09IHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpKQog
ICAgICAgICByZXR1cm4gRXhwZWN0T2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgaWYgKGlkZW50aWZp
ZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+QXJyYXkgfHwgaWRlbnRpZmllciA9PSBtX3ZtLT5w
cm9wZXJ0eU5hbWVzLT5BcnJheVByaXZhdGVOYW1lKQorICAgIGlmIChpZGVudGlmaWVyID09IHBy
b3BlcnR5TmFtZXMoKS5BcnJheSB8fCBpZGVudGlmaWVyID09IHByb3BlcnR5TmFtZXMoKS5idWls
dGluTmFtZXMoKS5BcnJheVByaXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBlY3RBcnJh
eUNvbnN0cnVjdG9yOwogICAgIHJldHVybiBOb0V4cGVjdGVkRnVuY3Rpb247CiB9CkBAIC00MDQ1
LDcgKzQwNDUsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBs
YXRlT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgVGFnZ2VkVGVtcAogICAgIH0KIAogICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBnZXRUZW1wbGF0ZU9iamVjdCA9IG51bGxwdHI7Ci0gICAgVmFyaWFibGUg
dmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5h
bWUpOworICAgIFZhcmlhYmxlIHZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lKCkpOwogICAgIGlmIChSZWdpc3Rl
cklEKiBsb2NhbCA9IHZhci5sb2NhbCgpKQogICAgICAgICBnZXRUZW1wbGF0ZU9iamVjdCA9IGVt
aXRNb3ZlKG5ld1RlbXBvcmFyeSgpLCBsb2NhbCk7CiAgICAgZWxzZSB7CkBAIC00MjM1LDE2ICs0
MjM1LDE2IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkVGhpc0Zyb21BcnJvd0Z1
bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkKICAgICAKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0TG9hZE5ld1RhcmdldEZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25t
ZW50KCkKIHsKLSAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5h
bWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUgbmV3VGFyZ2V0
VmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExv
Y2FsUHJpdmF0ZU5hbWUoKSk7CiAKLSAgICByZXR1cm4gZW1pdEdldEZyb21TY29wZShtX25ld1Rh
cmdldFJlZ2lzdGVyLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJv
cGVydHlOYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUpLCBuZXdUYXJnZXRWYXIsIFRo
cm93SWZOb3RGb3VuZCk7CisgICAgcmV0dXJuIGVtaXRHZXRGcm9tU2NvcGUobV9uZXdUYXJnZXRS
ZWdpc3RlciwgZW1pdExvYWRBcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KHByb3BlcnR5
TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpLCBuZXdU
YXJnZXRWYXIsIFRocm93SWZOb3RGb3VuZCk7CiAgICAgCiB9CiAKIFJlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9u
TGV4aWNhbEVudmlyb25tZW50KCkKIHsKLSAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFyID0gdmFy
aWFibGUocHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKTsKLSAg
ICByZXR1cm4gZW1pdEdldEZyb21TY29wZShuZXdUZW1wb3JhcnkoKSwgZW1pdExvYWRBcnJvd0Z1
bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0
b3JQcml2YXRlTmFtZSksIHByb3RvU2NvcGVWYXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgVmFy
aWFibGUgcHJvdG9TY29wZVZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFt
ZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpKTsKKyAgICByZXR1cm4gZW1pdEdl
dEZyb21TY29wZShuZXdUZW1wb3JhcnkoKSwgZW1pdExvYWRBcnJvd0Z1bmN0aW9uTGV4aWNhbEVu
dmlyb25tZW50KHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0
b3JQcml2YXRlTmFtZSgpKSwgcHJvdG9TY29wZVZhciwgVGhyb3dJZk5vdEZvdW5kKTsKIH0KIAog
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVuc3VyZVRoaXMoKQpAQCAtNDI4OCw3ICs0
Mjg4LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dE5ld1RhcmdldFRvQXJyb3dG
dW5jdGlvbkNvbnRleHRTY29wZSgpCiAgICAgaWYgKGlzTmV3VGFyZ2V0VXNlZEluSW5uZXJBcnJv
d0Z1bmN0aW9uKCkpIHsKICAgICAgICAgQVNTRVJUKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhp
Y2FsRW52aXJvbm1lbnRSZWdpc3Rlcik7CiAgICAgICAgIAotICAgICAgICBWYXJpYWJsZSBuZXdU
YXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRl
TmFtZSk7CisgICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5
TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpOwogICAg
ICAgICBlbWl0UHV0VG9TY29wZShtX2Fycm93RnVuY3Rpb25Db250ZXh0TGV4aWNhbEVudmlyb25t
ZW50UmVnaXN0ZXIsIG5ld1RhcmdldFZhciwgbmV3VGFyZ2V0KCksIERvTm90VGhyb3dJZk5vdEZv
dW5kLCBJbml0aWFsaXphdGlvbk1vZGU6OkluaXRpYWxpemF0aW9uKTsKICAgICB9CiB9CkBAIC00
Mjk5LDcgKzQyOTksNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0RGVyaXZlZENv
bnN0cnVjdG9yVG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKICAgICAgICAgaWYgKGlzU3Vw
ZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fYXJy
b3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlcik7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIFZhcmlhYmxlIHByb3RvU2NvcGUgPSB2YXJpYWJsZShwcm9wZXJ0eU5h
bWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgVmFyaWFi
bGUgcHJvdG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5k
ZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpKTsKICAgICAgICAgICAgIGVtaXRQdXRUb1Nj
b3BlKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgcHJv
dG9TY29wZSwgJm1fY2FsbGVlUmVnaXN0ZXIsIERvTm90VGhyb3dJZk5vdEZvdW5kLCBJbml0aWFs
aXphdGlvbk1vZGU6OkluaXRpYWxpemF0aW9uKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ1NjQs
NyArNDU2NCw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGVsZWdhdGVZ
aWVsZChSZWdpc3RlcklEKiBhcmd1bWVudCwgVGhyb3dhYmxlCiB2b2lkIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0R2VuZXJhdG9yU3RhdGVDaGFuZ2UoaW50MzJfdCBzdGF0ZSkKIHsKICAgICBSZWdp
c3RlcklEKiBjb21wbGV0ZWRTdGF0ZSA9IGVtaXRMb2FkKG51bGxwdHIsIGpzTnVtYmVyKHN0YXRl
KSk7Ci0gICAgZW1pdFB1dEJ5SWQoZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgcHJvcGVydHlOYW1lcygp
LmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUsIGNvbXBsZXRlZFN0YXRlKTsKKyAgICBlbWl0UHV0
QnlJZChnZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCku
Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBjb21wbGV0ZWRTdGF0ZSk7CiB9CiAKIHZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JTdGF0ZUxhYmVsKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAy
M2MwMjZiZjJjYzU5YmVhZjFhNjU1MDJhN2Y3ZDljNWRmYzE4ZmI3Li5iNmQwYTM3MmJiOWI2Y2Jh
NWEyOGI2ZGIyZmFhZDY2NjI3MGE2YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xNjEsMTIgKzE2MSwxMiBAQCBz
dGF0aWMgUmVnaXN0ZXJJRCogZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvcikKIHsKICAgICBpZiAoZ2VuZXJhdG9yLmlzRGVyaXZlZENsYXNzQ29udGV4
dCgpIHx8IGdlbmVyYXRvci5pc0Rlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQoKSkgewogICAgICAg
ICBSZWdpc3RlcklEKiBkZXJpdmVkQ29uc3RydWN0b3IgPSBnZW5lcmF0b3IuZW1pdExvYWREZXJp
dmVkQ29uc3RydWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpOwotICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSwgZGVyaXZlZENvbnN0cnVjdG9yLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmhvbWVPYmpl
Y3RQcml2YXRlTmFtZSk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0b3IsIGdlbmVyYXRvci5wcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKCkpOwogICAg
IH0KIAogICAgIFJlZ2lzdGVySUQgY2FsbGVlOwogICAgIGNhbGxlZS5zZXRJbmRleChKU1N0YWNr
OjpDYWxsZWUpOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpLCAmY2FsbGVlLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmhvbWVPYmpl
Y3RQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVp
bHRpbk5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKCkpOwogfQogCiBzdGF0aWMgUmVnaXN0
ZXJJRCogZW1pdFN1cGVyQmFzZUZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
KQpAQCAtNDU3LDcgKzQ1Nyw3IEBAIFJlZ2lzdGVySUQqIE9iamVjdExpdGVyYWxOb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAKIHN0YXRpYyBp
bmxpbmUgdm9pZCBlbWl0UHV0SG9tZU9iamVjdChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBmdW5jdGlvbiwgUmVnaXN0ZXJJRCogaG9tZU9iamVjdCkKIHsKLSAgICBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoZnVuY3Rpb24sIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCku
aG9tZU9iamVjdFByaXZhdGVOYW1lLCBob21lT2JqZWN0KTsKKyAgICBnZW5lcmF0b3IuZW1pdFB1
dEJ5SWQoZnVuY3Rpb24sIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCku
aG9tZU9iamVjdFByaXZhdGVOYW1lKCksIGhvbWVPYmplY3QpOwogfQogCiBSZWdpc3RlcklEKiBQ
cm9wZXJ0eUxpc3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRv
ciwgUmVnaXN0ZXJJRCogZHN0KQpAQCAtMzI4MiwxNCArMzI4MiwxNCBAQCB2b2lkIEZ1bmN0aW9u
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqKQogICAgICAgICAvLyBCdXQgdG8gbWFrZSBpdCBlZmZpY2llbnQsIHdlIHdpbGwgaW50cm9k
dWNlIEpTR2VuZXJhdG9yIGNsYXNzLCBhZGQgb3Bjb2RlIG5ld19nZW5lcmF0b3IgYW5kIHVzZSBp
dHMgQysrIGZpZWxkcyBpbnN0ZWFkIG9mIHRoZXNlIHByaXZhdGUgcHJvcGVydGllcy4KICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogCi0g
ICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVn
aXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0ZU5h
bWUsIG5leHQuZ2V0KCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOworICAgICAgICBnZW5l
cmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yTmV4dFByaXZh
dGVOYW1lKCksIG5leHQuZ2V0KCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCi0gICAg
ICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0
ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JUaGlzUHJpdmF0ZU5hbWUs
IGdlbmVyYXRvci50aGlzUmVnaXN0ZXIoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVn
aXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0
b3JUaGlzUHJpdmF0ZU5hbWUoKSwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpLCBQcm9wZXJ0eU5v
ZGU6Oktub3duRGlyZWN0KTsKIAogICAgICAgICBSZWdpc3RlcklEKiBpbml0aWFsU3RhdGUgPSBn
ZW5lcmF0b3IuZW1pdExvYWQobnVsbHB0ciwganNOdW1iZXIoMCkpOwotICAgICAgICBnZW5lcmF0
b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVy
YXRvci5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwgaW5pdGlhbFN0
YXRlLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRE
aXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJv
cGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSwg
aW5pdGlhbFN0YXRlLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKIAotICAgICAgICBnZW5l
cmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSwgZ2VuZXJh
dG9yLmVtaXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVj
dCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJh
dG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5n
ZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCksIGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBq
c051bGwoKSksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCiAgICAgICAgIEFTU0VSVChz
dGFydE9mZnNldCgpID49IGxpbmVTdGFydE9mZnNldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVt
aXREZWJ1Z0hvb2soV2lsbExlYXZlQ2FsbEZyYW1lLCBsYXN0TGluZSgpLCBzdGFydE9mZnNldCgp
LCBsaW5lU3RhcnRPZmZzZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDBlZWY4OWE2NDc0YTA3
M2RmYmUxYmY0NjcwNzEyNWE5OWI0ZjI5YzYuLjRhN2Q1OTI0NDVhM2JhOTgzMzYwYjIzMDhlZmYx
YWI4MjQ5OGNhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJdGVyYXRvck9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKQEAgLTE3Niw4ICsxNzUsNyBAQCBKU1ZhbHVlIEpT
SW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodmFs
dWUuaW5oZXJpdHMoSlNXZWFrU2V0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4ganNOb250cml2
aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgid2Vha3NldCIpKTsKIAotICAgIGlmICh2YWx1
ZS5pbmhlcml0cyhKU0FycmF5SXRlcmF0b3I6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5o
ZXJpdHMoSlNNYXBJdGVyYXRvcjo6aW5mbygpKQorICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU01h
cEl0ZXJhdG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU2V0SXRlcmF0
b3I6OmluZm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNTdHJpbmdJdGVyYXRvcjo6
aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
OjppbmZvKCkpKQpAQCAtMzE5LDI4ICszMTcsNiBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKEpTQXJyYXlJdGVyYXRvciogYXJyYXlJdGVyYXRvciA9IGpzRHluYW1p
Y0Nhc3Q8SlNBcnJheUl0ZXJhdG9yKj4odmFsdWUpKSB7Ci0gICAgICAgIFN0cmluZyBraW5kOwot
ICAgICAgICBzd2l0Y2ggKGFycmF5SXRlcmF0b3ItPmtpbmQoZXhlYykpIHsKLSAgICAgICAgY2Fz
ZSBBcnJheUl0ZXJhdGVLZXk6Ci0gICAgICAgICAgICBraW5kID0gQVNDSUlMaXRlcmFsKCJrZXki
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFycmF5SXRlcmF0ZVZhbHVlOgot
ICAgICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgidmFsdWUiKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEFycmF5SXRlcmF0ZUtleVZhbHVlOgotICAgICAgICAgICAga2lu
ZCA9IEFTQ0lJTGl0ZXJhbCgia2V5K3ZhbHVlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgICAgIEpTQXJyYXkqIGFycmF5
ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyLCAyKTsKLSAgICAgICAgaWYgKFVO
TElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywgY29uc3RydWN0
SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAiYXJyYXkiLCBhcnJheUl0ZXJhdG9yLT5pdGVyYXRlZFZh
bHVlKGV4ZWMpKSk7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsr
LCBjb25zdHJ1Y3RJbnRlcm5hbFByb3BlcnR5KGV4ZWMsICJraW5kIiwganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIGtpbmQpKSk7Ci0gICAgICAgIHJldHVybiBhcnJheTsKLSAgICB9Ci0KICAgICBp
ZiAoSlNNYXBJdGVyYXRvciogbWFwSXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTTWFwSXRlcmF0
b3IqPih2YWx1ZSkpIHsKICAgICAgICAgU3RyaW5nIGtpbmQ7CiAgICAgICAgIHN3aXRjaCAobWFw
SXRlcmF0b3ItPmtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApp
bmRleCBkNjdkZjk0NzgxMzIzMjlkODg2ZDUzYzM3MjhkYTZjZWQ5NDY4ZDY1Li4zYzk1OWU0ZmFj
MDVjYWE5ZjI1YjJhNWM3NzZjMWY1NTQ5NjdhYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL0xleGVyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDExLTIwMTMsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
NyBDYW1lcm9uIFp3YXJpY2ggKGN3endhcmljaEB1d2F0ZXJsb28uY2EpCiAgKiAgQ29weXJpZ2h0
IChDKSAyMDEwIFpvbHRhbiBIZXJjemVnICh6aGVyY3plZ0BpbmYudS1zemVnZWQuaHUpCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDEyIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCkBAIC05
MzksNyArOTM5LDcgQEAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxX
QVlTX0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxMQ2hhcj46OnAKICAgICAgICAgICAgIGlmIChp
c1ByaXZhdGVOYW1lKQogICAgICAgICAgICAgICAgIGlkZW50ID0gbV92bS0+cHJvcGVydHlOYW1l
cy0+bG9va1VwUHJpdmF0ZU5hbWUoKmlkZW50KTsKICAgICAgICAgICAgIGVsc2UgaWYgKCppZGVu
dCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkKQotICAgICAgICAgICAg
ICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkUHJp
dmF0ZU5hbWU7CisgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS51bmRlZmluZWRQcml2YXRlTmFtZSgpOwogICAgICAg
ICAgICAgaWYgKCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9QUklWQVRF
X05BTUVfRVJST1JUT0s7CiAgICAgICAgIH0KQEAgLTEwMTYsNyArMTAxNiw3IEBAIHRlbXBsYXRl
IDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUg
TGV4ZXI8VUNoYXI+OjpwCiAgICAgICAgICAgICBpZiAoaXNQcml2YXRlTmFtZSkKICAgICAgICAg
ICAgICAgICBpZGVudCA9IG1fdm0tPnByb3BlcnR5TmFtZXMtPmxvb2tVcFByaXZhdGVOYW1lKCpp
ZGVudCk7CiAgICAgICAgICAgICBlbHNlIGlmICgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1l
cy0+dW5kZWZpbmVkS2V5d29yZCkKLSAgICAgICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0g
Jm1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZFByaXZhdGVOYW1lOworICAgICAgICAgICAg
ICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkudW5kZWZpbmVkUHJpdmF0ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghaWRlbnQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfUFJJVkFURV9OQU1FX0VSUk9SVE9LOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggN2Q4NTFjZWFjYTJlYWFk
OTdkYzY0MWMyNDFmNGI1YTBjNzIzYWI4NC4uYzgxMTY0MDhiMTBiNWYwY2VmMjVkNTViOTAwOGJk
ZDc5MjkxZDMxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBOb2Rlc19oCiAjZGVmaW5lIE5vZGVzX2gKIAorI2luY2x1ZGUgIkJ1
aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgog
I2luY2x1ZGUgIk9wY29kZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CmluZGV4IDQ1NzU3NDE3Zjk1ZTk2NTY4MGQ4MWQwOWQ5ZjhhYTBiOTEzNmFmZDguLmI2Yzg3Nzkw
ZjI1MDFjZTc0OWZiODRkYzQ4ZWJhOWIyZTcwZGE0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKQEAgLTE4OTcsMjMgKzE4OTcsMjMgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6Rm9ybWFsUGFyYW1ldGVyTGlzdCBQ
YXJzZXI8TGUKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbiA9IHRva2VuU3RhcnRQb3NpdGlv
bigpOwogCiAgICAgLy8gQGdlbmVyYXRvcgotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPmdlbmVyYXRvclByaXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvciA9
IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5nZW5lcmF0b3JQcml2YXRlTmFtZSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50
Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1f
dm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclByaXZhdGVOYW1lKCkp
OworICAgIGF1dG8gZ2VuZXJhdG9yID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9j
YXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclByaXZh
dGVOYW1lKCksIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0
aW9uU3RhdGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBn
ZW5lcmF0b3IsIDApOwogCiAgICAgLy8gQGdlbmVyYXRvclN0YXRlCi0gICAgZGVjbGFyZVBhcmFt
ZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSk7Ci0g
ICAgYXV0byBnZW5lcmF0b3JTdGF0ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxv
Y2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBw
b3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVu
dCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGdlbmVyYXRvclN0
YXRlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSwgcG9z
aXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQp
OwogICAgIGNvbnRleHQuYXBwZW5kUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRvclN0YXRl
LCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JWYWx1ZQotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1f
dm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUpOwotICAgIGF1dG8g
Z2VuZXJhdG9yVmFsdWUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwg
bV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSwgcG9zaXRpb24s
IHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAg
IGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdl
bmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3JWYWx1ZSA9IGNv
bnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKCksIHBvc2l0aW9uLCBw
b3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKICAgICBj
b250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0b3JWYWx1ZSwgMCk7CiAK
ICAgICAvLyBAZ2VuZXJhdG9yUmVzdW1lTW9kZQotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0t
PnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSk7Ci0gICAgYXV0
byBnZW5lcmF0b3JSZXN1bWVNb2RlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9j
YXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFt
ZSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0
ZW1lbnQpOworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGdl
bmVyYXRvclJlc3VtZU1vZGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlv
biwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lTW9k
ZVByaXZhdGVOYW1lKCksIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRl
Y2xhcmF0aW9uU3RhdGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0
ZXJzLCBnZW5lcmF0b3JSZXN1bWVNb2RlLCAwKTsKIAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwpA
QCAtMjg3MSwxNSArMjg3MSwxNSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVT
dGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFyYQogICAgICAgICAg
ICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24o
Y29udGV4dCk7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBh
cnNlIGV4cHJlc3Npb24iKTsKIAotICAgICAgICAgICAgRGVjbGFyYXRpb25SZXN1bHRNYXNrIGRl
Y2xhcmF0aW9uUmVzdWx0ID0gZGVjbGFyZVZhcmlhYmxlKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5z
dGFyRGVmYXVsdFByaXZhdGVOYW1lLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFyYXRpb24p
OworICAgICAgICAgICAgRGVjbGFyYXRpb25SZXN1bHRNYXNrIGRlY2xhcmF0aW9uUmVzdWx0ID0g
ZGVjbGFyZVZhcmlhYmxlKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFy
RGVmYXVsdFByaXZhdGVOYW1lKCksIERlY2xhcmF0aW9uVHlwZTo6Q29uc3REZWNsYXJhdGlvbik7
CiAgICAgICAgICAgICBpZiAoZGVjbGFyYXRpb25SZXN1bHQgJiBEZWNsYXJhdGlvblJlc3VsdDo6
SW52YWxpZER1cGxpY2F0ZURlY2xhcmF0aW9uKQogICAgICAgICAgICAgICAgIGludGVybmFsRmFp
bFdpdGhNZXNzYWdlKGZhbHNlLCAiT25seSBvbmUgJ2RlZmF1bHQnIGV4cG9ydCBpcyBhbGxvd2Vk
Iik7CiAKLSAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGFzc2lnbm1lbnQgPSBjb250ZXh0LmNy
ZWF0ZUFzc2lnblJlc29sdmUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPnN0YXJEZWZh
dWx0UHJpdmF0ZU5hbWUsIGV4cHJlc3Npb24sIHN0YXJ0LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlv
bigpLCBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAg
ICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29udGV4dC5jcmVhdGVBc3NpZ25S
ZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFy
RGVmYXVsdFByaXZhdGVOYW1lKCksIGV4cHJlc3Npb24sIHN0YXJ0LCBzdGFydCwgdG9rZW5FbmRQ
b3NpdGlvbigpLCBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNsYXJhdGlvblN0YXRlbWVudCk7
CiAgICAgICAgICAgICByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUV4cHJTdGF0ZW1lbnQobG9jYXRp
b24sIGFzc2lnbm1lbnQsIHN0YXJ0LCB0b2tlbkVuZFBvc2l0aW9uKCkpOwogICAgICAgICAgICAg
aWYgKCFpc0Z1bmN0aW9uT3JDbGFzc0RlY2xhcmF0aW9uKQogICAgICAgICAgICAgICAgIGZhaWxJ
ZkZhbHNlKGF1dG9TZW1pQ29sb24oKSwgIkV4cGVjdGVkIGEgJzsnIGZvbGxvd2luZyBhIHRhcmdl
dGVkIGV4cG9ydCBkZWNsYXJhdGlvbiIpOwotICAgICAgICAgICAgbG9jYWxOYW1lID0gJm1fdm0t
PnByb3BlcnR5TmFtZXMtPnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWU7CisgICAgICAgICAgICBsb2Nh
bE5hbWUgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RhckRlZmF1bHRQ
cml2YXRlTmFtZSgpOwogICAgICAgICB9CiAgICAgICAgIGZhaWxJZkZhbHNlKHJlc3VsdCwgIkNh
bm5vdCBwYXJzZSB0aGUgZGVjbGFyYXRpb24iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCAwMWIx
MDA0ZmYxNWE3MDBhYWFjY2MzZDkwNzAxZTMxMzA3MGIyNjg0Li44ODk1N2UxYzQ3ZjI4ZGUyNTEw
MTQ1MmU2YTUwNmMzNjM1MzQxNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMjgsNyArMjgsNiBA
QAogCiAjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCIKICNpbmNsdWRlICJJ
dGVyYXRvck9wZXJhdGlvbnMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJKU0NlbGxJbmxpbmVzLmgiCkBAIC0zOCw3ICszNyw2IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi0KIGNvbnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sICZhcnJheUl0ZXJhdG9yUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsKIAog
LyogU291cmNlIGZvciBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKaW5k
ZXggYjk3MDdhMTZmMjFlZTQwZGNhNDA4M2FhYWRlZmRlZGE2ODhmMWI3Zi4uYjUxNWMyYmFkZTM5
YzcwZWIyYjg3NmNiMzJhZGQ0OWMzMzFhMmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaApAQCAtMzAsNiArMzAs
MTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2VudW0gQXJyYXlJdGVyYXRpb25LaW5kIDogdWlu
dDMyX3QgeworICAgIEFycmF5SXRlcmF0ZUtleSwKKyAgICBBcnJheUl0ZXJhdGVWYWx1ZSwKKyAg
ICBBcnJheUl0ZXJhdGVLZXlWYWx1ZQorfTsKKwogY2xhc3MgQXJyYXlJdGVyYXRvclByb3RvdHlw
ZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcAppbmRleCA4MWQyMWY4YWMzYmViODM4Yjg3MzVhMDhiZWFiNzIyOGNi
NzI1NzVmLi44Y2M2Y2EwNjBhZDU0NzEzYTliYWU3OWE1MDNhOTNkYzg2Y2RhYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0z
Niw3ICszNiw2IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVQuaCIK
ICNpbmNsdWRlICJKU0FycmF5SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCmluZGV4IDQ3NWRmMjU4NjgzMTEwMzIwMTBk
YWY5NmY2NDVhN2Q3Njc2YjU0MWMuLjkyNjUyOGUwZmVlOTQyMTQ0YmNiODU0OGY2YTFkYWQ4OGQ4
NzRmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNywgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA5LCAyMDEyLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00Myw3ICs0Myw2IEBA
IENvbW1vbklkZW50aWZpZXJzOjpDb21tb25JZGVudGlmaWVycyhWTSogdm0pCiAgICAgLCBtX2J1
aWx0aW5OYW1lcyhuZXcgQnVpbHRpbk5hbWVzKHZtLCB0aGlzKSkKICAgICBKU0NfQ09NTU9OX0lE
RU5USUZJRVJTX0VBQ0hfS0VZV09SRChJTklUSUFMSVpFX0tFWVdPUkQpCiAgICAgSlNDX0NPTU1P
Tl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QUk9QRVJUWV9OQU1F
KQotICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUo
SU5JVElBTElaRV9QUklWQVRFX05BTUUpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJ
RVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9TWU1CT0wpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRl
eCA1YmIwYmFlNjkyNTFkMDAzZTMxYjcyY2IzY2I1NDdhNzhlMjM2NTc4Li44NWNlYmJmMzhmOWU1
MjFiMzAzOGE1ZmM0YWM0MjVmMWU4MDdiZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNpZm5k
ZWYgQ29tbW9uSWRlbnRpZmllcnNfaAogI2RlZmluZSBDb21tb25JZGVudGlmaWVyc19oCiAKLSNp
bmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zMjYsMTMyICszMjUsNiBA
QAogICAgIG1hY3JvKHRvU3RyaW5nVGFnKSBcCiAgICAgbWFjcm8odW5zY29wYWJsZXMpCiAKLSNk
ZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRSht
YWNybykgXAotICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0ZVTkNUSU9OU19FQUNI
X05BTUUobWFjcm8pIFwKLSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFO
VFNfRUFDSF9OQU1FKG1hY3JvKSBcCi0gICAgbWFjcm8oaXRlcmF0ZWRPYmplY3QpIFwKLSAgICBt
YWNybyhhcnJheUl0ZXJhdG9yTmV4dEluZGV4KSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRpb25L
aW5kKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHQpIFwKLSAgICBtYWNybyhhcnJheUl0
ZXJhdG9ySXNEb25lKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvcktpbmQpIFwKLSAgICBtYWNy
byhjaGFyQ29kZUF0KSBcCi0gICAgbWFjcm8oaXRlcmF0ZWRTdHJpbmcpIFwKLSAgICBtYWNybyhz
dHJpbmdJdGVyYXRvck5leHRJbmRleCkgXAotICAgIG1hY3JvKHByb21pc2UpIFwKLSAgICBtYWNy
byhmdWxmaWxsbWVudEhhbmRsZXIpIFwKLSAgICBtYWNybyhyZWplY3Rpb25IYW5kbGVyKSBcCi0g
ICAgbWFjcm8oaW5kZXgpIFwKLSAgICBtYWNybyhkZWZlcnJlZCkgXAotICAgIG1hY3JvKGNvdW50
ZG93bkhvbGRlcikgXAotICAgIG1hY3JvKE9iamVjdCkgXAotICAgIG1hY3JvKG93bkVudW1lcmFi
bGVQcm9wZXJ0eUtleXMpIFwKLSAgICBtYWNybyhOdW1iZXIpIFwKLSAgICBtYWNybyhBcnJheSkg
XAotICAgIG1hY3JvKFN0cmluZykgXAotICAgIG1hY3JvKFJlZ0V4cCkgXAotICAgIG1hY3JvKE1h
cCkgXAotICAgIG1hY3JvKFByb21pc2UpIFwKLSAgICBtYWNybyhSZWZsZWN0KSBcCi0gICAgbWFj
cm8oSW50ZXJuYWxQcm9taXNlKSBcCi0gICAgbWFjcm8oYWJzKSBcCi0gICAgbWFjcm8oZmxvb3Ip
IFwKLSAgICBtYWNybyh0cnVuYykgXAotICAgIG1hY3JvKGlzRmluaXRlKSBcCi0gICAgbWFjcm8o
aXNOYU4pIFwKLSAgICBtYWNybyhjcmVhdGUpIFwKLSAgICBtYWNybyhkZWZpbmVQcm9wZXJ0eSkg
XAotICAgIG1hY3JvKGdldFByb3RvdHlwZU9mKSBcCi0gICAgbWFjcm8oZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKSBcCi0gICAgbWFjcm8oZ2V0T3duUHJvcGVydHlOYW1lcykgXAotICAgIG1hY3Jv
KG93bktleXMpIFwKLSAgICBtYWNybyhFcnJvcikgXAotICAgIG1hY3JvKFJhbmdlRXJyb3IpIFwK
LSAgICBtYWNybyhUeXBlRXJyb3IpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5TGVuZ3RoKSBcCi0g
ICAgbWFjcm8odHlwZWRBcnJheVNvcnQpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5R2V0T3JpZ2lu
YWxDb25zdHJ1Y3RvcikgXAotICAgIG1hY3JvKEJ1aWx0aW5Mb2cpIFwKLSAgICBtYWNybyhob21l
T2JqZWN0KSBcCi0gICAgbWFjcm8oZ2V0VGVtcGxhdGVPYmplY3QpIFwKLSAgICBtYWNybyhlbnF1
ZXVlSm9iKSBcCi0gICAgbWFjcm8oaGFuZGxlcikgXAotICAgIG1hY3JvKHByb21pc2VTdGF0ZSkg
XAotICAgIG1hY3JvKHByb21pc2VGdWxmaWxsUmVhY3Rpb25zKSBcCi0gICAgbWFjcm8ocHJvbWlz
ZVJlamVjdFJlYWN0aW9ucykgXAotICAgIG1hY3JvKHByb21pc2VSZXN1bHQpIFwKLSAgICBtYWNy
byhwdXNoKSBcCi0gICAgbWFjcm8ocmVwZWF0Q2hhcmFjdGVyKSBcCi0gICAgbWFjcm8oY2FwYWJp
bGl0aWVzKSBcCi0gICAgbWFjcm8oc3RhckRlZmF1bHQpIFwKLSAgICBtYWNybyhJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24pIFwKLSAgICBtYWNybyhnZXQpIFwKLSAgICBtYWNybyhzZXQpIFwKLSAg
ICBtYWNybyhzaGlmdCkgXAotICAgIG1hY3JvKGFsbG9jYXRlVHlwZWRBcnJheSkgXAotICAgIG1h
Y3JvKEludDhBcnJheSkgXAotICAgIG1hY3JvKEludDE2QXJyYXkpIFwKLSAgICBtYWNybyhJbnQz
MkFycmF5KSBcCi0gICAgbWFjcm8oVWludDhBcnJheSkgXAotICAgIG1hY3JvKFVpbnQ4Q2xhbXBl
ZEFycmF5KSBcCi0gICAgbWFjcm8oVWludDE2QXJyYXkpIFwKLSAgICBtYWNybyhVaW50MzJBcnJh
eSkgXAotICAgIG1hY3JvKEZsb2F0MzJBcnJheSkgXAotICAgIG1hY3JvKEZsb2F0NjRBcnJheSkg
XAotICAgIG1hY3JvKGV4ZWMpIFwKLSAgICBtYWNybyhnZW5lcmF0b3IpIFwKLSAgICBtYWNybyhn
ZW5lcmF0b3JOZXh0KSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yU3RhdGUpIFwKLSAgICBtYWNybyhn
ZW5lcmF0b3JGcmFtZSkgXAotICAgIG1hY3JvKGdlbmVyYXRvclZhbHVlKSBcCi0gICAgbWFjcm8o
Z2VuZXJhdG9yVGhpcykgXAotICAgIG1hY3JvKGdlbmVyYXRvclJlc3VtZU1vZGUpIFwKLSAgICBt
YWNybyhDb2xsYXRvcikgXAotICAgIG1hY3JvKERhdGVUaW1lRm9ybWF0KSBcCi0gICAgbWFjcm8o
TnVtYmVyRm9ybWF0KSBcCi0gICAgbWFjcm8oaW50bFN1YnN0aXR1dGVWYWx1ZSkgXAotICAgIG1h
Y3JvKHRoaXNUaW1lVmFsdWUpIFwKLSAgICBtYWNybyh0aGlzTnVtYmVyVmFsdWUpIFwKLSAgICBt
YWNybyhuZXdUYXJnZXRMb2NhbCkgXAotICAgIG1hY3JvKGRlcml2ZWRDb25zdHJ1Y3RvcikgXAot
ICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAotICAgIG1hY3JvKGhhc0luc3RhbmNlQm91bmRG
dW5jdGlvbikgXAotICAgIG1hY3JvKGluc3RhbmNlT2YpIFwKLSAgICBtYWNybyhpc0FycmF5KSBc
Ci0gICAgbWFjcm8oaXNBcnJheUNvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNDb25zdHJ1Y3Rv
cikgXAotICAgIG1hY3JvKGlzUmVnRXhwT2JqZWN0KSBcCi0gICAgbWFjcm8oY29uY2F0TWVtY3B5
KSBcCi0gICAgbWFjcm8oYXBwZW5kTWVtY3B5KSBcCi0gICAgbWFjcm8ocHJlZGljdEZpbmFsTGVu
Z3RoRnJvbUFyZ3VtdW50cykgXAotICAgIG1hY3JvKHByaW50KSBcCi0gICAgbWFjcm8oaXNTZXQp
IFwKLSAgICBtYWNybyhpc01hcCkgXAotICAgIG1hY3JvKHJlZ0V4cENyZWF0ZSkgXAotICAgIG1h
Y3JvKFNldEl0ZXJhdG9yKSBcCi0gICAgbWFjcm8oc2V0SXRlcmF0b3JOZXh0KSBcCi0gICAgbWFj
cm8ocmVwbGFjZVVzaW5nUmVnRXhwKSBcCi0gICAgbWFjcm8ocmVwbGFjZVVzaW5nU3RyaW5nU2Vh
cmNoKSBcCi0gICAgbWFjcm8oTWFwSXRlcmF0b3IpIFwKLSAgICBtYWNybyhtYXBJdGVyYXRvck5l
eHQpIFwKLSAgICBtYWNybyhyZWdFeHBCdWlsdGluRXhlYykgXAotICAgIG1hY3JvKHJlZ0V4cE1h
dGNoRmFzdCkgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXIpIFwKLSAgICBtYWNy
byhyZWdFeHBQcm90b0dsb2JhbEdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvSWdub3Jl
Q2FzZUdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyKSBcCi0g
ICAgbWFjcm8ocmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90
b1N0aWNreUdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvVW5pY29kZUdldHRlcikgXAot
ICAgIG1hY3JvKHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpIFwKLSAgICBtYWNybyhyZWdF
eHBSZXBsYWNlRmFzdCkgXAotICAgIG1hY3JvKHJlZ0V4cFNlYXJjaEZhc3QpIFwKLSAgICBtYWNy
byhyZWdFeHBTcGxpdEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBUZXN0RmFzdCkgXAotICAgIG1h
Y3JvKHN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpIFwKLSAgICBtYWNybyhzdHJpbmdTcGxpdEZhc3Qp
IFwKLSAgICBtYWNybyhzdHJpbmdTdWJzdHJJbnRlcm5hbCkgXAotCiBuYW1lc3BhY2UgSlNDIHsK
ICAgICAKICAgICBjbGFzcyBCdWlsdGluTmFtZXM7CkBAIC00ODQsMTAgKzM1Nyw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlf
TkFNRShKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMKQogI3VuZGVm
IEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9HTE9CQUwKIAotI2RlZmluZSBK
U0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfUFJPUEVSVFlfTkFNRV9HTE9CQUwobmFtZSkg
Y29uc3QgSWRlbnRpZmllciBuYW1lIyNQcml2YXRlTmFtZTsKLSAgICAgICAgSlNDX0NPTU1PTl9Q
UklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShKU0NfSURFTlRJRklFUl9ERUNM
QVJFX1BSSVZBVEVfUFJPUEVSVFlfTkFNRV9HTE9CQUwpCi0jdW5kZWYgSlNDX0lERU5USUZJRVJf
REVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMCi0KICNkZWZpbmUgSlNDX0lERU5U
SUZJRVJfREVDTEFSRV9QUklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTChuYW1lKSBjb25z
dCBJZGVudGlmaWVyIG5hbWUjI1N5bWJvbDsKICAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lE
RU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSlNDX0lERU5USUZJRVJfREVDTEFSRV9Q
UklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTCkKICN1bmRlZiBKU0NfSURFTlRJRklFUl9E
RUNMQVJFX1BSSVZBVEVfV0VMTF9LTk9XTl9TWU1CT0xfR0xPQkFMCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBlNTQ0MzEwZmIy
M2RlMmUyOTY4OWZkNzZlZTdmNzk3NmQyNDQxNzIyLi5hNmVjZmQyODRiMTAxYzNhYzAwMWY2ODJm
ODg4ZGVkMTk3Njc4NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTI1LDcgKzI1LDkgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgorCiAjaW5jbHVkZSAiQXJyYXlDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkNsb25lZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVQcm9maWxp
bmcuaCIKQEAgLTcxNyw3ICs3MTksNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2F2ZSkK
ICAgICBCRUdJTigpOwogICAgIEpTVmFsdWUgZ2VuZXJhdG9yID0gT1AoMSkuanNWYWx1ZSgpOwog
ICAgIEdlbmVyYXRvckZyYW1lKiBmcmFtZSA9IG51bGxwdHI7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9
IGdlbmVyYXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZyYW1l
UHJpdmF0ZU5hbWUpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVO
YW1lKCkpOwogICAgIGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIGZyYW1lID0ganNDYXN0
PEdlbmVyYXRvckZyYW1lKj4odmFsdWUpOwogICAgIGVsc2UgewpAQCAtNzI1LDcgKzcyNyw3IEBA
IFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zYXZlKQogICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAgICAgICAgIGZyYW1lID0gR2VuZXJh
dG9yRnJhbWU6OmNyZWF0ZShleGVjLT52bSgpLCAgZXhlYy0+Y29kZUJsb2NrKCktPm51bUNhbGxl
ZUxvY2FscygpKTsKICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZ2VuZXJhdG9yLCB0cnVl
LCBQdXRQcm9wZXJ0eVNsb3Q6OlB1dEJ5SWQpOwotICAgICAgICBhc09iamVjdChnZW5lcmF0b3Ip
LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+cHV0KGFzT2JqZWN0KGdlbmVyYXRvciksIGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lLCBmcmFtZSwg
c2xvdCk7CisgICAgICAgIGFzT2JqZWN0KGdlbmVyYXRvciktPm1ldGhvZFRhYmxlKGV4ZWMtPnZt
KCkpLT5wdXQoYXNPYmplY3QoZ2VuZXJhdG9yKSwgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSwgZnJhbWUsIHNsb3Qp
OwogICAgIH0KICAgICB1bnNpZ25lZCBsaXZlQ2FsbGVlTG9jYWxzSW5kZXggPSBwY1syXS51LnVu
c2lnbmVkVmFsdWU7CiAgICAgZnJhbWUtPnNhdmUoZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmxp
dmVDYWxsZWVMb2NhbHNBdFlpZWxkKGxpdmVDYWxsZWVMb2NhbHNJbmRleCkpOwpAQCAtNzM2LDcg
KzczOCw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXN1bWUpCiB7CiAgICAgQkVHSU4o
KTsKICAgICBKU1ZhbHVlIGdlbmVyYXRvciA9IE9QKDEpLmpzVmFsdWUoKTsKLSAgICBHZW5lcmF0
b3JGcmFtZSogZnJhbWUgPSBqc0Nhc3Q8R2VuZXJhdG9yRnJhbWUqPihnZW5lcmF0b3IuZ2V0KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKSk7Cisg
ICAgR2VuZXJhdG9yRnJhbWUqIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJh
dG9yLmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJh
dG9yRnJhbWVQcml2YXRlTmFtZSgpKSk7CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0lu
ZGV4ID0gcGNbMl0udS51bnNpZ25lZFZhbHVlOwogICAgIGZyYW1lLT5yZXN1bWUoZXhlYywgZXhl
Yy0+Y29kZUJsb2NrKCktPmxpdmVDYWxsZWVMb2NhbHNBdFlpZWxkKGxpdmVDYWxsZWVMb2NhbHNJ
bmRleCkpOwogICAgIEVORCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggNDgzODljZDNiMjU0YjhhMzllYzEwNTE4
NTFhOWNjNTRlYjc5Y2NlOS4uM2E4MDUwMGY4ZmRlMWM0Zjc1MGU4NzBiOWMwYTI2ODEwOGJlNzhh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1l
Rm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBB
bmR5IFZhbldhZ29uZXIgKHRoZXRhbGVjcmFmdGVyQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IGUxZGQzZTQ0ZGY0
YTRlMTI5ZDAxYjhkYzk5OWU4NjY5ZjkyNjY5MTguLmRlNTA5ZjUzOWMyMTBkMTY4YTc0MTIxZWJl
YjljNDQyMWY3NTBmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNp
bmNsdWRlICJEYXRlQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUg
IkludGxEYXRlVGltZUZvcm1hdC5oIgpAQCAtMTE2LDcgKzExNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4
ZWNTdGF0ZSoKICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxp
dHkgd2l0aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFkdGYpCi0g
ICAgICAgIGR0ZiA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRo
aXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1YnN0
aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIGR0ZiA9IGpzRHluYW1pY0Nhc3Q8SW50
bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZt
KCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZh
dGVOYW1lKCkpKTsKIAogICAgIC8vIDIuIFJldHVybklmQWJydXB0KGR0ZikuCiAgICAgaWYgKCFk
dGYpCkBAIC0xNTMsNyArMTU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
RGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEV4ZWMKICAgICAvLyBG
SVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01BLTQwMiAx
LjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFkYXRlVGltZUZvcm1hdCkKLSAgICAgICAg
ZGF0ZVRpbWVGb3JtYXQgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRl
LT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxT
dWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSkpOworICAgICAgICBkYXRlVGltZUZvcm1hdCA9IGpz
RHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChz
dGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0
aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCkpKTsKIAogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFTQ0lJ
TGl0ZXJhbCgiSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zIGNh
bGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIERhdGVU
aW1lRm9ybWF0IikpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMGE1ZDU2MzE2ZDU2YWI1
YTA4NWU2NDg1YjUxMTc4NjdmOWY5Nzg3YS4uZmUyYzlkYmY2ZmQ5NDJiY2ExYjVhMDU0NzY4NTI1
YmFiNzZhMjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFuZHkgVmFuV2Fnb25lciAodGhldGFsZWNyYWZ0ZXJAZ21h
aWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjksNyBAQAog
CiAjaWYgRU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRl
ICJFcnJvci5oIgogI2luY2x1ZGUgIkludGxOdW1iZXJGb3JtYXQuaCIKICNpbmNsdWRlICJKU0Jv
dW5kRnVuY3Rpb24uaCIKQEAgLTEwNSw3ICsxMDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoRXhlY1N0YXRlKiBz
dAogICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRo
IEVDTUEtNDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIW5mKQotICAgICAgICBu
ZiA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5n
ZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQ
cml2YXRlTmFtZSkpOworICAgICAgICBuZiA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1h
dCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpKSk7CiAK
ICAgICBpZiAoIW5mKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVy
cm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3Jt
YXQgY2FsbGVkIG9uIHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxpemVkIGFzIGEg
TnVtYmVyRm9ybWF0IikpKTsKQEAgLTE0MSw3ICsxNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEV4
ZWNTdAogICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3
aXRoIEVDTUEtNDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIW51bWJlckZvcm1h
dCkKLSAgICAgICAgbnVtYmVyRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0
Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1l
cy0+aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIG51bWJlckZvcm1h
dCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5n
ZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxT
dWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIW51bWJlckZvcm1hdCkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0ZSwgQVND
SUlMaXRlcmFsKCJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zIGNh
bGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIE51bWJl
ckZvcm1hdCIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdElubGluZXMuaAppbmRleCAxMjlkOTg1NTM4ZjViODgyYzAwY2Q5ZGNmMDM0NzNiMDdiZWM2
NGM4Li5lM2JmZjM4NzdiMDhmMWQ5NjljNzMxZWY0YjEzMjdkZmU2NDk0YmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHl1c3Vr
ZS5zdXp1a2lAc3NsYWIuaWNzLmtlaW8uYWMuanA+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1
aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkludGxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgogCkBAIC00OSw3ICs1MSw3IEBAIEpTVmFsdWUgY29uc3RydWN0SW50bEluc3RhbmNlV2l0
aFdvcmthcm91bmRGb3JMZWdhY3lJbnRsQ29uc3RydWN0b3IoRXhlY1N0YXRlJiBzCiAgICAgICAg
ICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lLCBpbnN0YW5jZSk7
CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpLCBpbnN0YW5j
ZSk7CiAgICAgICAgICAgICByZXR1cm4gdGhpc09iamVjdDsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDEwNWI4N2Y4YmI4YjIzYjBlMmIxNmYzOTk1
YTAxM2U3NTZlYWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNBcnJh
eUl0ZXJhdG9yLmgiCi0KLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUg
IkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKLSNpbmNs
dWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFz
c0luZm8gSlNBcnJheUl0ZXJhdG9yOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJheUl0ZXJhdG9yKSB9OwotCi12
b2lkIEpTQXJyYXlJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCosIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpCi17
Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLQotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRPYmpl
Y3RQcml2YXRlTmFtZSwgaXRlcmF0ZWRPYmplY3QpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YXJyYXlJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigw
KSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJhdGlvbktp
bmRQcml2YXRlTmFtZSwganNOdW1iZXIoa2luZCkpOwotfQotCi1BcnJheUl0ZXJhdGlvbktpbmQg
SlNBcnJheUl0ZXJhdG9yOjpraW5kKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBKU1Zh
bHVlIGtpbmRWYWx1ZSA9IGdldERpcmVjdChleGVjLT52bSgpLCBleGVjLT52bSgpLnByb3BlcnR5
TmFtZXMtPmFycmF5SXRlcmF0aW9uS2luZFByaXZhdGVOYW1lKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlJdGVyYXRpb25LaW5kPihraW5kVmFsdWUuYXNJbnQzMigpKTsKLX0KLQotSlNW
YWx1ZSBKU0FycmF5SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAotewotICAgIHJldHVybiBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0
eU5hbWVzLT5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lKTsKLX0KLQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMTY2YmQyZTUzNTJiYTIxNTkzNjQyNzFlY2FiYmFmODBlMTUzNjNk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCisrKyAvZGV2L251bGwKQEAg
LTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2lmbmRlZiBKU0FycmF5SXRlcmF0b3JfaAotI2RlZmluZSBKU0FycmF5SXRlcmF0b3Jf
aAotCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWVudW0gQXJy
YXlJdGVyYXRpb25LaW5kIDogdWludDMyX3QgewotICAgIEFycmF5SXRlcmF0ZUtleSwKLSAgICBB
cnJheUl0ZXJhdGVWYWx1ZSwKLSAgICBBcnJheUl0ZXJhdGVLZXlWYWx1ZQotfTsKLQotY2xhc3Mg
SlNBcnJheUl0ZXJhdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewotcHVibGljOgotICAg
IHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotCi0gICAgREVDTEFSRV9FWFBPUlRfSU5G
TzsKLQotICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQot
ICAgIHN0YXRpYyBKU0FycmF5SXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJh
dGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICAgICAg
SlNBcnJheUl0ZXJhdG9yKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpT
QXJyYXlJdGVyYXRvcj4odm0uaGVhcCkpIEpTQXJyYXlJdGVyYXRvcih2bSwgc3RydWN0dXJlKTsK
LSAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9i
amVjdCgpLCBraW5kLCBpdGVyYXRlZE9iamVjdCk7Ci0gICAgICAgIHJldHVybiBpbnN0YW5jZTsK
LSAgICB9Ci0KLSAgICBBcnJheUl0ZXJhdGlvbktpbmQga2luZChFeGVjU3RhdGUqKSBjb25zdDsK
LSAgICBKU1ZhbHVlIGl0ZXJhdGVkVmFsdWUoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgSlNBcnJh
eUl0ZXJhdG9yKiBjbG9uZShFeGVjU3RhdGUqKTsKLQotICAgIHVzaW5nIEpTTm9uRmluYWxPYmpl
Y3Q6OmFycmF5U3RvcmFnZU9yTnVsbDsKLXByaXZhdGU6Ci0gICAgSlNBcnJheUl0ZXJhdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBBcnJheUl0ZXJhdGlvbktpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCk7Ci19
OwotCi19Ci0KLSNlbmRpZiAvLyAhZGVmaW5lZChKU0FycmF5SXRlcmF0b3JfaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IDZlYjA4OTIxMzdm
ZDgzMTQyYmQ2MGU4MTFjNDUyODBkNTA3MGNlMDEuLmNjYzNiMDVkNzc5ZTA4NjlkNGI5NzAyZmJj
Yzk5ZGQ4YjhiMzNjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cklubGluZXMuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBKU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9ySW5saW5lc19oCiAjZGVmaW5lIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3JJbmxpbmVzX2gKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1
ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlci5oIgpAQCAtNTIsNyArNTMsNyBAQCB2b2lkIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
bwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5C
WVRFU19QRVJfRUxFTUVOVCwganNOdW1iZXIoVmlld0NsYXNzOjplbGVtZW50U2l6ZSksIERvbnRF
bnVtIHwgUmVhZE9ubHkgfCBEb250RGVsZXRlKTsKIAogICAgIGlmIChwcml2YXRlQWxsb2NhdG9y
KQotICAgICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0u
cHJvcGVydHlOYW1lcy0+YWxsb2NhdGVUeXBlZEFycmF5UHJpdmF0ZU5hbWUsIHByaXZhdGVBbGxv
Y2F0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICAgICAgcHV0RGly
ZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmFsbG9jYXRlVHlwZWRBcnJheVByaXZhdGVOYW1lKCksIHByaXZhdGVBbGxv
Y2F0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVmlld0NsYXNzPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
RnVuY3Rpb25zLmgKaW5kZXggNGYzYjhlYzdiNDkxMjQyNWUwNDIzNjExNGJlMzJlNmY2NDhhYTQ5
MC4uMGIwMjNkODJkOWNhNjQyNmQ5YjdmMDg1ZjRkODJhOGUyNGM3Y2E4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5j
bHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA0MGE5MmZjNWExMWRjZDQ0YWVh
MjkzNGE1MzRiZTg5ODI0Yzg5NjVhLi5hYjAxOWNhODdjMmMyMWJhMDU2N2ZmNDJmZDM1ZTdjMGNk
YWIyNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXJQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmgiCkBAIC00MjYsNyArNDI1LDcgQEAgdm9pZCBKU0dsb2Jh
bE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAgICAgICBpbml0LnNldFByb3RvdHlwZShKUyAj
IyB0eXBlICMjIEFycmF5UHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIEpT
ICMjIHR5cGUgIyMgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0
Lmdsb2JhbCwgaW5pdC5nbG9iYWwtPm1fdHlwZWRBcnJheVByb3RvLmdldChpbml0Lmdsb2JhbCkp
KSk7IFwKICAgICAgICAgICAgIGluaXQuc2V0U3RydWN0dXJlKEpTICMjIHR5cGUgIyMgQXJyYXk6
OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgaW5pdC5wcm90b3R5cGUpKTsg
XAogICAgICAgICAgICAgaW5pdC5zZXRDb25zdHJ1Y3RvcihKUyAjIyB0eXBlICMjIEFycmF5Q29u
c3RydWN0b3I6OmNyZWF0ZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgSlMgIyMgdHlwZSAjIyBBcnJh
eUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQu
Z2xvYmFsLT5tX3R5cGVkQXJyYXlTdXBlckNvbnN0cnVjdG9yLmdldChpbml0Lmdsb2JhbCkpLCBp
bml0LnByb3RvdHlwZSwgQVNDSUlMaXRlcmFsKCN0eXBlICJBcnJheSIpLCB0eXBlZEFycmF5Q29u
c3RydWN0b3JBbGxvY2F0ZSAjIyB0eXBlICMjIEFycmF5Q29kZUdlbmVyYXRvcihpbml0LnZtKSkp
OyBcCi0gICAgICAgICAgICBpbml0Lmdsb2JhbC0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
aW5pdC52bSwgaW5pdC52bS5wcm9wZXJ0eU5hbWVzLT50eXBlICMjIEFycmF5UHJpdmF0ZU5hbWUs
IGluaXQuY29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAorICAgICAgICAgICAgaW5pdC5nbG9iYWwt
PnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGluaXQudm0sIGluaXQudm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkudHlwZSAjIyBBcnJheVByaXZhdGVOYW1lKCksIGluaXQuY29uc3Ry
dWN0b3IsIERvbnRFbnVtKTsgXAogICAgICAgICB9KTsKICAgICBGT1JfRUFDSF9UWVBFRF9BUlJB
WV9UWVBFX0VYQ0xVRElOR19EQVRBX1ZJRVcoSU5JVF9UWVBFRF9BUlJBWV9MQVRFUikKICN1bmRl
ZiBJTklUX1RZUEVEX0FSUkFZX0xBVEVSCkBAIC02MTksOCArNjE4LDggQEAgbV8gIyMgbG93ZXJO
YW1lICMjIFByb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmMKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+UmFuZ2VFcnJvciwgbV9yYW5nZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRF
bnVtKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+VHlwZUVycm9yLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSk7CiAK
LSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+T2Jq
ZWN0UHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuT2JqZWN0UHJpdmF0ZU5hbWUoKSwg
b2JqZWN0Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuQXJyYXlQcml2YXRlTmFtZSgpLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAKICNkZWZpbmUgUFVUX0NPTlNUUlVDVE9SX0ZPUl9T
SU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5
cGUsIGpzTmFtZSkgXAogcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCkBA
IC02NTMsOCArNjUyLDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9u
KiBwcml2YXRlRnVuY1RydW5jID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgbWF0aFByb3RvRnVuY1RydW5jLCBUcnVuY0ludHJpbnNpYyk7CiAKICAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2JqZWN0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAwLCBTdHJpbmcoKSwgZ2V0VGVtcGxhdGVPYmplY3QpOwotICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jVG9MZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdFRvTGVuZ3RoQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIEpT
RnVuY3Rpb24qIHByaXZhdGVGdW5jVG9JbnRlZ2VyID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRp
bkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RUb0ludGVnZXJDb2RlR2VuZXJhdG9yKHZtKSwgdGhp
cyk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0xlbmd0aCk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5R2V0T3Jp
Z2luYWxDb25zdHJ1Y3RvciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5n
KCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVjdG9yKTsKICAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQp
OwpAQCAtNjY4LDEzICs2NjUsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVu
Y3Rpb24qIHByaXZhdGVGdW5jQXBwZW5kTWVtY3B5ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAwLCBTdHJpbmcoKSwgYXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5KTsKICAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0NvbmNhdFNsb3dQYXRoID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBhcnJheVByb3RvdHlwZUNvbmNhdFNsb3dQYXRoQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpOwogCi0gICAgSlNPYmplY3QqIGFycmF5SXRlcmF0b3JQcm90b3R5
cGUgPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEFycmF5SXRlcmF0
b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9pdGVyYXRvclByb3RvdHlw
ZS5nZXQoKSkpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQ3JlYXRlQXJyYXlJdGVyYXRv
ciA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJyYXlQcm90b3R5cGVD
cmVhdGVBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0g
ICAgcHJpdmF0ZUZ1bmNDcmVhdGVBcnJheUl0ZXJhdG9yLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZSk7Ci0gICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNBcnJheUl0ZXJhdG9yVmFsdWVOZXh0ID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlQXJyYXlJdGVyYXRv
clZhbHVlTmV4dENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0FycmF5SXRlcmF0b3JLZXlOZXh0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKHZtLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlQXJyYXlJdGVyYXRvcktleU5leHRDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNBcnJheUl0
ZXJhdG9yS2V5VmFsdWVOZXh0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlQXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dENvZGVHZW5l
cmF0b3Iodm0pLCB0aGlzKTsKLQogICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b0ZsYWdzR2V0dGVy
T2JqZWN0ID0gZ2V0R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwgdm0u
cHJvcGVydHlOYW1lcy0+ZmxhZ3MpOwogICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b0dsb2JhbEdl
dHRlck9iamVjdCA9IGdldEdldHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCks
IHZtLnByb3BlcnR5TmFtZXMtPmdsb2JhbCk7CiAgICAgbV9yZWdFeHBQcm90b0dsb2JhbEdldHRl
ci5zZXQodm0sIHRoaXMsIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0KTsKQEAgLTY4OSw3
MCArNjc5LDYxIEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNPYmplY3QqIHJlZ0V4
cFN5bWJvbFJlcGxhY2UgPSBhc09iamVjdChtX3JlZ0V4cFByb3RvdHlwZS0+Z2V0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5yZXBsYWNlU3ltYm9sKS5hc0NlbGwoKSk7CiAgICAgbV9yZWdF
eHBQcm90b1N5bWJvbFJlcGxhY2Uuc2V0KHZtLCB0aGlzLCByZWdFeHBTeW1ib2xSZXBsYWNlKTsK
IAorI2RlZmluZSBDUkVBVEVfUFJJVkFURV9HTE9CQUxfRlVOQ1RJT04obmFtZSwgY29kZSkgSlNG
dW5jdGlvbiogbmFtZSAjIyBQcml2YXRlRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIGNvZGUgIyMgQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOworICAgIEpT
Q19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShDUkVBVEVfUFJJ
VkFURV9HTE9CQUxfRlVOQ1RJT04pCisjdW5kZWYgQ1JFQVRFX1BSSVZBVEVfR0xPQkFMX0ZVTkNU
SU9OCisKKyAgICBKU09iamVjdCogYXJyYXlJdGVyYXRvclByb3RvdHlwZSA9IEFycmF5SXRlcmF0
b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0ZXJhdG9yUHJvdG90eXBlLmdldCgpKSk7CisgICAg
Y3JlYXRlQXJyYXlJdGVyYXRvclByaXZhdGVGdW5jdGlvbi0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGFycmF5SXRlcmF0b3JQcm90b3R5cGUpOworCisKICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0geworI2RlZmluZSBJTklUX1BSSVZB
VEVfR0xPQkFMKG5hbWUsIGNvZGUpIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5uYW1lICMjIFByaXZhdGVOYW1lKCksIG5hbWUgIyMgUHJpdmF0ZUZ1
bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEpTQ19G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShJTklUX1BSSVZBVEVf
R0xPQkFMKQorI3VuZGVmIElOSVRfUFJJVkFURV9HTE9CQUwKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk5hTiwganNOYU4oKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+SW5maW5pdHksIGpzTnVtYmVyKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQsIGpzVW5k
ZWZpbmVkKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPm93bkVudW1lcmFibGVQcm9wZXJ0eUtl
eXNQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
b3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmdldFRl
bXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmVucXVldWVKb2JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgZW5xdWV1ZUpvYiksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPkVycm9yUHJpdmF0ZU5hbWUsIG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+UmFuZ2VFcnJvclByaXZhdGVOYW1lLCBtX3JhbmdlRXJyb3JD
b25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0
ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVu
Z3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1
Y3RvclByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVj
dG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5k
RnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2
YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
aW5zdGFuY2VPZlByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5SZWdFeHBQcml2YXRlTmFtZSwgbV9yZWdFeHBDb25zdHJ1Y3Rv
ci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+U3RyaW5nUHJpdmF0ZU5hbWUsIHN0cmlu
Z0NvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5hYnNQcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNBYnMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmZsb29yUHJpdmF0ZU5hbWUsIHBy
aXZhdGVGdW5jRmxvb3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnRydW5jUHJpdmF0ZU5hbWUs
IHByaXZhdGVGdW5jVHJ1bmMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzRmluaXRlUHJpdmF0
ZU5hbWUsIHByaXZhdGVGdW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTmFO
UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlBy
b21pc2VQcml2YXRlTmFtZSwgcHJvbWlzZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5SZWZsZWN0UHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPkludGVybmFsUHJvbWlzZVByaXZhdGVOYW1lLCBpbnRlcm5hbFByb21pc2VDb25zdHJ1
Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZXBlYXRDaGFyYWN0ZXJQcml2YXRlTmFt
ZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9G
dW5jUmVwZWF0Q2hhcmFjdGVyKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVwZWF0U2xvd1BhdGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIHN0cmluZ1Byb3RvdHlwZVJlcGVhdFNsb3dQYXRoQ29kZUdlbmVyYXRvcih2
bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBlYXRD
aGFyYWN0ZXJzU2xvd1BhdGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIHN0cmluZ1Byb3RvdHlwZVJlcGVhdENoYXJhY3RlcnNTbG93UGF0aENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1NldFByaXZh
dGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRl
RnVuY0lzU2V0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+U2V0SXRlcmF0b3JQcml2YXRlTmFt
ZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNT
ZXRJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnNldEl0ZXJhdG9yTmV4dFByaXZh
dGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRl
RnVuY1NldEl0ZXJhdG9yTmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTWFwUHJpdmF0
ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVG
dW5jSXNNYXApLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5UHJpdmF0ZU5hbWUsIGFy
cmF5Q29uc3RydWN0b3ItPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheSks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXlDb25zdHJ1Y3RvclByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY0lzQXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Y29u
Y2F0TWVtY3B5UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jQ29uY2F0TWVtY3B5LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5hcHBlbmRNZW1jcHlQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNBcHBlbmRN
ZW1jcHksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm93bkVudW1lcmFi
bGVQcm9wZXJ0eUtleXNQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCBvd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2V0VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSgpLCBw
cml2YXRlRnVuY0dldFRlbXBsYXRlT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAwLCBTdHJpbmcoKSwgZW5xdWV1ZUpvYiksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLkVycm9yUHJpdmF0ZU5hbWUoKSwgbV9lcnJvckNvbnN0cnVjdG9yLmdl
dCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SYW5nZUVycm9yUHJp
dmF0ZU5hbWUoKSwgbV9yYW5nZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlR5cGVFcnJvclByaXZhdGVOYW1lKCksIG1fdHlwZUVy
cm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlM
ZW5ndGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnR5cGVkQXJyYXlH
ZXRPcmlnaW5hbENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5
R2V0T3JpZ2luYWxDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkudHlwZWRBcnJheVNvcnRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlT
b3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0JvdW5kRnVuY3Rp
b25Qcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uUHJpdmF0
ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmluc3RhbmNlT2ZQcml2YXRlTmFtZSgpLCBwcml2
YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSgpLCBidWlsdGluTG9nLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5OdW1iZXJQcml2YXRlTmFtZSgpLCBudW1iZXJDb25zdHJ1Y3Rv
ciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmVnRXhwUHJpdmF0ZU5h
bWUoKSwgbV9yZWdFeHBDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuU3RyaW5nUHJpdmF0ZU5hbWUoKSwgc3RyaW5nQ29uc3RydWN0b3IsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFic1ByaXZhdGVOYW1lKCksIHBy
aXZhdGVGdW5jQWJzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mbG9v
clByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jRmxvb3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnRydW5jUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUcnVuYywgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNGaW5pdGVQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY0lzRmluaXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pc05hTlByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlByb21pc2VQcml2YXRlTmFtZSgpLCBwcm9taXNlQ29u
c3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJlZmxlY3RQ
cml2YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5JbnRlcm5hbFByb21pc2VQcml2YXRlTmFtZSgpLCBpbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBl
YXRDaGFyYWN0ZXJQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIs
IFN0cmluZygpLCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1NldFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jSXNTZXQpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5TZXRJdGVyYXRvclByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jU2V0
SXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zZXRJdGVy
YXRvck5leHRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0
cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJhdG9yTmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmlzTWFwUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJc01hcCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQXJyYXlQcml2YXRlTmFtZSgpLCBhcnJheUNvbnN0
cnVjdG9yLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXkpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0FycmF5Q29uc3RydWN0b3JQcml2YXRl
TmFtZSgpLCBwcml2YXRlRnVuY0lzQXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuY29uY2F0TWVtY3B5UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1
bmNDb25jYXRNZW1jcHksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFw
cGVuZE1lbWNweVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQXBwZW5kTWVtY3B5LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb25jYXRTbG93UGF0aFByaXZhdGVOYW1l
KCksIHByaXZhdGVGdW5jQ29uY2F0U2xvd1BhdGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk1h
cEl0ZXJhdG9yUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3Ry
aW5nKCksIHByaXZhdGVGdW5jTWFwSXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5t
YXBJdGVyYXRvck5leHRQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAw
LCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yVmFsdWVOZXh0UHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNBcnJheUl0ZXJhdG9yVmFsdWVOZXh0LCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yS2V5TmV4dFByaXZhdGVOYW1lKCksIHBy
aXZhdGVGdW5jQXJyYXlJdGVyYXRvcktleU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHRQcml2YXRlTmFtZSgpLCBwcml2
YXRlRnVuY0FycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmNyZWF0ZUFycmF5SXRlcmF0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRl
RnVuY0NyZWF0ZUFycmF5SXRlcmF0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLQotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkudG9MZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvTGVuZ3RoLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVnZXJQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuaXNEaWN0aW9uYXJ5UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRp
bkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RJc0RpY3Rpb25hcnlDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzUHJvbWlzZVBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlz
ZU9wZXJhdGlvbnNJc1Byb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5ld1Byb21pc2VSZWFjdGlvblByaXZhdGVOYW1l
KCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlv
bnNOZXdQcm9taXNlUmVhY3Rpb25Db2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5ld1Byb21pc2VDYXBhYmlsaXR5UHJpdmF0ZU5h
bWUoKSwgbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50cmlnZ2VyUHJvbWlzZVJlYWN0aW9uc1ByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJh
dGlvbnNUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJvbWlzZVByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJh
dGlvbnNSZWplY3RQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mdWxmaWxsUHJvbWlzZVByaXZhdGVOYW1lKCksIEpT
RnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNGdWxm
aWxsUHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zUHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0Ny
ZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlYWN0aW9uSm9iUHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0
aW9uc1Byb21pc2VSZWFjdGlvbkpvYkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYlBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlz
ZU9wZXJhdGlvbnNQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29kZUdlbmVyYXRvcih2bSksIHRo
aXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5NYXBJdGVyYXRvclBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHBy
aXZhdGVGdW5jTWFwSXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5tYXBJdGVyYXRvck5leHRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yTmV4dCksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKwogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
UHJpdmF0ZU5hbWUoKSwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGUodm0s
IHRoaXMsIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZt
LCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5NYXBQcml2YXRlTmFtZSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2VuZXJhdG9yUHJvdG90eXBlR2VuZXJhdG9yUmVz
dW1lQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5NYXBQcml2YXRlTmFtZSgpLCBtYXBDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudGhpc1RpbWVWYWx1ZVByaXZhdGVOYW1lKCksIHBy
aXZhdGVGdW5jVGhpc1RpbWVWYWx1ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkudGhpc051bWJlclZhbHVlUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUaGlzTnVtYmVy
VmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICNpZiBFTkFCTEUoSU5U
TCkKQEAgLTc2MSwzNiArNzQyLDMwIEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5OdW1i
ZXJGb3JtYXRQcml2YXRlTmFtZSgpLCBpbnRsLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPk51bWJlckZvcm1hdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICNl
bmRpZiAvLyBFTkFCTEUoSU5UTCkKIAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+aXNDb25zdHJ1Y3RvclByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc0NvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzUmVnRXhwT2JqZWN0UHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lzUmVnRXhwT2JqZWN0
LCBJc1JlZ0V4cE9iamVjdEludHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnNwZWNpZXNDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0U3BlY2llc0NvbnN0cnVjdG9yQ29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1JlZ0V4cE9iamVjdFByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lz
UmVnRXhwT2JqZWN0LCBJc1JlZ0V4cE9iamVjdEludHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKIAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+cmVnRXhwUHJvdG9GbGFnc0dldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b0Zs
YWdzR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0dsb2Jh
bEdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyUHJpdmF0ZU5hbWUs
IHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+cmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9NdWx0
aWxpbmVHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvU291
cmNlR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvU291cmNlR2V0dGVyT2JqZWN0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1N0aWNreUdldHRlclByaXZhdGVOYW1lLCBy
ZWdFeHBQcm90b1N0aWNreUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVn
RXhwUHJvdG9Vbmljb2RlR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvVW5pY29kZUdldHRl
ck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJv
dG9GbGFnc0dldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJPYmplY3Qs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvR2xvYmFs
R2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvSWdub3JlQ2FzZUdl
dHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlck9iamVjdCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9NdWx0aWxpbmVH
ZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b011bHRpbGluZUdldHRlck9iamVjdCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9Tb3VyY2VHZXR0
ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b1NvdXJjZUdldHRlck9iamVjdCwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJQcml2
YXRlTmFtZSgpLCByZWdFeHBQcm90b1N0aWNreUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyUHJpdmF0ZU5h
bWUoKSwgcmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAKICAgICAgICAgLy8gUmVnRXhwLnByb3RvdHlwZSBoZWxwZXJzLgot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwQnVpbHRp
bkV4ZWNQcml2YXRlTmFtZSwgYnVpbHRpblJlZ0V4cEV4ZWMsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnJlZ0V4cENyZWF0ZVByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDIsIFN0cmluZygpLCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5vSW50cmluc2ljKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9y
UmVnRXhwTWF0Y2hQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rp
b24odm0sIHJlZ0V4cFByb3RvdHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1h
dGNoQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5oYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdFByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90
eXBlSGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRDb2RlR2VuZXJhdG9yKHZt
KSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFkdmFuY2VT
dHJpbmdJbmRleFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgcmVnRXhwUHJvdG90eXBlQWR2YW5jZVN0cmluZ0luZGV4Q29kZUdlbmVyYXRvcih2bSks
IHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBFeGVj
UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdF
eHBQcm90b3R5cGVSZWdFeHBFeGVjQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5yZWdFeHBNYXRjaEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTZWFyY2hG
YXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwU3BsaXRGYXN0UHJpdmF0ZU5hbWUs
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVu
Y1NwbGl0RmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvdHlwZVN5bWJv
bFJlcGxhY2VQcml2YXRlTmFtZSwgbV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5bWJvbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJl
Z0V4cFRlc3RGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwg
U3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0LCBSZWdFeHBUZXN0RmFzdEludHJpbnNp
YyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cEJ1aWx0aW5F
eGVjUHJpdmF0ZU5hbWUoKSwgYnVpbHRpblJlZ0V4cEV4ZWMsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cENyZWF0ZVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGVzU3BlY1JlZ0V4cENyZWF0ZSwgTm9JbnRy
aW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBNYXRj
aEZhc3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmlu
ZygpLCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5yZWdFeHBTZWFyY2hGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFNwbGl0RmFzdFBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHJl
Z0V4cFByb3RvRnVuY1NwbGl0RmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2VQcml2YXRlTmFtZSgpLCBtX3JlZ0V4
cFByb3RvdHlwZS0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5yZXBsYWNlU3ltYm9s
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwVGVzdEZhc3RQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBy
ZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCwgUmVnRXhwVGVzdEZhc3RJbnRyaW5zaWMpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAKICAgICAgICAgLy8gU3RyaW5nLnByb3RvdHlw
ZSBoZWxwZXJzLgotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZVBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgc3RyaW5n
UHJvdG90eXBlSGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZUNvZGVHZW5l
cmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+c3RyaW5nSW5jbHVkZXNJ
bnRlcm5hbFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmlu
ZygpLCBidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnN0cmluZ1NwbGl0RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDIsIFN0cmluZygpLCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5zdHJpbmdTdWJzdHJJbnRlcm5hbFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJbmNsdWRlc0lu
dGVybmFsUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdTcGxpdEZhc3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZh
c3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdTdWJzdHJJ
bnRlcm5hbFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3Ry
aW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJJbnRlcm5hbCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICB9OwogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFs
cywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKaW5kZXggYTMy
NDA1NTBjMDNhNzExOTBhOTIwMGQ4YjZmZjU3NDRmZTlkY2M1Mi4uYWJhNzVhYTI1ODNjNGMzZTVk
MzBmOTNiZjJhYTYwNGE2Nzk1ODZkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IGZl
ZmRlY2RmMDNiNjRlNmRmM2I0MTAwZDYxYjZhNDQ3Y2ZhZjJkOGIuLjhhMjdkOTFlNzU1Njk5OGE3
Mjc5ZWY4M2ZlNjYwOGQ0MzRiYzBlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwCkBAIC00Niw3
ICs0Niw3IEBAIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIEpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQ6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTCiAKICAgICBKU1ZhbHVlIGRlZmVycmVk
ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoZXhlYywgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
PmludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogCi0gICAgSlNWYWx1ZSBwcm9taXNlID0g
ZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7
CisgICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQocHJv
bWlzZS5pbmhlcml0cyhKU0ludGVybmFsUHJvbWlzZTo6aW5mbygpKSk7CiAgICAgSlNWYWx1ZSBy
ZXNvbHZlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnJlc29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVk
LmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRl
TmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCmlu
ZGV4IDU2ZTJmNWFlZjkyMDEzOTAyZmIyZjcxNmM3MmRiNDU2ZmJiNjAxYzYuLjAyMDJlMTc5Y2Y0
NzNjODc3NTM0MTZkYWVlZTRhNzU4MmRkYWRlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkpTUHJvbWlzZS5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAj
aW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKQEAgLTU4LDEwICs1OSwxMCBAQCBKU1Byb21pc2U6OkpTUHJv
bWlzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBKU1Byb21pc2U6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlU3RhdGVQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFN0YXR1czo6UGVuZGluZykpKTsKLSAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VGdWxmaWxsUmVhY3Rpb25zUHJp
dmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvbWlzZVJlamVjdFJlYWN0aW9uc1ByaXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsK
LSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VSZXN1bHRQcml2YXRl
TmFtZSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlU3RhdGVQcml2YXRlTmFtZSgpLCBqc051bWJlcihzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oU3RhdHVzOjpQZW5kaW5nKSkpOworICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnNQ
cml2YXRlTmFtZSgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZWplY3RSZWFjdGlvbnNQcml2YXRlTmFt
ZSgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZXN1bHRQcml2YXRlTmFtZSgpLCBqc1VuZGVmaW5lZCgp
KTsKIH0KIAogdm9pZCBKU1Byb21pc2U6OmluaXRpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4ZWN1dG9yKQpAQCAtNzgsMTQgKzc5
LDE0IEBAIHZvaWQgSlNQcm9taXNlOjppbml0aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1CiAKIGF1dG8gSlNQcm9taXNlOjpzdGF0dXMo
Vk0mIHZtKSBjb25zdCAtPiBTdGF0dXMKIHsKLSAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlU3RhdGVQcml2YXRlTmFtZSk7CisgICAgSlNW
YWx1ZSB2YWx1ZSA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUoKSk7CiAgICAgQVNTRVJUKHZhbHVlLmlzVUludDMy
KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdGF0dXM+KHZhbHVlLmFzVUludDMyKCkpOwog
fQogCiBKU1ZhbHVlIEpTUHJvbWlzZTo6cmVzdWx0KFZNJiB2bSkgY29uc3QKIHsKLSAgICByZXR1
cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJpdmF0ZU5h
bWUpOworICAgIHJldHVybiBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnByb21pc2VSZXN1bHRQcml2YXRlTmFtZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VE
ZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZl
cnJlZC5jcHAKaW5kZXggMGFhZDM3MDcxNjFkNDRhNWQ1YWIwODJjZjVmMzIyNzViYjA5NzI5Mi4u
NjVkNzIzODc2YTA3Y2I0MTYxY2I1OWNlNjI0ZGJhZjJhZDBiNjM3YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNyAr
NTksNyBAQCBKU1Byb21pc2VEZWZlcnJlZCogSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbAogCiAgICAgSlNWYWx1ZSBkZWZlcnJlZCA9
IG5ld1Byb21pc2VDYXBhYmlsaXR5KGV4ZWMsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5w
cm9taXNlQ29uc3RydWN0b3IoKSk7CiAKLSAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5n
ZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVByaXZhdGVOYW1lKTsKKyAgICBKU1Zh
bHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VSVChwcm9taXNlLmluaGVy
aXRzKEpTUHJvbWlzZTo6aW5mbygpKSk7CiAgICAgSlNWYWx1ZSByZXNvbHZlID0gZGVmZXJyZWQu
Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlc29sdmVQcml2YXRl
TmFtZSgpKTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRlTmFtZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKaW5kZXgg
YzZmZWRlN2FkYWYxMDA1ZTE2YzFiNzQ0YzIyN2UwNmU2M2RmY2JjNC4uN2JmZDhhOWE0N2IxNWU2
ODdjZTljNmE3MzdiNGZiYmNhZTkwZjYxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4u
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdJdGVyYXRvci5oIgogCisjaW5jbHVkZSAi
QnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgpAQCAtMzgs
MjMgKzQwLDIzIEBAIHZvaWQgSlNTdHJpbmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiBpdGVyYXRlCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUsIGl0ZXJh
dGVkU3RyaW5nKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0l0
ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUsIGpzTnVtYmVyKDApKTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0
ZU5hbWUoKSwgaXRlcmF0ZWRTdHJpbmcpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgp
LCBqc051bWJlcigwKSk7CiB9CiAKIEpTVmFsdWUgSlNTdHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRW
YWx1ZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldERpcmVjdChleGVj
LT52bSgpLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5h
bWUpOworICAgIHJldHVybiBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lKCkpOwogfQog
CiBKU1N0cmluZ0l0ZXJhdG9yKiBKU1N0cmluZ0l0ZXJhdG9yOjpjbG9uZShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBKU1ZhbHVlIGl0ZXJhdGVkU3Ry
aW5nID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZh
dGVOYW1lKTsKLSAgICBKU1ZhbHVlIG5leHRJbmRleCA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSk7CisgICAgSlNWYWx1
ZSBpdGVyYXRlZFN0cmluZyA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsKKyAgICBKU1ZhbHVlIG5leHRJ
bmRleCA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3Ry
aW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpKTsKIAogICAgIGF1dG8gY2xvbmUgPSBK
U1N0cmluZ0l0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVj
dCgpLT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgpLCBhc1N0cmluZyhpdGVyYXRlZFN0cmluZykp
OwotICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0l0ZXJh
dG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUsIG5leHRJbmRleCk7CisgICAgY2xvbmUtPnB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSXRlcmF0b3JOZXh0
SW5kZXhQcml2YXRlTmFtZSgpLCBuZXh0SW5kZXgpOwogICAgIHJldHVybiBjbG9uZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKaW5kZXgg
NGI2MzBjMmQ3YzljZDM0YWZjNmRkYTZmZDZmNDJjMjQzZGM3YWFkYS4uYTdmNTEwYmFiNDVmYTEy
YjdhNjdlYzNmZmRkZjUwMzRjZWY1NTFmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXBQcm90b3R5cGUuY3BwCkBAIC03OCw4ICs3OCw4IEBAIHZvaWQgTWFwUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkudmFsdWVzUHVibGljTmFtZSgpLCBtYXBQcm90b0Z1bmNWYWx1
ZXMsIERvbnRFbnVtLCAwKTsKIAogICAgIC8vIFByaXZhdGUgZ2V0IC8gc2V0IG9wZXJhdGlvbnMu
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+Z2V0UHJpdmF0ZU5hbWUsIG1hcFByb3RvRnVuY0dldCwgRG9udEVudW0sIDEpOwotICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PnNldFByaXZhdGVOYW1lLCBtYXBQcm90b0Z1bmNTZXQsIERvbnRFbnVtLCAyKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5nZXRQcml2YXRlTmFtZSgpLCBtYXBQcm90b0Z1bmNHZXQsIERvbnRFbnVtLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zZXRQcml2YXRlTmFtZSgpLCBtYXBQcm90b0Z1bmNTZXQs
IERvbnRFbnVtLCAyKTsKIAogICAgIEpTRnVuY3Rpb24qIGVudHJpZXMgPSBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZW50cmllc1B1YmxpY05hbWUoKS5zdHJpbmcoKSwgbWFwUHJvdG9GdW5jRW50cmllcyk7CiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCksIGVudHJpZXMsIERvbnRFbnVtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApp
bmRleCAwOGRhMWRiZmFkMjIzZjU5NWQ1M2Q5MjE1ZjE5NmMxM2E1MmYxOTNlLi4zYzI5M2ZiYjY2
NGY1NjYwNDhmYjg4Y2MzNWRmNjcyZWI5YTAzZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0yMSw2ICsyMSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAor
I2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIK
ICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgpAQCAt
OTksMTAgKzEwMCwxMCBAQCB2b2lkIE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iagogICAgIC8vIG5vLiBvZiBh
cmd1bWVudHMgZm9yIGNvbnN0cnVjdG9yCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9u
dEVudW0gfCBEb250RGVsZXRlKTsKIAotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmNyZWF0ZVByaXZhdGVOYW1lLCBvYmplY3RDb25z
dHJ1Y3RvckNyZWF0ZSwgRG9udEVudW0sIDIpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmRlZmluZVByb3BlcnR5UHJpdmF0ZU5h
bWUsIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5n
ZXRQcm90b3R5cGVPZlByaXZhdGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9m
LCBEb250RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+Z2V0T3duUHJvcGVydHlOYW1lc1ByaXZhdGVOYW1lLCBvYmpl
Y3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMsIERvbnRFbnVtLCAxKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5jcmVhdGVQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwg
RG9udEVudW0sIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmRlZmluZVByb3BlcnR5UHJpdmF0ZU5h
bWUoKSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSwgRG9udEVudW0sIDMpOworICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmdldFByb3RvdHlwZU9mUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3Ry
dWN0b3JHZXRQcm90b3R5cGVPZiwgRG9udEVudW0sIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdl
dE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5TmFtZXMsIERvbnRFbnVtLCAxKTsKIH0KIAogSlNGdW5jdGlvbiogT2JqZWN0Q29uc3Ry
dWN0b3I6OmFkZERlZmluZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZmxlY3RPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVj
dE9iamVjdC5jcHAKaW5kZXggMGFjMzIwZjJlODhjYWRkYzk5NWRkYjJlNzBlMmE2NjJiZGJhZGMx
Ni4uMTc1MTIyZjVhMDFmMzNjNWZhMjY2YTk2OGQ1M2NmODU0NTJmZWY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlZmxlY3RPYmplY3QuaCIKIAorI2lu
Y2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaCIKQEAgLTg1LDggKzg2LDggQEAgdm9pZCBSZWZsZWN0T2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKIAotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm93
bktleXNQcml2YXRlTmFtZSwgcmVmbGVjdE9iamVjdE93bktleXMsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JQcml2YXRl
TmFtZSwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvciwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHksIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm93bktleXNQcml2
YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0T3duS2V5cywgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldE93blByb3BlcnR5RGVzY3JpcHRv
clByaXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAyKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5jcHAKaW5kZXggNDY5OTE4MjQ2OGU5M2M5YjMwNWMzYmE0YzQxZDI0NDI2OTRiMGI4MC4uYTdi
YTdjOTMxYzMwOGNlMzg0MGI3ZGJjZTBjZmE1MzU1MDJlNDBlZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3RyaW5nUHJvdG90eXBlLmgiCiAK
KyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkQ2FsbC5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5o
IgpAQCAtMTM3LDggKzEzOCw4IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyCiAgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvbmNhdCIsIHN0cmluZ1Byb3RvRnVu
Y0NvbmNhdCwgRG9udEVudW0sIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJpbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZiwgRG9udEVudW0sIDEp
OwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhP
ZiIsIHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mLCBEb250RW51bSwgMSk7Ci0gICAgSlNDX05B
VElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPnJlcGxhY2VVc2luZ1JlZ0V4cFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNl
VXNpbmdSZWdFeHAsIERvbnRFbnVtLCAyLCBTdHJpbmdQcm90b3R5cGVSZXBsYWNlUmVnRXhwSW50
cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5yZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2hQcml2YXRlTmFtZSwgc3RyaW5n
UHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoLCBEb250RW51bSwgMik7CisgICAgSlND
X05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGxhY2VVc2luZ1JlZ0V4cFByaXZhdGVOYW1lKCksIHN0
cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCwgRG9udEVudW0sIDIsIFN0cmluZ1Byb3Rv
dHlwZVJlcGxhY2VSZWdFeHBJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGxhY2VV
c2luZ1N0cmluZ1NlYXJjaFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2lu
Z1N0cmluZ1NlYXJjaCwgRG9udEVudW0sIDIpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJzbGljZSIsIHN0cmluZ1Byb3RvRnVuY1NsaWNlLCBEb250RW51bSwg
Mik7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0ciIs
IHN0cmluZ1Byb3RvRnVuY1N1YnN0ciwgRG9udEVudW0sIDIpOwogICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHJpbmciLCBzdHJpbmdQcm90b0Z1bmNTdWJz
dHJpbmcsIERvbnRFbnVtLCAyKTsKQEAgLTE3NSw3ICsxNzYsNyBAQCB2b2lkIFN0cmluZ1Byb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cgogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJub3Jt
YWxpemUiLCBzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUsIERvbnRFbnVtLCAxKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5pdGVy
YXRvclN5bWJvbCwgc3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IsIERvbnRFbnVtLCAwKTsKIAotICAg
IEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5jaGFyQ29kZUF0UHJpdmF0ZU5hbWUsIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2Rl
QXQsIERvbnRFbnVtLCAxLCBDaGFyQ29kZUF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lO
VFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuY2hhckNvZGVBdFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY0NoYXJD
b2RlQXQsIERvbnRFbnVtLCAxLCBDaGFyQ29kZUF0SW50cmluc2ljKTsKIAogICAgIC8vIFRoZSBj
b25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBTdHJpbmdDb25zdHJ1Y3RvciBo
YXMgYmVlbiBidWlsdAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281666</attachid>
            <date>2016-06-20 12:52:24 -0700</date>
            <delta_ts>2016-06-20 13:58:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158893-20160620125217.patch</filename>
            <type>text/plain</type>
            <size>169581</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjFlYTQzZDNhN2Y4ZjllODA0MWJmNWMwYzliMGRkMmIzYzNhNTYyLi5hMGQwMmViMmFiYzczNjBk
MGMzZTc3ODcwYzdjMjQzOThjOTZmZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjMgQEAKKzIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0ZSBnbG9i
YWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuIEZpcnN0
IGl0IG1vdmVzIGFsbCB0aGUgYnVpbHRpbiBuYW1lcworICAgICAgICBvdXQgb2YgQ29tbW9uSWRl
bnRpZmllcnMgYW5kIGludG8gQnVpbHRpbk5hbWVzLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAg
YWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBCdWlsdGlucyBkb2VzIG5vdCByZXF1aXJlIHJl
YnVpbGRpbmcKKyAgICAgICAgYWxsIG9mIEphdmFTY3JpcHRDb3JlLiBUaGlzIHBhdGNoIGFsc28g
YWRkcyBhIG5ldyBkZWNvcmF0b3IgdG8gb3VyCisgICAgICAgIGJ1aWx0aW5zIEBwcml2YXRlR2xv
YmFsIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCB0aGUgZnVuY3Rpb24KKyAgICAgICAgb24g
dGhlIGdsb2JhbCBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHRoZSBz
YW1lIGFzCisgICAgICAgIHRoZSBwcml2YXRlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIFRoaXMgcGF0Y2gsIGFsc28sIHJlbW92ZXMgdGhlIEpTQXJyYXlJdGVyYXRvci5oLy5jcHAg
ZmlsZXMKKyAgICAgICAgYXMgdGhleSBubyBsb25nZXIgYXBwZWFyIHRvIGJlIHVzZWQgaW4gYW55
IHJlYWwgd2F5LiBGaW5hbGx5LAorICAgICAgICB0aGUgYnVpbHRpbnMgdGVzdHMgaGF2ZSBiZWVu
IHJlYmFzZWxpbmVkLiBJdCBhcHBlYXJzIHRoaXMgaGFzCisgICAgICAgIG5vdCBiZWVuIGRvbmUg
Zm9yIGEgd2hpbGUgc28gdGhlIGV4cGVjdGVkIGZpbGVzIGNvbnRhaW4gb3RoZXIKKyAgICAgICAg
Y2hhbmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2NyaXB0cy9idWls
dGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6CisgICAgICAgIChCdWls
dGluc0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChn
ZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAoZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfZ2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKToKKyAgICAgICAgKiBT
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weToKKyAg
ICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5OgorICAgICAgICAoQnVp
bHRpbkZ1bmN0aW9uLl9faW5pdF9fKToKKyAgICAgICAgKEJ1aWx0aW5GdW5jdGlvbi5mcm9tU3Ry
aW5nKToKKyAgICAgICAgKiBidWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzOgorICAg
ICAgICAqIGJ1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0J1
aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoK
KyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxPYmplY3QuanM6CisgICAgICAgICogYnVpbHRpbnMv
UHJvbWlzZU9wZXJhdGlvbnMuanM6CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBl
LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qczoKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6aW5pdGlhbGl6ZUFycm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZCk6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpleHBlY3RlZEZ1bmN0aW9uRm9ySWRlbnRpZmll
cik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmpl
Y3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWROZXdUYXJnZXRG
cm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6OkJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9u
TGV4aWNhbEVudmlyb25tZW50KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXROZXdUYXJnZXRUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dERlcml2ZWRDb25zdHJ1Y3RvclRvQXJyb3dGdW5j
dGlvbkNvbnRleHRTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
R2VuZXJhdG9yU3RhdGVDaGFuZ2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0SG9tZU9iamVjdEZvckNhbGxlZSk6CisgICAgICAg
IChKU0M6OmVtaXRQdXRIb21lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKToK
KyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJv
cGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6TGV4ZXI8TENoYXI+OjpwYXJzZUlkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpMZXhl
cjxVQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6Cisg
ICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5
cGU+OjpjcmVhdGVHZW5lcmF0b3JQYXJhbWV0ZXJzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFyYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9BcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHA6CisgICAgICAgIChKU0M6OkNvbW1v
bklkZW50aWZpZXJzOjpDb21tb25JZGVudGlmaWVycyk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90
b3R5cGVHZXR0ZXJGb3JtYXQpOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsSW5zdGFuY2VXaXRoV29ya2Fyb3Vu
ZEZvckxlZ2FjeUludGxDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9KU0FycmF5SXRl
cmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmZpbmlz
aENyZWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpraW5k
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBSZW1vdmVk
LgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpKU0FycmF5SXRlcmF0b3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxW
aWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6Cisg
ICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5j
cHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpKU1Byb21pc2U6OnJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VEZWZl
cnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVy
YXRvcjo6aXRlcmF0ZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmNs
b25lKToKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
Ok1hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OlJlZmxlY3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weToKKyAgICAgICAg
KEJ1aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAg
ICAgKGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyk6CisgICAgICAgIChnZW5l
cmF0ZV9zZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8pOgorICAgICAg
ICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHk6CisgICAgICAgIChCdWlsdGlu
RnVuY3Rpb24uX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLmZyb21TdHJpbmcp
OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENv
cmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1T
ZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQ6
CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0
b3ItQ29tYmluZWQuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJl
c3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAg
ICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRp
dGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1
YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFy
YXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogYnVp
bHRpbnMvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9BcnJh
eVByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAg
ICAgKiBidWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanM6CisgICAgICAgICogYnVpbHRpbnMv
R2xvYmFsT2JqZWN0LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpz
OgorICAgICAgICAqIGJ1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWls
dGlucy9TdHJpbmdQcm90b3R5cGUuanM6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5jcHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVBcnJv
d0Z1bmN0aW9uQ29udGV4dFNjb3BlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhp
Y2FsRW52aXJvbm1lbnQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExv
YWREZXJpdmVkQ29uc3RydWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJv
d0Z1bmN0aW9uQ29udGV4dFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlQ2hhbmdl
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpT
Qzo6ZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0UHV0SG9tZU9i
amVjdCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhv
c3Q6OnN1YnR5cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIu
Y3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxMQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAg
ICAgIChKU0M6OkxleGVyPFVDaGFyPjo6cGFyc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
UGFyc2VyPExleGVyVHlwZT46OmNyZWF0ZUdlbmVyYXRvclBhcmFtZXRlcnMpOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNsYXJhdGlvbik6CisgICAgICAg
ICogcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51
bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1l
L0ludGxPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5j
ZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50
aW1lL0pTQXJyYXlJdGVyYXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJ
dGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5
SXRlcmF0b3I6OmtpbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
Oml0ZXJhdGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJh
dG9yLmg6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3Ry
dWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRv
cik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAo
SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlND
OjpKU1N0cmluZ0l0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmdJdGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5n
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5
SW5saW5lcy5oOgorCiAyMDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1vcmUgdHlwZXMgb2Yg
SUNzIGlubGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDYzNjU2ZDIy
N2U1Mzc4Nzc0Zjk5N2ZhZjQ2ZDFiYWU1OTNjYWM4ZDIuLjIwNzUxZmQ2OWMyZThkY2ZiNTRiNjhj
NjViNzVhYjJiZTJkZDZhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTY4NSw3ICs2ODUsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUv
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclBy
b3RvdHlwZS5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAotICAgIHJ1bnRp
bWUvSlNBcnJheUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAog
ICAgIHJ1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2FsbGVlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4NDNlOGNlZThjMDM3NjI5NWE5MGM0
MjA2MjE0NmZiYjk1Li45MWI3YWEzOTk3NDRjMGNkZGY5OGM1OTkxZjI0NWZjM2M1MDVmZTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcxMCw3ICsxNzEwLDcgQEAKIAkJQTc0
REVGOTUxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEYxODJEOTkxNDAwNTIyQzIy
IC8qIEpTTWFwSXRlcmF0b3IuY3BwICovOyB9OwogCQlBNzRERUY5NjE4MkQ5OTE0MDA1MjJDMjIg
LyogSlNNYXBJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc0REVGOTAxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzU3MDZERTEx
OEEyQkNGMDA1N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJCQ0YwMDU3Rjg4RiAv
KiBKSVRBcml0aG1ldGljMzJfNjQuY3BwICovOyB9OwotCQlBNzVFRTlCMjE4QUFCN0UyMDBBQUQw
NDMgLyogQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi87
IH07CisJCUE3NUVFOUIyMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUVFOUIwMThBQUI3RTIw
MEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJs
ZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzY3QjVCNTE3
QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2N0I1QjMxN0EwQjk2
NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcCAqLzsgfTsKIAkJ
QTc2N0I1QjYxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY3QjVC
NDE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLzsg
fTsKQEAgLTE3NjYsOCArMTc2Niw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBV
bmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2NrLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCREFF
QzgxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzIxN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9OwogCQlBN0JEQUVDOTE3
RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBD
IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFFQ0ExN0Y0RUExNDAw
RjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0
ZXJhdG9yLmNwcCAqLzsgfTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdCREFFQzUxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovOyB9OwogCQlB
N0JGRjNDMDE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYzQkYxNzk4Njg5NDAw
MDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdDMEM0QUMxNjgxMDMw
MjAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2Ny
aXB0UmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQTE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMzk4Niw4ICszOTg0LDYg
QEAKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5j
cHA7IH07CiAJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90
b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCREFFQzQxN0Y0RUExNDAw
RjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5jcHA7IH07Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5ODY4OTQwMDAyRjQ2MiAv
KiBERkdGaWx0cmF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR0ZpbHRyYXRpb25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0cmF0aW9uUmVzdWx0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAv
KiBKU1NjcmlwdFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1NjcmlwdFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFCMTY3
QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01NzE3LDggKzU3MTMsNiBAQAogCQkJCTBGMkI2NkJBMTdCNkI1QUIwMEE3QUUz
RiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2QkIxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJCUE3QkRBRUM0MTdGNEVB
MTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJCUE3QkRBRUM1MTdGNEVB
MTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4NkZBOUU4RjE0MkJCQjJE
MDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4NkZBOUU5MDE0MkJCQjJF
MDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNjU3Q0Y0NTYxOUJGNjY2MjAw
NEFDQkYyIC8qIEpTQ2FsbGVlLmNwcCAqLywKQEAgLTc2NjAsNyArNzY1NCw2IEBACiAJCQkJMEYy
QjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmll
dy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdCREFFQ0IxN0Y0RUEx
NDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3
RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtOTEwNyw3ICs5MTAwLDYgQEAKIAkJCQkwRjJCNjZFNjE3QjZCNUFCMDBBN0FFM0Yg
LyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZF
ODE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTUzMTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFwc2hvdEJ1aWxkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJ
dGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3RjRGMDBBODE5NUUg
LyogSlNCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNC
NyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUw
OEQyMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQppbmRl
eCA4OTFiZDNjYjQyNjBhODkxYWNlNTIzMzdjYTYwN2VjNzU3YjFkMGU0Li42MGVlYmM3NzIyNjM1
NWEwYzE0OWQyZmE1MDIyNDcxYzAyOWI0NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIu
cHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNf
Z2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2Fz
aGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MCw2ICs2
MCw3IEBAIGNsYXNzIEJ1aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IoQnVpbHRpbnNHZW5l
cmF0b3IpOgogICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlv
bl9mb3Jfb2JqZWN0KG9iamVjdCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVy
YXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisgICAgICAg
IHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9wcml2YXRl
X2NvZGVfbmFtZV9tYWNybygpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLkNvbWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQogICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSku
c3Vic3RpdHV0ZShhcmdzKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBs
YXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCkBAIC0xNTAs
MyArMTUxLDIyIEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVO
YW1lKXNDb25zdHJ1Y3RBYmlsaXR5OyIiIiAlIGZ1bmN0aW9uCiAKICAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKICAg
ICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9u
X2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8oc2VsZik6CisgICAgICAgIGFyZ3Mg
PSB7CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNl
dHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQor
ICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJ
TFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQorICAg
ICAgICBmdW5jdGlvbnMgPSBmaWx0ZXIobGFtYmRhIGZ1bmN0aW9uOiBmdW5jdGlvbi5pc19nbG9i
YWxfcHJpdmF0ZSwgc2VsZi5tb2RlbCgpLmFsbF9mdW5jdGlvbnMoKSkKKyAgICAgICAgZnVuY3Rp
b25zLnNvcnQoa2V5PWxhbWJkYSB4OiB4LmZ1bmN0aW9uX25hbWUpCisgICAgICAgIGZvciBmdW5j
dGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAg
ICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAgICAgICAg
ICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlv
bihmdW5jdGlvbiksCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgi
ICAgIG1hY3JvKCUoZnVuY05hbWUpcywgJShjb2RlTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdz
KQorCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19tb2RlbC5weSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CmluZGV4
IDAyMmE5OGIyYjIxNjE0ZDg0MWFlNWNhNmRiZDUwMTM5NWJhZjcyYzAuLjc3YjJiODg1Y2RjYTIx
YTlkZmQzNzJiMzM1ZjFjOTNkMGY0OWY1NjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CkBAIC00MSw4ICs0
MSw5IEBAIF9GUkFNRVdPUktfQ09ORklHX01BUCA9IHsKIH0KIAogZnVuY3Rpb25IZWFkUmVnRXhw
ID0gcmUuY29tcGlsZShyIig/OkBbXHd8PV0rXHMqXG4pKmZ1bmN0aW9uXHMrXHcrXHMqXCguKj9c
KSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSW50cmluc2ljUmVnRXhwID0g
cmUuY29tcGlsZShyIl5AaW50cmluc2ljPShcdyspXHMqXG4iLCByZS5NVUxUSUxJTkUgfCByZS5E
T1RBTEwpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXkBjb25z
dHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uR2xvYmFsUHJpdmF0
ZVJlZ0V4cCA9IHJlLmNvbXBpbGUociIuKl5AZ2xvYmFsUHJpdmF0ZSIsIHJlLk1VTFRJTElORSB8
IHJlLkRPVEFMTCkKK2Z1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBp
bnRyaW5zaWM9KFx3KykiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCitmdW5jdGlvbklzQ29u
c3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGNvbnN0cnVjdG9yIiwgcmUuTVVMVElM
SU5FIHwgcmUuRE9UQUxMKQogZnVuY3Rpb25OYW1lUmVnRXhwID0gcmUuY29tcGlsZShyImZ1bmN0
aW9uXHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKIGZ1bmN0aW9uUGFy
YW1ldGVyRmluZGVyID0gcmUuY29tcGlsZShyIl5mdW5jdGlvblxzKyg/Olx3KylccypcKCgoPzpc
cypcdyspP1xzKig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RB
TEwpCiAKQEAgLTk0LDExICs5NSwxMiBAQCBjbGFzcyBCdWlsdGluT2JqZWN0OgogCiAKIGNsYXNz
IEJ1aWx0aW5GdW5jdGlvbjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwg
ZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmluc2ljKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBw
YXJhbWV0ZXJzLCBpc19jb25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZhdGUsIGludHJpbnNpYyk6
CiAgICAgICAgIHNlbGYuZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uX25hbWUKICAgICAgICAgc2Vs
Zi5mdW5jdGlvbl9zb3VyY2UgPSBmdW5jdGlvbl9zb3VyY2UKLSAgICAgICAgc2VsZi5pc19jb25z
dHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBhcmFt
ZXRlcnMKKyAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCisgICAg
ICAgIHNlbGYuaXNfZ2xvYmFsX3ByaXZhdGUgPSBpc19nbG9iYWxfcHJpdmF0ZQogICAgICAgICBz
ZWxmLmludHJpbnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9iamVjdCA9IE5vbmUgICMg
U2V0IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMTksMTEgKzEyMSwxMiBAQCBj
bGFzcyBCdWlsdGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9u
TmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAgICAgICAgaXNfY29uc3Ry
dWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25fc291cmNl
KSAhPSBOb25lCisgICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVuY3Rpb25HbG9iYWxQcml2
YXRlUmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQogICAgICAgICBwYXJhbWV0
ZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRlckZpbmRlci5maW5kYWxs
KGZ1bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAgaWYgbGVuKHBhcmFtZXRl
cnNbMF0pID09IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAotICAgICAgICByZXR1
cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwgaXNfY29u
c3RydWN0b3IsIHBhcmFtZXRlcnMsIGludHJpbnNpYykKKyAgICAgICAgcmV0dXJuIEJ1aWx0aW5G
dW5jdGlvbihmdW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2Nv
bnN0cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKQogCiAgICAgZGVmIF9fc3Ry
X18oc2VsZik6CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUgKHNlbGYuZnVuY3Rpb25f
bmFtZSwgJywgJy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdAppbmRleCBkYmQzZTEyY2E0YTE5YzlkZmQ4M2Ji
ODkzNmY1YjAyYjE0YTg3NGU5Li5hZjM5ODkzMzZmNjU2NDBjZjY5MjU2MTIyOTVhMjM5ODFlOGIw
YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMt
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1
bHQKQEAgLTYwLDYgKzYwLDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBz
X2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWIKICAgICBtYWNybyhm
dWxmaWxsUHJvbWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFByb21pc2UpIFwKIAorI2RlZmluZSBK
U0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwK
KwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5h
bWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5h
bWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwNyw0NSArMTA5LDQyIEBAIEpTQ19GT1JF
QUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAi
QnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUg
IkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVp
bHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0
cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNl
UmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTM7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlz
ZVJlamVjdFByb21pc2VDb2RlTGVuZ3RoID0gNDEwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmlu
c2ljIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9J
bnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUg
PQogICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAg
ICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgcmVh
Y3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAogICAgICIgICAg
cHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAogICAgICIgICAgcHJvbWlzZS5A
cHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHByb21p
c2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHBy
b21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwK
ICAgICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21p
c2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdn
ZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAogICAgICJ9KVxuIiBc
CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmls
bFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNv
ZGVMZW5ndGggPSA0MTI7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNl
Q29kZUxlbmd0aCA9IDQwOTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Q
cm9taXNlRnVsZmlsbFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNv
bnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogICAgICIoZnVu
Y3Rpb24gKHByb21pc2UsIHZhbHVlKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ug
c3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMgPSBwcm9t
aXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZVJlc3VsdCA9IHZhbHVlO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmls
bFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJl
amVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlz
ZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIEBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwg
cmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE1NCw3
ICsxNTMsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2Rl
ID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5h
bWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMj
R2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0
YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1
dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMj
SW50cmluc2ljKTsgfQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dF
TkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMWIxZDVlMWZiYjQz
YTNhYWUzMDFkMDMzOTMzZTE2ZmM1ZmEwM2M4ZC4uMGRmZTRhMzYyOTc5ZmI3Mjk0MjI1ZmE4ODIz
YzViMDJiNjdhM2MyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNl
cGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJh
dGUuanMtcmVzdWx0CkBAIC0xMDksNDUgKzEwOSw0MiBAQCBKU0NfRk9SRUFDSF9CVUlMVElOLlBS
T01JU0VfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRl
ICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVk
ZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZN
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19i
dWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29u
c3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21p
c2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCA9IDQxMzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9t
aXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRy
aW5zaWMgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpO
b0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29k
ZSA9CiAgICAgIihmdW5jdGlvbiAocHJvbWlzZSwgcmVhc29uKVxuIiBcCiAgICAgIntcbiIgXAog
ICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBy
ZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zO1xuIiBcCiAgICAgIiAg
ICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCiAgICAgIiAgICBwcm9taXNl
LkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJv
bWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAg
cHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAotICAgICJcbiIg
XAogICAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0ZWQocHJv
bWlzZSwgcmVhc29uLCByZWFjdGlvbnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJp
Z2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pO1xuIiBcCiAgICAgIn0pXG4i
IFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VGdWxm
aWxsUHJvbWlzZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpD
YW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNl
Q29kZUxlbmd0aCA9IDQxMjsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21p
c2VDb2RlTGVuZ3RoID0gNDA5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRp
blByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwog
Y29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSA9CiAgICAgIihm
dW5jdGlvbiAocHJvbWlzZSwgdmFsdWUpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVz
ZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIHJlYWN0aW9ucyA9IHBy
b21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBw
cm9taXNlUmVzdWx0ID0gdmFsdWU7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VGdWxm
aWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNl
UmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9t
aXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAg
QEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVl
LCByZWFjdGlvbnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclByb21pc2VS
ZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMTU2
LDcgKzE1Myw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNv
ZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9u
TmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1l
IyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVj
dXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhl
Y3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRp
bkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1l
IyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RF
KERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQu
anMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVz
dWx0CmluZGV4IDJiYjRjYmNlN2E4N2Y4ZmQwMGM5MmY0MWM0MjQ4ZmZiOWQwZjM2OWEuLjBiYTFk
MGE1MzUyMTFhNjI1YjlmODg0ZjVkYTg2NzNjZjgxMzYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYxLDYgKzYxLDggQEAg
ZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JF
YWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkKICAgICBtYWNybyhldmVyeSkgXAogICAgIG1hY3JvKGZv
ckVhY2gpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVf
R0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwOSwx
OCArMTExLDE5IEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGlu
ZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUNvbnN0cnVjdEFiaWxp
dHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBz
X2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjI7Citjb25zdCBpbnQgc19idWls
dGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoID0gNzYwOworc3RhdGljIGNvbnN0IEpTQzo6SW50
cmluc2ljIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRy
aW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogICAgICIo
ZnVuY3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0
cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIg
XAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmV2
ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsXCIpO1xuIiBcCiAgICAgIiAgICBc
biIgXApAQCAtMTI5LDcgKzEzMiw2IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2
ZXJ5Q29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0
aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgp
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1
bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5
LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAg
ICAiICAgIFxuIiBcCkBAIC0xNDcsMTIgKzE0OSwxMiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Q
cm90b3R5cGVFdmVyeUNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19i
dWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBl
Rm9yRWFjaENvZGVMZW5ndGggPSA2OTQ7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9y
RWFjaENvZGVMZW5ndGggPSA2OTI7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWls
dGluUHJvdG90eXBlRm9yRWFjaENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29u
c3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAgICIoZnVuY3Rpb24g
KGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xu
IiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAogICAgICIg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBA
IC0xNjEsNyArMTYzLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENv
ZGUgPQogICAgICIgICAgXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7
XG4iIFwKICAgICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtcbiIg
XAotICAgICJcbiIgXAogICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlv
blwiKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90
b3R5cGUuZm9yRWFjaCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAgICAi
ICAgIFxuIiBcCkBAIC0xNzgsNyArMTc5LDcgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90
eXBlRm9yRWFjaENvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5h
bWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFi
bGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZt
LmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2
bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVy
biB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2
bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwg
c18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQK
aW5kZXggMzE1ZTAwZThiOTk4YWNkNzkzYjUyMGE1NGVjNmY5ODk1NDQ3ZGIyYi4uM2NjZTkzYWI4
ZWE4NzI1ZGQ3NjQzOGNmZGJjYjRhNWU5ZGZlODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTExLDE4ICsxMTEsMTkgQEAg
SlNDX0ZPUkVBQ0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJ
Tl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRl
ICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxs
SW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBK
U0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29uc3RydWN0
QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3Qg
aW50IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MjsKK2NvbnN0IGludCBz
X2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjA7CitzdGF0aWMgY29uc3QgSlND
OjpJbnRyaW5zaWMgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlSW50cmluc2ljID0gSlNDOjpO
b0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiAg
ICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1
c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxs
KVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5
cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAi
ICAgIFxuIiBcCkBAIC0xMzEsNyArMTMyLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90
eXBlRXZlcnlDb2RlID0KICAgICAiICAgIFxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXkgPSBAT2Jq
ZWN0KHRoaXMpO1xuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxl
bmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09
IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwi
QXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIg
XAogICAgICIgICAgXG4iIFwKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVp
bHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0
eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNv
bnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm90
b3R5cGVGb3JFYWNoQ29kZUxlbmd0aCA9IDY5NDsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5
cGVGb3JFYWNoQ29kZUxlbmd0aCA9IDY5MjsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBz
X2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7
CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAgICAgIihmdW5j
dGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0
XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCiAg
ICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9yRWFj
aCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAogICAgICIgICAgXG4i
IFwKQEAgLTE2Myw3ICsxNjMsNiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JF
YWNoQ29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0
aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgp
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1
bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5
LnByb3RvdHlwZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAog
ICAgICIgICAgXG4iIFwKQEAgLTE4MCw3ICsxNzksNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Q
cm90b3R5cGVGb3JFYWNoQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihj
b2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1
cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAg
cmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5s
aW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxs
b3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJP
VE9UWVBFX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5D
b25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3Ry
dWN0b3ItQ29tYmluZWQuanMtcmVzdWx0CmluZGV4IDAzOTFkZTI4ZDQ1NzY4NjE1NmM2ZDM1MTg5
MzlmZWVlYzVkY2VhODYuLmRmZTZhM2RjMjYwMGIxYjQ0OGFmNDI0NjM2YTkwMmE0ZGRjNmIzODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1y
ZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJl
c3VsdApAQCAtNjAsNiArNjAsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5
IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RBYmlsaXR5OwogICAgIG1hY3Jv
KGZyb20pIFwKICAgICBtYWNybyhvZikgXAogCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5f
RlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShtYWNybykgXAorCiAjZGVmaW5lIERFQ0xBUkVf
QlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkg
XAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mKTsKIApAQCAtMTA3LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERF
Q0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMu
aCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5j
bHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0b3JPZkNv
ZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1
Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyOTQ7Citj
b25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyODY7CitzdGF0aWMg
Y29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVJbnRyaW5zaWMg
PSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JPZkNv
ZGUgPQogICAgICIoZnVuY3Rpb24gKClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNl
IHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gYXJndW1l
bnRzLmxlbmd0aDtcbiIgXAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0g
dHlwZW9mIHRoaXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3IEBBcnJh
eShsZW5ndGgpO1xuIiBcCiAgICAgIiAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbmd0aDsgKytr
KVxuIiBcCiAgICAgIiAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1bWVudHNb
a10pO1xuIiBcCkBAIC0xMzAsNDkgKzEzMiwzNSBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25z
dHJ1Y3Rvck9mQ29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0
aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJp
bGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJv
bUNvZGVMZW5ndGggPSAyMDQ2OworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNv
ZGVMZW5ndGggPSAxOTc5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNv
bnN0cnVjdG9yRnJvbUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hh
ciogc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoaXRlbXMg
KVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgIHZhciB0aGlzT2JqID0gdGhpcztcbiIgXAotICAgICJcbiIgXAogICAg
ICIgICAgdmFyIG1hcEZuID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1
bmRlZmluZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzQXJnO1xuIiBcCi0g
ICAgIlxuIiBcCiAgICAgIiAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkge1xuIiBcCiAgICAg
IiAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCiAgICAgIiAg
ICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyB0aGF0
IHRoZSBzZWNvbmQgYXJndW1lbnQsIHdoZW4gcHJvdmlkZWQsIGJlIGEgZnVuY3Rpb25cIik7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpXG4i
IFwKICAgICAiICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTtcbiIgXAogICAgICIg
ICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoaXRlbXMgPT0gbnVsbClcbiIgXAog
ICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyBh
biBhcnJheS1saWtlIG9iamVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gaXRlbXNbQHN5bWJvbEl0ZXJh
dG9yXTtcbiIgXAogICAgICIgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHtcbiIgXAog
ICAgICIgICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09IFwiZnVuY3Rpb25cIilc
biIgXAogICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20g
cmVxdWlyZXMgdGhhdCB0aGUgcHJvcGVydHkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LCBpdGVtc1tT
eW1ib2wuaXRlcmF0b3JdLCB3aGVuIGV4aXN0cywgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAotICAg
ICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKICAgICAiICAgICAgICB2YXIgcmVzdWx0ID0g
KHR5cGVvZiB0aGlzT2JqID09PSBcImZ1bmN0aW9uXCIpID8gQE9iamVjdChuZXcgdGhpc09iaigp
KSA6IFtdO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgdmFyIGsgPSAwO1xuIiBcCiAg
ICAgIiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRlbXMpO1xu
IiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAgICAgIC8vXG4i
IFwKLSAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHdyYXBwZXIgPSB7XG4i
IFwKICAgICAiICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7XG4iIFwKICAgICAiICAg
ICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjtcbiIgXAogICAgICIgICAgICAgICAgICB9XG4i
IFwKICAgICAiICAgICAgICB9O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgZm9yICh2
YXIgdmFsdWUgb2Ygd3JhcHBlcikge1xuIiBcCiAgICAgIiAgICAgICAgICAgIGlmIChtYXBGbilc
biIgXAogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdGhp
c0FyZyA9PT0gdW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwodGhpc0Fy
ZywgdmFsdWUsIGspKTtcbiIgXApAQCAtMTgwLDE3ICsxNjgsMTIgQEAgY29uc3QgY2hhciogc19i
dWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIiAgICAgICAgICAgICAgICBAcHV0QnlW
YWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICAgICAgayArPSAx
O1xuIiBcCiAgICAgIiAgICAgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgcmVz
dWx0Lmxlbmd0aCA9IGs7XG4iIFwKICAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xuIiBcCiAg
ICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2UgPSBAT2Jq
ZWN0KGl0ZW1zKTtcbiIgXAogICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0b0xlbmd0
aChhcnJheUxpa2UubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgLy9cbiIgXAog
ICAgICIgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/
IEBPYmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5
TGlrZUxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBrID0gMDtcbiIgXAog
ICAgICIgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAogICAgICIgICAgICAg
IHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTtcbiIgXApAQCAtMjAwLDcgKzE4Myw2IEBAIGNvbnN0
IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICBA
cHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICBrICs9
IDE7XG4iIFwKICAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmVzdWx0Lmxl
bmd0aCA9IGFycmF5TGlrZUxlbmd0aDtcbiIgXAogICAgICIgICAgcmV0dXJuIHJlc3VsdDtcbiIg
XAogICAgICJ9KVxuIiBcCkBAIC0yMTAsNyArMTkyLDcgQEAgY29uc3QgY2hhciogc19idWlsdGlu
Q29uc3RydWN0b3JGcm9tQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihj
b2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1
cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAg
cmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5s
aW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxs
b3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09E
RShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJB
VE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0
ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMt
cmVzdWx0CmluZGV4IDJkMjZlNDkzNDA4MmFlZDYxMjI2NzUzM2EwMWI0NzJmM2U5NTVlNTMuLmVk
MTg0NWViOGJjMjgxOTNhZjVlYzJmZDNmOWE0Yzg1ZmI4ODYwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTA5LDIwICsx
MDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09ERShERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgi
CiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjk0OworY29u
c3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjg2Oworc3RhdGljIGNv
bnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlSW50cmluc2ljID0g
SlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
ID0KICAgICAiKGZ1bmN0aW9uICgpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBz
dHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50
cy5sZW5ndGg7XG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IHR5
cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXko
bGVuZ3RoKTtcbiIgXAogICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylc
biIgXAogICAgICIgICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2td
KTtcbiIgXApAQCAtMTMyLDQ5ICsxMzIsMzUgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3Ry
dWN0b3JPZkNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGlu
Q29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21D
b2RlTGVuZ3RoID0gMjA0NjsKK2NvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2Rl
TGVuZ3RoID0gMTk3OTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Db25z
dHJ1Y3RvckZyb21Db2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIq
IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGl0ZW1zIClc
biIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKICAgICAi
ICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5k
ZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAogICAgICIg
ICAgICAgIGlmICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAg
ICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0
aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxuIiBc
CiAgICAgIiAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07XG4iIFwKICAgICAiICAg
IH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwKICAg
ICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgYW4g
YXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRv
cl07XG4iIFwKICAgICAiICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwKICAg
ICAiICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIpXG4i
IFwKICAgICAiICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9tIHJl
cXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3lt
Ym9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAi
XG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHJlc3VsdCA9ICh0
eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooKSkg
OiBbXTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAogICAg
ICIgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtcbiIg
XAotICAgICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBc
Ci0gICAgIiAgICAgICAgLy9cbiIgXAogICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xuIiBc
CiAgICAgIiAgICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3JdKCkge1xuIiBcCiAgICAgIiAgICAg
ICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKICAgICAiICAgICAgICAgICAgfVxuIiBc
CiAgICAgIiAgICAgICAgfTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIGZvciAodmFy
IHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIgXAogICAgICIgICAgICAgICAgICBpZiAobWFwRm4pXG4i
IFwKICAgICAiICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNB
cmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcs
IHZhbHVlLCBrKSk7XG4iIFwKQEAgLTE4MiwxNyArMTY4LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVp
bHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFs
RGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgICAgIGsgKz0gMTtc
biIgXAogICAgICIgICAgICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIHJlc3Vs
dC5sZW5ndGggPSBrO1xuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAg
ICIgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXlMaWtlID0gQE9iamVj
dChpdGVtcyk7XG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9MZW5ndGgo
YXJyYXlMaWtlLmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAg
ICAiICAgIHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09IFwiZnVuY3Rpb25cIikgPyBA
T2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShhcnJheUxp
a2VMZW5ndGgpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgayA9IDA7XG4iIFwKICAg
ICAiICAgIHdoaWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7XG4iIFwKICAgICAiICAgICAgICB2
YXIgdmFsdWUgPSBhcnJheUxpa2Vba107XG4iIFwKQEAgLTIwMiw3ICsxODMsNiBAQCBjb25zdCBj
aGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlID0KICAgICAiICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgayArPSAx
O1xuIiBcCiAgICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJlc3VsdC5sZW5n
dGggPSBhcnJheUxpa2VMZW5ndGg7XG4iIFwKICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iIFwK
ICAgICAifSlcbiIgXApAQCAtMjEyLDcgKzE5Miw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNv
bnN0cnVjdG9yRnJvbUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJu
IHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZt
LCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJl
dHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9w
dCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOQ09OU1RS
VUNUT1JfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJ
TkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxD
bGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFsQ2xh
c2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQKaW5kZXggZDU2OWFjNTI4ZmVkNGM3NGFjNWJi
YTc4OTczOWQzY2U5ZWNhMjg4OC4uMjcwNzJkMzIwMzg5ODcyMGRiYWY2MjI5NmMyN2NhNDdjYjg4
NjA2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJp
bmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29t
YmluZWQuanMtcmVzdWx0CkBAIC01OSw2ICs1OSw4IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0
cnVjdEFiaWxpdHkgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2Vk
CiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAg
IG1hY3JvKGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9C
VUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBE
RUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50
Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRv
cihKU0M6OlZNJik7CiAKQEAgLTEwNiwyOSArMTA4LDMwIEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5f
Q09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1
dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5o
IgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGlu
Z05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENs
YXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3Qg
aW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5n
dGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2ludGVybmFsQ2xhc2hpbmdO
YW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxv
Y2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAg
ICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAh
IXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25z
dHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFt
TG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVz
SXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6
OkludHJpbnNpYyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxD
bGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24g
KHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwK
LSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAg
In0pXG4iIFwKIDsKQEAgLTEzNyw3ICsxNDAsNyBAQCBjb25zdCBjaGFyKiBzX2ludGVybmFsQ2xh
c2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICNkZWZpbmUgREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwK
IEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZt
KSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4
ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNT
b3VyY2UoKSk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1l
IyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFt
ZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQogSlNDX0ZP
UkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJ
TkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRp
b25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxH
dWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggNWI2MWQyZjgyMGU5MGIxMTI4OGI5N2Y2Yzky
MjcwNGY4MTRiMDVkZi4uNGUyNTUxNTBiZTM2YmQzMmM0ZTQwNmNjNWQ1Y2VkY2NjYWRmZTM0OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJl
c3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVz
dWx0CkBAIC0xNjIsNiArMTYyLDcgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9uYWxH
dWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTcwLDEyICsxNzEsMTIgQEAgaW5saW5lIHZvaWQg
QXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19hcmJp
dHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RB
YmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBp
bnQgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVM
ZW5ndGggPSA3MTsKK2NvbnN0IGludCBzX2FyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRJc1JlYWRh
YmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmlu
c2ljIHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2Rl
SW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYXJiaXRyYXJ5Q29u
ZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICAgICAiKGZ1bmN0aW9u
IChzdHJlYW0pXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgIFwidXNlIHN0cmljdFwiO1xuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICByZXR1cm4gISFzdHJlYW0uQHJlYWRlcjtcbiIgXAogICAg
ICJ9KVxuIiBcCiA7CkBAIC0xODUsNyArMTg2LDcgQEAgY29uc3QgY2hhciogc19hcmJpdHJhcnlD
b25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlv
bkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAg
SlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS5hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkQnVpbHRpbnMoKS5jb2RlTmFtZSMjRXhlY3V0
YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5
Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAorICAgIHJl
dHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9uYWxH
dWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0
YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRCdWlsdGlucygp
LmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBc
CiB9CiBXRUJDT1JFX0ZPUkVBQ0hfQVJCSVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlMVElOX0NP
REUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVS
QVRPUgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1YjE1NDRjYjU5
YWFlMWE3OWVlNGVjYjJkZWNkN2Q0NjNmZWE0MjNiLi44M2RlYzU3ODg3OTVmMzBlNzk3OTllZDI5
YWQ0NTNhOTJlZWU0Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApA
QCAtMTYyLDYgKzE2Miw3IEBAIGlubGluZSB2b2lkIEd1YXJkZWRCdWlsdGluQnVpbHRpbnNXcmFw
cGVyOjpleHBvcnROYW1lcygpCiAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9FeGVjdXRhYmxlLmg+CisjaW5jbHVkZSA8cnVudGltZS9JbnRyaW5z
aWMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxp
bmVzLmg+CkBAIC0xNzAsMTIgKzE3MSwxMiBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkQnVpbHRpbkJ1
aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9j
a2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxl
U3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2lj
IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpT
Qzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0
cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4i
IFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJl
dHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE4NSw3ICsx
ODYsNyBAQCBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlND
OjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVu
dERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygp
Lmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcCisgICAgcmV0
dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5z
KCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1
bmN0aW9ucygpLmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51
bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX0dV
QVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5k
ZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRl
cm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWls
dGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1M2I1NTUyZTJjY2U1NjZjYTg1ZmIyODc1ZWQ1
OTVlZjViNWNhMmRiLi4xYzYxYWFiMGYyYWRiYmQ1YTYxZjE2NGUzNWZmMTU4ZmFjY2MzM2NlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAg
LTE5NCw2ICsxOTQsNyBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRp
bkZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaQogCiAjaW5jbHVkZSAiV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjAyLDEyICsyMDMsMTIgQEAgaW5saW5l
IHZvaWQgR3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6
U2xvdFZpc2l0b3ImIHZpc2kKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2Nr
ZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29u
c3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJl
YW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc19ndWFyZGVkSW50ZXJuYWxCdWls
dGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBK
U0M6OkludHJpbnNpYyBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9j
a2VkQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5j
dGlvbiAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtc
biIgXAotICAgICJcbiIgXAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwK
ICAgICAifSlcbiIgXAogOwpAQCAtMjE3LDcgKzIxOCw3IEBAIGNvbnN0IGNoYXIqIHNfZ3VhcmRl
ZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rp
b25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAg
IEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rp
b25zKCkuZ3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFi
bGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRl
cm5hbEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4g
Y2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5CdWls
dGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0
aW5GdW5jdGlvbnMoKS5ndWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMj
U291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09S
RV9GT1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3Vh
cmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDdjOTZiOWYxNDVmMWFiYjM3Mzll
MWUwYWE5ZTFkMzg5ODQ4OWRmNDkuLmNlZGY4ZmI0YmVhYWEzM2NmZmMzMWE5YWI1MzcwNzc3MjU1
MDNiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTU2
LDYgKzE1Niw3IEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dyYXBwZXI6
OmV4cG9ydE5hbWVzKCkKIAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNs
dWRlIDxydW50aW1lL0V4ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0ludHJpbnNpYy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTQ2VsbElubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVjdHVyZUlubGluZXMu
aD4KQEAgLTE2NCwxMiArMTY1LDEyIEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWls
dGluc1dyYXBwZXI6OmV4cG9ydE5hbWVzKCkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3Qg
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc191bmd1YXJkZWRCdWlsdGluSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJp
bnNpYyBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNp
YyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1Jl
YWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3RyZWFtKVxuIiBcCiAg
ICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAg
ICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAt
MTc5LDcgKzE4MCw3IEBAIGNvbnN0IGNoYXIqIHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2Vu
ZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRh
ID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJl
dHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkudW5ndWFyZGVkQnVpbHRpbkJ1aWx0
aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRp
bkZ1bmN0aW9ucygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2Uo
KSk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnVuZ3VhcmRl
ZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVu
dERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS51bmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2Rl
TmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQog
V0VCQ09SRV9GT1JFQUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2lu
Z1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDcyNmIyODFhOTBmN2FiMjQyZTJkNzMzOWIy
YzNhNDk4OTcyNTlkN2IuLjE1NDRkZmI0NTAyNGM4YmExZmIzMzBiMWE1NzYyNWZhYTM1MDdkYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2Vi
Q29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMjA4LDYgKzIwOCw3IEBA
IGlubGluZSB2b2lkIHhtbENhc2luZ1Rlc3RCdWlsdGluRnVuY3Rpb25zOjp2aXNpdChKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmlu
c2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oPgpAQCAtMjE2LDIzICsyMTcsMjMgQEAgaW5saW5lIHZvaWQgeG1sQ2FzaW5nVGVzdEJ1
aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX3htbENhc2luZ1Rl
c3RYTUxDYXNpbmdUZXN0Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxDYXNpbmdU
ZXN0Q29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rl
c3RDb2RlTGVuZ3RoID0gNzA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNp
bmdUZXN0WE1MQ2FzaW5nVGVzdENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29u
c3QgY2hhciogc194bWxDYXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rp
b24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAg
ICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfeG1sQ2FzaW5n
VGVzdENzc0Nhc2luZ1Rlc3RDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJp
bGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2lu
Z1Rlc3RDb2RlTGVuZ3RoID0gNDAyOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2lu
Z1Rlc3RDb2RlTGVuZ3RoID0gNDAxOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfeG1s
Q2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsK
IGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlID0KICAgICAiKGZ1
bmN0aW9uIChzdHJlYW0sIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNl
IHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9
PT0gQHJlYWRhYmxlU3RyZWFtQ2xvc2VkKVxuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIFByb21p
c2UucmVzb2x2ZSgpO1xuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRh
YmxlU3RyZWFtRXJyb3JlZClcbiIgXApAQCAtMjQ0LDEyICsyNDUsMTIgQEAgY29uc3QgY2hhciog
c194bWxDYXNpbmdUZXN0Q3NzQ2FzaW5nVGVzdENvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0
cnVjdEFiaWxpdHkgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVDb25zdHJ1Y3RBYmls
aXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQg
c194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzg7Citjb25zdCBpbnQg
c194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzc7CitzdGF0aWMgY29u
c3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVJbnRyaW5z
aWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0VXJsQ2Fz
aW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rpb24gKG9iamVjdCwga2V5LCBhcmdzKVxuIiBcCiAg
ICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAg
ICAiICAgIHRyeSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgbWV0aG9kID0gb2JqZWN0W2tleV07
XG4iIFwKICAgICAiICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gXCJ1bmRlZmluZWRcIilc
biIgXApAQCAtMjY4LDcgKzI2OSw3IEBAIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdFVybENh
c2luZ1Rlc3RDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJh
dG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0g
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVy
biBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkueG1sQ2FzaW5nVGVzdEJ1aWx0aW5zKCku
Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0
aW9ucygpLnhtbENhc2luZ1Rlc3RCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAg
ICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RCdWls
dGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0
aW5GdW5jdGlvbnMoKS54bWxDYXNpbmdUZXN0QnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCks
IE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNI
X1hNTENBU0lOR1RFU1RfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1
bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNTY1OTVm
NzE0MWU1NWY1MWYyZTIwMDk1ZDY3ZTU4ZDhhZDk5MjE1Yi4uY2JhZmNiOGFjMzRlZDYwMjU0NWUw
NDdlN2RiZjg0Zjk5ZjliMDc3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKQEAgLTQxLDYgKzQxLDcgQEAg
ZnVuY3Rpb24gbmV4dCgpCiAgICAgcmV0dXJuIG5leHQuQGNhbGwodGhpcyk7CiB9CiAKK0BnbG9i
YWxQcml2YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yVmFsdWVOZXh0KCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC02Myw2ICs2NCw3IEBAIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JWYWx1ZU5l
eHQoKQogICAgIHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAt
ODUsNiArODcsNyBAQCBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiAgICAgcmV0dXJu
IHsgZG9uZSwgdmFsdWUgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFycmF5SXRl
cmF0b3JLZXlWYWx1ZU5leHQoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwppbmRleCAwMzMzYzcxYjk3
ZTJiOWM3NGYyN2NmNmU5YWVlNjgzOGUyMzk0Zjk5Li5iNWQzMjIyYmMyZmI5ZWNjYzBjMmFjMjBi
YmE5MzI3YWZiMDY0ZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQXJyYXlQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0FycmF5UHJvdG90eXBlLmpzCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogQGNvbnN0cnVjdG9y
CitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gY3JlYXRlQXJyYXlJdGVyYXRvcihpdGVyYXRlZE9i
amVjdCwga2luZCwgaXRlcmF0aW9uRnVuY3Rpb24pCiB7CiAgICAgdGhpcy5AaXRlcmF0ZWRPYmpl
Y3QgPSBpdGVyYXRlZE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuaAppbmRleCBiNmY0ZTM4NjdmMmJjZWFiOTZkNjkzODA4Y2I0Njc3ODYyYTE2
NDVlLi4wYmJhMTA2MTU2MzJiYTBkN2RiMWU5Nzc1NGRjMzc4NjFhZjY2YTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxMSArMjcsMTM5
IEBACiAjZGVmaW5lIEJ1aWx0aW5OYW1lc19oCiAKICNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIK
KyNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQ29tbW9u
SWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAorI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJU
WV9OQU1FKG1hY3JvKSBcCisgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfRlVOQ1RJ
T05TX0VBQ0hfTkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lD
X0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBtYWNybyhpdGVyYXRlZE9iamVjdCkg
XAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNybyhhcnJheUl0
ZXJhdGlvbktpbmQpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3Jv
KGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2luZCkgXAor
ICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwKKyAgICBtYWNybyhpdGVyYXRlZFN0cmluZykgXAorICAg
IG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBcCisgICAgbWFjcm8ocHJvbWlzZSkgXAor
ICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFuZGxlcikgXAorICAgIG1hY3JvKHJlamVjdGlvbkhhbmRs
ZXIpIFwKKyAgICBtYWNybyhpbmRleCkgXAorICAgIG1hY3JvKGRlZmVycmVkKSBcCisgICAgbWFj
cm8oY291bnRkb3duSG9sZGVyKSBcCisgICAgbWFjcm8oT2JqZWN0KSBcCisgICAgbWFjcm8ob3du
RW51bWVyYWJsZVByb3BlcnR5S2V5cykgXAorICAgIG1hY3JvKE51bWJlcikgXAorICAgIG1hY3Jv
KEFycmF5KSBcCisgICAgbWFjcm8oU3RyaW5nKSBcCisgICAgbWFjcm8oUmVnRXhwKSBcCisgICAg
bWFjcm8oTWFwKSBcCisgICAgbWFjcm8oUHJvbWlzZSkgXAorICAgIG1hY3JvKFJlZmxlY3QpIFwK
KyAgICBtYWNybyhJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhhYnMpIFwKKyAgICBtYWNy
byhmbG9vcikgXAorICAgIG1hY3JvKHRydW5jKSBcCisgICAgbWFjcm8oaXNGaW5pdGUpIFwKKyAg
ICBtYWNybyhpc05hTikgXAorICAgIG1hY3JvKGNyZWF0ZSkgXAorICAgIG1hY3JvKGRlZmluZVBy
b3BlcnR5KSBcCisgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKKyAgICBtYWNybyhnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVzKSBcCisg
ICAgbWFjcm8ob3duS2V5cykgXAorICAgIG1hY3JvKEVycm9yKSBcCisgICAgbWFjcm8oUmFuZ2VF
cnJvcikgXAorICAgIG1hY3JvKFR5cGVFcnJvcikgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5n
dGgpIFwKKyAgICBtYWNybyh0eXBlZEFycmF5U29ydCkgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlH
ZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oQnVpbHRpbkxvZykgXAorICAgIG1h
Y3JvKGhvbWVPYmplY3QpIFwKKyAgICBtYWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAorICAgIG1h
Y3JvKGVucXVldWVKb2IpIFwKKyAgICBtYWNybyhoYW5kbGVyKSBcCisgICAgbWFjcm8ocHJvbWlz
ZVN0YXRlKSBcCisgICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKKyAgICBtYWNy
byhwcm9taXNlUmVqZWN0UmVhY3Rpb25zKSBcCisgICAgbWFjcm8ocHJvbWlzZVJlc3VsdCkgXAor
ICAgIG1hY3JvKHB1c2gpIFwKKyAgICBtYWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKKyAgICBtYWNy
byhjYXBhYmlsaXRpZXMpIFwKKyAgICBtYWNybyhzdGFyRGVmYXVsdCkgXAorICAgIG1hY3JvKElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbikgXAorICAgIG1hY3JvKGdldCkgXAorICAgIG1hY3JvKHNl
dCkgXAorICAgIG1hY3JvKHNoaWZ0KSBcCisgICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFycmF5KSBc
CisgICAgbWFjcm8oSW50OEFycmF5KSBcCisgICAgbWFjcm8oSW50MTZBcnJheSkgXAorICAgIG1h
Y3JvKEludDMyQXJyYXkpIFwKKyAgICBtYWNybyhVaW50OEFycmF5KSBcCisgICAgbWFjcm8oVWlu
dDhDbGFtcGVkQXJyYXkpIFwKKyAgICBtYWNybyhVaW50MTZBcnJheSkgXAorICAgIG1hY3JvKFVp
bnQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQ2
NEFycmF5KSBcCisgICAgbWFjcm8oZXhlYykgXAorICAgIG1hY3JvKGdlbmVyYXRvcikgXAorICAg
IG1hY3JvKGdlbmVyYXRvck5leHQpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkgXAorICAg
IG1hY3JvKGdlbmVyYXRvckZyYW1lKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUpIFwKKyAg
ICBtYWNybyhnZW5lcmF0b3JUaGlzKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1lTW9kZSkg
XAorICAgIG1hY3JvKENvbGxhdG9yKSBcCisgICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQpIFwKKyAg
ICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKKyAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZhbHVlKSBc
CisgICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAorICAgIG1hY3JvKHRoaXNOdW1iZXJWYWx1ZSkg
XAorICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCisgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVj
dG9yKSBcCisgICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFu
Y2VCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikgXAorICAgIG1hY3JvKGlz
QXJyYXkpIFwKKyAgICBtYWNybyhpc0FycmF5Q29uc3RydWN0b3IpIFwKKyAgICBtYWNybyhpc0Nv
bnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKKyAgICBtYWNybyhjb25j
YXRNZW1jcHkpIFwKKyAgICBtYWNybyhhcHBlbmRNZW1jcHkpIFwKKyAgICBtYWNybyhwcmVkaWN0
RmluYWxMZW5ndGhGcm9tQXJndW11bnRzKSBcCisgICAgbWFjcm8ocHJpbnQpIFwKKyAgICBtYWNy
byhpc1NldCkgXAorICAgIG1hY3JvKGlzTWFwKSBcCisgICAgbWFjcm8ocmVnRXhwQ3JlYXRlKSBc
CisgICAgbWFjcm8oU2V0SXRlcmF0b3IpIFwKKyAgICBtYWNybyhzZXRJdGVyYXRvck5leHQpIFwK
KyAgICBtYWNybyhyZXBsYWNlVXNpbmdSZWdFeHApIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdT
dHJpbmdTZWFyY2gpIFwKKyAgICBtYWNybyhNYXBJdGVyYXRvcikgXAorICAgIG1hY3JvKG1hcEl0
ZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCisgICAgbWFjcm8o
cmVnRXhwTWF0Y2hGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRlcikgXAor
ICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJv
dG9JZ25vcmVDYXNlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0
ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b1NvdXJjZUdldHRlcikgXAorICAgIG1hY3JvKHJl
Z0V4cFByb3RvU3RpY2t5R2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmljb2RlR2V0
dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAorICAgIG1h
Y3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFzdCkgXAor
ICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFRlc3RGYXN0KSBc
CisgICAgbWFjcm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5hbCkgXAorICAgIG1hY3JvKHN0cmluZ1Nw
bGl0RmFzdCkgXAorICAgIG1hY3JvKHN0cmluZ1N1YnN0ckludGVybmFsKQorCisKICNkZWZpbmUg
SU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1Ymxp
Y01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKICNkZWZp
bmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJp
dmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3Rv
dHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5
cGUuanMKaW5kZXggNjk0NjNjMzM2MDJlMjhmN2RkNDI5YWQyMzQ2ZGIxYTdlNWVlZGRlZS4uM2Mx
NDA2ODdkZmM3ZTAwZWZlOTFhZTgwYjJhYzY3NmZhOWJmNDhmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSw2ICsyNiw3IEBACiAKIC8vIDI1LjMuMy4zIEdlbmVyYXRvclJlc3VtZSAoIGdlbmVyYXRvciwg
dmFsdWUgKQogLy8gMjUuMy4zLjQgR2VuZXJhdG9yUmVzdW1lQWJydXB0KGdlbmVyYXRvciwgYWJy
dXB0Q29tcGxldGlvbikKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUo
Z2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKaW5kZXgg
OGJhMzQ5MDhhZmE3OWJjMzYyMjJkYzllMTUzZTI4ZjI5MmMyMDkxMC4uNTc3NmEyMjk2YmFhYzhj
NTQxMmI0Y2UzNWRmNzA4OTgwMzkwYzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvR2xvYmFsT2JqZWN0LmpzCkBAIC0yNiw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5h
bAogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9JbnRlZ2VyKHRhcmdldCkKIHsKICAgICAi
dXNlIHN0cmljdCI7CkBAIC0zOCw2ICszOSw3IEBAIGZ1bmN0aW9uIHRvSW50ZWdlcih0YXJnZXQp
CiAgICAgcmV0dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDgsNiAr
NTAsNyBAQCBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAgICAgcmV0dXJuIGxlbmd0aCA+IDAg
PyAobGVuZ3RoIDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGggOiBtYXhTYWZlSW50ZWdlcikgOiAw
OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIHsK
ICAgICAidXNlIHN0cmljdCI7CkBAIC01NywxMSArNjAsMTMgQEAgZnVuY3Rpb24gaXNEaWN0aW9u
YXJ5KG9iamVjdCkKIAogLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5hbWUgY2hh
bmdlZCB0byAiZ2V0IFtTeW1ib2wuc3BlY2llc10iLgogLy8gc2VlOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24g
c3BlY2llc0dldHRlcigpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK0BnbG9iYWxQcml2YXRl
CiBmdW5jdGlvbiBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3IpCiB7
CiAgICAgdmFyIGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4IGM0ZTU5
YmIwNzkzYjllMDBhZTdkOWEyNTE1YTNkZDJkMmI0YjEyOGIuLjE5MWRiM2Y2YWNmNTljNjg0YWMz
MjZlMjdjM2UzZTkyZDYzYjA3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIEBpbnRl
cm5hbAogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2UpCiB7CiAg
ICAgInVzZSBzdHJpY3QiOwpAQCAtMzIsNiArMzQsNyBAQCBmdW5jdGlvbiBpc1Byb21pc2UocHJv
bWlzZSkKICAgICByZXR1cm4gQGlzT2JqZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5AcHJvbWlz
ZVN0YXRlOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9u
KGNhcGFiaWxpdHksIGhhbmRsZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDIsNiArNDUs
NyBAQCBmdW5jdGlvbiBuZXdQcm9taXNlUmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxlcikKICAg
ICB9OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHko
Y29uc3RydWN0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODAsNiArODQsNyBAQCBmdW5j
dGlvbiBuZXdQcm9taXNlQ2FwYWJpbGl0eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4gcHJvbWlz
ZUNhcGFiaWxpdHk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2VyUHJvbWlz
ZVJlYWN0aW9ucyhyZWFjdGlvbnMsIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAg
LTg4LDYgKzkzLDcgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25z
LCBhcmd1bWVudCkKICAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgW3Jl
YWN0aW9uc1tpbmRleF0sIGFyZ3VtZW50XSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKIHsKICAgICAidXNlIHN0cmljdCI7CkBA
IC0xMDMsNiArMTA5LDcgQEAgZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24p
CiAgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsKIH0KIAor
QGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZhbHVlKQog
ewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTExOCw2ICsxMjUsNyBAQCBmdW5jdGlvbiBmdWxmaWxs
UHJvbWlzZShwcm9taXNlLCB2YWx1ZSkKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVh
Y3Rpb25zLCB2YWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVhdGVSZXNv
bHZpbmdGdW5jdGlvbnMocHJvbWlzZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xNjQsNiAr
MTcyLDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiAgICAg
fTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFj
dGlvbiwgYXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTgwLDYgKzE4OSw3IEBA
IGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgcmV0
dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJlc3VsdCk7
CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9i
KHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3RyaWN0IjsK
QEAgLTE5Myw2ICsyMDMsNyBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHBy
b21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogICAgIH0KIH0KIAorQGdsb2JhbFByaXZh
dGUKIGZ1bmN0aW9uIGluaXRpYWxpemVQcm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQ
cm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90
eXBlLmpzCmluZGV4IDI5NTdmMTRjYjczOTgwZjI0NWY2ZDFjNzQ2ZGFmZjgxMjdlNDkyZGMuLjlk
OTQ1YTRjZTM3MmNiYjNjOWY1MDNmMTJkYmZmMTRlYzFjNTU2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsNiArMjMs
NyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFk
dmFuY2VTdHJpbmdJbmRleChzdHJpbmcsIGluZGV4LCB1bmljb2RlKQogewogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaW1wbGVtZW50cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAy
MS4yLjUuMi4zLgpAQCAtNDUsNiArNDYsNyBAQCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgo
c3RyaW5nLCBpbmRleCwgdW5pY29kZSkKICAgICByZXR1cm4gaW5kZXggKyAyOwogfQogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVnRXhwRXhlYyhyZWdleHAsIHN0cikKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC02MCw2ICs2Miw3IEBAIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBz
dHIpCiAgICAgcmV0dXJuIGJ1aWx0aW5FeGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0KIAorQGds
b2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1h
dGNoKHJlZ2V4cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMg
aW50ZXJuYWwgZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdl
eHAsICJleGVjIik7CkBAIC0zMjYsNiArMzI5LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykK
ICAgICByZXR1cm4gcmVzdWx0LmluZGV4OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24g
aGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQocmVnZXhwKSB7CiAgICAgLy8g
VGhpcyBpcyBhY2Nlc3NlZCBieSB0aGUgUmVnRXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlvbi4KICAg
ICBsZXQgcmVnZXhwRXhlYyA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDg5
NjUxMGMwNDRlZWU4ODUyOTBlNTVhYjA3ZmE5OTkzZmJiZDA2ZWIuLmVmYjg1N2I3M2IwZGQyNmJm
NWY2YzdlZWU0OWI2NzIzMjg2NDI0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiBt
YXRjaChyZWdleHApCiAgICAgcmV0dXJuIGNyZWF0ZWRSZWdFeHAuQG1hdGNoU3ltYm9sKHRoaXNT
dHJpbmcpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0U2xvd1BhdGgoc3Ry
aW5nLCBjb3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0
aW9uIHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgfQogfQogCi0KK0BnbG9iYWxQ
cml2YXRlCiBmdW5jdGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBjb3VudCkK
IHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0yMDIsNiArMjAzLDcgQEAgZnVuY3Rpb24gcGFkRW5k
KG1heExlbmd0aC8qLCBmaWxsU3RyaW5nKi8pCiAgICAgcmV0dXJuIHN0cmluZyArIHRydW5jYXRl
ZFN0cmluZ0ZpbGxlcjsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UocmVnZXhwLCByZXBsYWNlcikgewogICAgIGlm
IChyZXBsYWNlciAhPT0gQHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpCiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4IDQ5YmZmNDBjYTdhNjcyZGQ1
ZDhlZWE4NmJkZWU4MGY5OWFjYjQ5OGYuLjE5M2QyODlhYzdkNzQ5MzY3MzA0MTY5ODlhZWNjZjY1
NTMzMDI0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5
LmgiCisKKyNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiQnVp
bHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJK
U0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKQEAgLTM2
LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNkZWZpbmUgSU5JVElBTElaRV9CWVRF
Q09ERV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAu
YWRkKHZtLnByb3BlcnR5TmFtZXMtPm5hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJkJ5dGVjb2Rl
SW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTEla
RV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5z
aWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUjI1ByaXZhdGVO
YW1lKCkuaW1wbCgpLCAmQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY18jI25h
bWUpOwogCiBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNpY1JlZ2lz
dHJ5KFZNJiB2bSkKICAgICA6IG1fdm0odm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM5OWMyZTg1
NGIzNGU4OGEyOGQ4MmQzMjUxNzU3ZDFhN2M0ZThkYjIuLjkxZjVjNzc0N2FkNjUwYmE1ZmQwM2My
NDlhM2U1ZDUwYWNhMTlhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC05MTAsMTIgKzkxMCwxMiBA
QCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRT
Y29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogCiAgICAgICAgIGlmIChtX2NvZGVUeXBlID09IEZ1
bmN0aW9uQ29kZSAmJiBpc05ld1RhcmdldFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAg
ICAgICAgICAgICBvZmZzZXQgPSBmdW5jdGlvblN5bWJvbFRhYmxlLT50YWtlTmV4dFNjb3BlT2Zm
c2V0KCk7Ci0gICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVj
ZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZS5pbXBsKCks
IFN5bWJvbFRhYmxlRW50cnkoVmFyT2Zmc2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0
aW9uU3ltYm9sVGFibGUtPnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xU
YWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0
b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewog
ICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJsZS0+dGFrZU5leHRTY29wZU9m
ZnNldChOb0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJs
ZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1
Y3RvclByaXZhdGVOYW1lLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0
KSkpOworICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vz
c2FyeSwgcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclBy
aXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7
CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm47CkBAIC05MzAsMTMgKzkzMCwxMyBAQCB2b2lk
IEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlm
TmVlZGVkKFN5bWJvbFRhYmxlKgogICAgIH0KICAgICAKICAgICBpZiAobV9jb2RlVHlwZSA9PSBG
dW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewot
ICAgICAgICBhdXRvIGFkZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCku
bmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7CisgICAgICAgIGF1dG8gYWRkVGFyZ2V0ID0gZW52
aXJvbm1lbnQuYWRkKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2Nh
bFByaXZhdGVOYW1lKCkpOwogICAgICAgICBhZGRUYXJnZXQuaXRlcmF0b3ItPnZhbHVlLnNldElz
Q2FwdHVyZWQoKTsKICAgICAgICAgYWRkVGFyZ2V0Lml0ZXJhdG9yLT52YWx1ZS5zZXRJc0xldCgp
OwogICAgIH0KIAogICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkg
PT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVu
Y3Rpb24oKSkgewotICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50
LmFkZChwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAg
ICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5h
bWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7CiAg
ICAgICAgIGRlcml2ZWRDb25zdHJ1Y3Rvci5pdGVyYXRvci0+dmFsdWUuc2V0SXNDYXB0dXJlZCgp
OwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNldElzTGV0KCk7
CiAgICAgfQpAQCAtMjk3Nyw5ICsyOTc3LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRDYWxsRXZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEMKIAog
RXhwZWN0ZWRGdW5jdGlvbiBCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklk
ZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICBpZiAoaWRlbnRp
ZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3QgfHwgaWRlbnRpZmllciA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRlTmFtZSkKKyAgICBpZiAoaWRlbnRpZmllciA9
PSBwcm9wZXJ0eU5hbWVzKCkuT2JqZWN0IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygp
LmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBl
Y3RPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5BcnJheSB8fCBpZGVudGlmaWVyID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPkFycmF5
UHJpdmF0ZU5hbWUpCisgICAgaWYgKGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLkFycmF5
IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLkFycmF5UHJp
dmF0ZU5hbWUoKSkKICAgICAgICAgcmV0dXJuIEV4cGVjdEFycmF5Q29uc3RydWN0b3I7CiAgICAg
cmV0dXJuIE5vRXhwZWN0ZWRGdW5jdGlvbjsKIH0KQEAgLTQwNDUsNyArNDA0NSw3IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0ZXJJ
RCogZHN0LCBUYWdnZWRUZW1wCiAgICAgfQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGdldFRl
bXBsYXRlT2JqZWN0ID0gbnVsbHB0cjsKLSAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJsZShwcm9w
ZXJ0eU5hbWVzKCkuZ2V0VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUg
dmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRl
T2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gdmFyLmxv
Y2FsKCkpCiAgICAgICAgIGdldFRlbXBsYXRlT2JqZWN0ID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5
KCksIGxvY2FsKTsKICAgICBlbHNlIHsKQEAgLTQyMzUsMTYgKzQyMzUsMTYgQEAgdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdExvYWRUaGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJv
bm1lbnQoKQogICAgIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3
VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZhcmlh
YmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2Nh
bFByaXZhdGVOYW1lKTsKKyAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsK
IAotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsIGVtaXRM
b2FkQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkubmV3VGFy
Z2V0TG9jYWxQcml2YXRlTmFtZSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAg
ICByZXR1cm4gZW1pdEdldEZyb21TY29wZShtX25ld1RhcmdldFJlZ2lzdGVyLCBlbWl0TG9hZEFy
cm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1l
cygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUoKSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5v
dEZvdW5kKTsKICAgICAKIH0KIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRM
b2FkRGVyaXZlZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQo
KQogewotICAgIFZhcmlhYmxlIHByb3RvU2NvcGVWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVz
KCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOwotICAgIHJldHVybiBlbWl0R2V0RnJv
bVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJv
bm1lbnQocHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKSwgcHJv
dG9TY29wZVZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFy
ID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1
Y3RvclByaXZhdGVOYW1lKCkpOworICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBv
cmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlO
YW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpLCBw
cm90b1Njb3BlVmFyLCBUaHJvd0lmTm90Rm91bmQpOwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW5zdXJlVGhpcygpCkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3Bl
KCkKICAgICBpZiAoaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAg
ICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lz
dGVyKTsKICAgICAgICAgCi0gICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxl
KHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICAgICAgVmFy
aWFibGUgbmV3VGFyZ2V0VmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1l
cygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGVtaXRQdXRUb1Njb3Bl
KG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgbmV3VGFy
Z2V0VmFyLCBuZXdUYXJnZXQoKSwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9u
TW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgIH0KIH0KQEAgLTQyOTksNyArNDI5OSw3IEBAIHZv
aWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVu
Y3Rpb25Db250ZXh0U2NvcGUoKQogICAgICAgICBpZiAoaXNTdXBlclVzZWRJbklubmVyQXJyb3dG
dW5jdGlvbigpKSB7CiAgICAgICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExl
eGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgVmFy
aWFibGUgcHJvdG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3Ry
dWN0b3JQcml2YXRlTmFtZSk7CisgICAgICAgICAgICBWYXJpYWJsZSBwcm90b1Njb3BlID0gdmFy
aWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclBy
aXZhdGVOYW1lKCkpOwogICAgICAgICAgICAgZW1pdFB1dFRvU2NvcGUobV9hcnJvd0Z1bmN0aW9u
Q29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyLCBwcm90b1Njb3BlLCAmbV9jYWxsZWVS
ZWdpc3RlciwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlh
bGl6YXRpb24pOwogICAgICAgICB9CiAgICAgfQpAQCAtNDU2NCw3ICs0NTY0LDcgQEAgUmVnaXN0
ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFy
Z3VtZW50LCBUaHJvd2FibGUKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JT
dGF0ZUNoYW5nZShpbnQzMl90IHN0YXRlKQogewogICAgIFJlZ2lzdGVySUQqIGNvbXBsZXRlZFN0
YXRlID0gZW1pdExvYWQobnVsbHB0ciwganNOdW1iZXIoc3RhdGUpKTsKLSAgICBlbWl0UHV0QnlJ
ZChnZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2
YXRlTmFtZSwgY29tcGxldGVkU3RhdGUpOworICAgIGVtaXRQdXRCeUlkKGdlbmVyYXRvclJlZ2lz
dGVyKCksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZh
dGVOYW1lKCksIGNvbXBsZXRlZFN0YXRlKTsKIH0KIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEdlbmVyYXRvclN0YXRlTGFiZWwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDIzYzAyNmJmMmNjNTliZWFmMWE2
NTUwMmE3ZjdkOWM1ZGZjMThmYjcuLmI2ZDBhMzcyYmI5YjZjYmE1YTI4YjZkYjJmYWFkNjY2Mjcw
YTZiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIHN0YXRpYyBSZWdpc3RlcklEKiBl
bWl0SG9tZU9iamVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogewog
ICAgIGlmIChnZW5lcmF0b3IuaXNEZXJpdmVkQ2xhc3NDb250ZXh0KCkgfHwgZ2VuZXJhdG9yLmlz
RGVyaXZlZENvbnN0cnVjdG9yQ29udGV4dCgpKSB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGRlcml2
ZWRDb25zdHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21B
cnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0
b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0
b3IsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCksIGRlcml2ZWRDb25zdHJ1Y3RvciwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgfQogCiAgICAgUmVnaXN0ZXJJ
RCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KEpTU3RhY2s6OkNhbGxlZSk7Ci0gICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxs
ZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAg
ICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
JmNhbGxlZSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2Jq
ZWN0UHJpdmF0ZU5hbWUoKSk7CiB9CiAKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNl
Rm9yQ2FsbGVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCkBAIC00NTcsNyArNDU3LDcg
QEAgUmVnaXN0ZXJJRCogT2JqZWN0TGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3QKIAogc3RhdGljIGlubGluZSB2b2lkIGVtaXRQdXRI
b21lT2JqZWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGZ1bmN0
aW9uLCBSZWdpc3RlcklEKiBob21lT2JqZWN0KQogewotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJ
ZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5h
bWUsIGhvbWVPYmplY3QpOworICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2Vu
ZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5h
bWUoKSwgaG9tZU9iamVjdCk7CiB9CiAKIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3Qp
CkBAIC0zMjgyLDE0ICszMjgyLDE0IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCiAgICAgICAgIC8vIEJ1
dCB0byBtYWtlIGl0IGVmZmljaWVudCwgd2Ugd2lsbCBpbnRyb2R1Y2UgSlNHZW5lcmF0b3IgY2xh
c3MsIGFkZCBvcGNvZGUgbmV3X2dlbmVyYXRvciBhbmQgdXNlIGl0cyBDKysgZmllbGRzIGluc3Rl
YWQgb2YgdGhlc2UgcHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3Iu
cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRlTmFtZSwgbmV4dC5nZXQoKSwgUHJv
cGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0
QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFt
ZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgbmV4dC5nZXQo
KSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRE
aXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJv
cGVydHlOYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLnRoaXNSZWdp
c3RlcigpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVt
aXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3Iu
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSgp
LCBnZW5lcmF0b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwog
CiAgICAgICAgIFJlZ2lzdGVySUQqIGluaXRpYWxTdGF0ZSA9IGdlbmVyYXRvci5lbWl0TG9hZChu
dWxscHRyLCBqc051bWJlcigwKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJ
ZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMo
KS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6
S25vd25EaXJlY3QpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJh
dG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRp
bk5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBpbml0aWFsU3RhdGUsIFByb3Bl
cnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0
QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFt
ZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lLCBnZW5lcmF0b3IuZW1pdExvYWQobnVsbHB0
ciwganNOdWxsKCkpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5l
cmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0
ZU5hbWUoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlO
b2RlOjpLbm93bkRpcmVjdCk7CiAKICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0KCkgPj0gbGlu
ZVN0YXJ0T2Zmc2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsTGVh
dmVDYWxsRnJhbWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGNj
YjAxOTY3NGUzMDAzYmZlZjc0YzMzOGY2YmMwMWMxM2M4ZTIxNWEuLmRmMmM5NjIwMDFiNDc5Nzhj
MjA3M2VmMDMwOWIwODM0OWMwMWYxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkpJVC5oIgogI2lu
Y2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIKICNpbmNsdWRl
ICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgi
CiAjaW5jbHVkZSAiUmVwYXRjaC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAwZWVmODlhNjQ3NGEw
NzNkZmJlMWJmNDY3MDcxMjVhOTliNGYyOWM2Li40YTdkNTkyNDQ1YTNiYTk4MzM2MGIyMzA4ZWZm
MWFiODI0OThjYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw2IEBA
CiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkBAIC0xNzYsOCArMTc1LDcgQEAgSlNWYWx1ZSBK
U0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHZh
bHVlLmluaGVyaXRzKEpTV2Vha1NldDo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJp
dmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWtzZXQiKSk7CiAKLSAgICBpZiAodmFs
dWUuaW5oZXJpdHMoSlNBcnJheUl0ZXJhdG9yOjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmlu
aGVyaXRzKEpTTWFwSXRlcmF0b3I6OmluZm8oKSkKKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNN
YXBJdGVyYXRvcjo6aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1NldEl0ZXJh
dG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU3RyaW5nSXRlcmF0b3I6
OmluZm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
cjo6aW5mbygpKSkKQEAgLTMxOSwyOCArMzE3LDYgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0
SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChKU0FycmF5SXRlcmF0b3IqIGFycmF5SXRlcmF0b3IgPSBqc0R5bmFt
aWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KHZhbHVlKSkgewotICAgICAgICBTdHJpbmcga2luZDsK
LSAgICAgICAgc3dpdGNoIChhcnJheUl0ZXJhdG9yLT5raW5kKGV4ZWMpKSB7Ci0gICAgICAgIGNh
c2UgQXJyYXlJdGVyYXRlS2V5OgotICAgICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgia2V5
Iik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVWYWx1ZToK
LSAgICAgICAgICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoInZhbHVlIik7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1ZToKLSAgICAgICAgICAgIGtp
bmQgPSBBU0NJSUxpdGVyYWwoImtleSt2YWx1ZSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgdW5zaWduZWQgaW5kZXggPSAwOwotICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgMik7Ci0gICAgICAgIGlmIChV
TkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGNvbnN0cnVj
dEludGVybmFsUHJvcGVydHkoZXhlYywgImFycmF5IiwgYXJyYXlJdGVyYXRvci0+aXRlcmF0ZWRW
YWx1ZShleGVjKSkpOwotICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywgY29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBraW5kKSkpOwotICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgfQotCiAgICAg
aWYgKEpTTWFwSXRlcmF0b3IqIG1hcEl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU01hcEl0ZXJh
dG9yKj4odmFsdWUpKSB7CiAgICAgICAgIFN0cmluZyBraW5kOwogICAgICAgICBzd2l0Y2ggKG1h
cEl0ZXJhdG9yLT5raW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAK
aW5kZXggZDY3ZGY5NDc4MTMyMzI5ZDg4NmQ1M2MzNzI4ZGE2Y2VkOTQ2OGQ2NS4uM2M5NTllNGZh
YzA1Y2FhOWYyNWIyYTVjNzc2YzFmNTU0OTY3YWEyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5
OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSwgMjAxMS0yMDEzLCAy
MDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIw
MDcgQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdo
dCAoQykgMjAxMCBab2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQogICog
IENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQpAQCAt
OTM5LDcgKzkzOSw3IEBAIHRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFM
V0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwCiAgICAgICAgICAgICBpZiAo
aXNQcml2YXRlTmFtZSkKICAgICAgICAgICAgICAgICBpZGVudCA9IG1fdm0tPnByb3BlcnR5TmFt
ZXMtPmxvb2tVcFByaXZhdGVOYW1lKCppZGVudCk7CiAgICAgICAgICAgICBlbHNlIGlmICgqaWRl
bnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCkKLSAgICAgICAgICAg
ICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZFBy
aXZhdGVOYW1lOworICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudW5kZWZpbmVkUHJpdmF0ZU5hbWUoKTsKICAgICAg
ICAgICAgIGlmICghaWRlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfUFJJVkFU
RV9OQU1FX0VSUk9SVE9LOwogICAgICAgICB9CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCB0ZW1wbGF0
ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBl
IExleGVyPFVDaGFyPjo6cAogICAgICAgICAgICAgaWYgKGlzUHJpdmF0ZU5hbWUpCiAgICAgICAg
ICAgICAgICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5sb29rVXBQcml2YXRlTmFtZSgq
aWRlbnQpOwogICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFt
ZXMtPnVuZGVmaW5lZEtleXdvcmQpCi0gICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9
ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsKKyAgICAgICAgICAg
ICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnVuZGVmaW5lZFByaXZhdGVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIWlkZW50KQogICAg
ICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDdkODUxY2VhY2EyZWFh
ZDk3ZGM2NDFjMjQxZjRiNWEwYzcyM2FiODQuLmM4MTE2NDA4YjEwYjVmMGNlZjI1ZDU1YjkwMDhi
ZGQ3OTI5MWQzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgTm9kZXNfaAogI2RlZmluZSBOb2Rlc19oCiAKKyNpbmNsdWRlICJC
dWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIK
ICNpbmNsdWRlICJPcGNvZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cAppbmRleCA0NTc1NzQxN2Y5NWU5NjU2ODBkODFkMDlkOWY4YWEwYjkxMzZhZmQ4Li5iNmM4Nzc5
MGYyNTAxY2U3NDlmYjg0ZGM0OGViYTliMmU3MGRhNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xODk3LDIzICsxODk3LDIzIEBAIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZvcm1hbFBhcmFtZXRlckxpc3Qg
UGFyc2VyPExlCiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb24gPSB0b2tlblN0YXJ0UG9zaXRp
b24oKTsKIAogICAgIC8vIEBnZW5lcmF0b3IKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5w
cm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JQcml2YXRlTmFtZSk7Ci0gICAgYXV0byBnZW5lcmF0b3Ig
PSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlO
YW1lcy0+Z2VuZXJhdG9yUHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVu
dENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2YXRlTmFtZSgp
KTsKKyAgICBhdXRvIGdlbmVyYXRvciA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxv
Y2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2
YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJh
dGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywg
Z2VuZXJhdG9yLCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JTdGF0ZQotICAgIGRlY2xhcmVQYXJh
bWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUpOwot
ICAgIGF1dG8gZ2VuZXJhdG9yU3RhdGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihs
b2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwg
cG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1l
bnQpOworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3JT
dGF0ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIHBv
c2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50
KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0b3JTdGF0
ZSwgMCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yVmFsdWUKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKTsKLSAgICBhdXRv
IGdlbmVyYXRvclZhbHVlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24s
IG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUsIHBvc2l0aW9u
LCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAg
ICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5n
ZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKCkpOworICAgIGF1dG8gZ2VuZXJhdG9yVmFsdWUgPSBj
b250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwg
cG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAg
Y29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2VuZXJhdG9yVmFsdWUsIDApOwog
CiAgICAgLy8gQGdlbmVyYXRvclJlc3VtZU1vZGUKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUpOwotICAgIGF1
dG8gZ2VuZXJhdG9yUmVzdW1lTW9kZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxv
Y2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5h
bWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3Rh
dGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBn
ZW5lcmF0b3JSZXN1bWVNb2RlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRp
b24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZU1v
ZGVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpE
ZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1l
dGVycywgZ2VuZXJhdG9yUmVzdW1lTW9kZSwgMCk7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsK
QEAgLTI4NzEsMTUgKzI4NzEsMTUgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVl
U3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cG9ydERlY2xhcmEKICAgICAgICAg
ICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9u
KGNvbnRleHQpOwogICAgICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNhbm5vdCBw
YXJzZSBleHByZXNzaW9uIik7CiAKLSAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0TWFzayBk
ZWNsYXJhdGlvblJlc3VsdCA9IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlOYW1lcy0+
c3RhckRlZmF1bHRQcml2YXRlTmFtZSwgRGVjbGFyYXRpb25UeXBlOjpDb25zdERlY2xhcmF0aW9u
KTsKKyAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0TWFzayBkZWNsYXJhdGlvblJlc3VsdCA9
IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3Rh
ckRlZmF1bHRQcml2YXRlTmFtZSgpLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFyYXRpb24p
OwogICAgICAgICAgICAgaWYgKGRlY2xhcmF0aW9uUmVzdWx0ICYgRGVjbGFyYXRpb25SZXN1bHQ6
OkludmFsaWREdXBsaWNhdGVEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBpbnRlcm5hbEZh
aWxXaXRoTWVzc2FnZShmYWxzZSwgIk9ubHkgb25lICdkZWZhdWx0JyBleHBvcnQgaXMgYWxsb3dl
ZCIpOwogCi0gICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29udGV4dC5j
cmVhdGVBc3NpZ25SZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGFyRGVm
YXVsdFByaXZhdGVOYW1lLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRva2VuRW5kUG9zaXRp
b24oKSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAg
ICAgICAgICAgVHJlZUV4cHJlc3Npb24gYXNzaWdubWVudCA9IGNvbnRleHQuY3JlYXRlQXNzaWdu
UmVzb2x2ZShsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3Rh
ckRlZmF1bHRQcml2YXRlTmFtZSgpLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRva2VuRW5k
UG9zaXRpb24oKSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQp
OwogICAgICAgICAgICAgcmVzdWx0ID0gY29udGV4dC5jcmVhdGVFeHByU3RhdGVtZW50KGxvY2F0
aW9uLCBhc3NpZ25tZW50LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAgICAgICAg
IGlmICghaXNGdW5jdGlvbk9yQ2xhc3NEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBmYWls
SWZGYWxzZShhdXRvU2VtaUNvbG9uKCksICJFeHBlY3RlZCBhICc7JyBmb2xsb3dpbmcgYSB0YXJn
ZXRlZCBleHBvcnQgZGVjbGFyYXRpb24iKTsKLSAgICAgICAgICAgIGxvY2FsTmFtZSA9ICZtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5zdGFyRGVmYXVsdFByaXZhdGVOYW1lOworICAgICAgICAgICAgbG9j
YWxOYW1lID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0YXJEZWZhdWx0
UHJpdmF0ZU5hbWUoKTsKICAgICAgICAgfQogICAgICAgICBmYWlsSWZGYWxzZShyZXN1bHQsICJD
YW5ub3QgcGFyc2UgdGhlIGRlY2xhcmF0aW9uIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5kZXggMDFi
MTAwNGZmMTVhNzAwYWFhY2NjM2Q5MDcwMWUzMTMwNzBiMjY4NC4uODg5NTdlMWM0N2YyOGRlMjUx
MDE0NTJlNmE1MDZjMzYzNTM0MTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgiCiAjaW5jbHVkZSAi
SXRlcmF0b3JPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtMzgsNyArMzcsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotCiBjb25zdCBDbGFzc0luZm8gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0g
eyAiQXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAmYXJyYXlJdGVyYXRvclByb3RvdHlw
ZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JQcm90b3R5cGUpIH07CiAK
IC8qIFNvdXJjZSBmb3IgQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCmlu
ZGV4IGI5NzA3YTE2ZjIxZWU0MGRjYTQwODNhYWFkZWZkZWRhNjg4ZjFiN2YuLmI1MTVjMmJhZGUz
OWM3MGViMmI4NzZjYjMyYWRkNDljMzMxYTJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTMwLDYgKzMw
LDEyIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitlbnVtIEFycmF5SXRlcmF0aW9uS2luZCA6IHVp
bnQzMl90IHsKKyAgICBBcnJheUl0ZXJhdGVLZXksCisgICAgQXJyYXlJdGVyYXRlVmFsdWUsCisg
ICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUKK307CisKIGNsYXNzIEFycmF5SXRlcmF0b3JQcm90b3R5
cGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05v
bkZpbmFsT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKaW5kZXggODFkMjFmOGFjM2JlYjgzOGI4NzM1YTA4YmVhYjcyMjhj
YjcyNTc1Zi4uOGNjNmNhMDYwYWQ1NDcxM2E5YmFlNzlhNTAzYTkzZGM4NmNkYWM3YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAt
MzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgi
CiAjaW5jbHVkZSAiSlNBcnJheUlubGluZXMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNp
bmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcAppbmRleCA0NzVkZjI1ODY4MzExMDMyMDEw
ZGFmOTZmNjQ1YTdkNzY3NmI1NDFjLi45MjY1MjhlMGZlZTk0MjE0NGJjYjg1NDhmNmExZGFkODhk
ODc0ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDcsIDIwMDksIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOSwgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMsNyArNDMsNiBA
QCBDb21tb25JZGVudGlmaWVyczo6Q29tbW9uSWRlbnRpZmllcnMoVk0qIHZtKQogICAgICwgbV9i
dWlsdGluTmFtZXMobmV3IEJ1aWx0aW5OYW1lcyh2bSwgdGhpcykpCiAgICAgSlNDX0NPTU1PTl9J
REVOVElGSUVSU19FQUNIX0tFWVdPUkQoSU5JVElBTElaRV9LRVlXT1JEKQogICAgIEpTQ19DT01N
T05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJPUEVSVFlfTkFN
RSkKLSAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1F
KElOSVRJQUxJWkVfUFJJVkFURV9OQU1FKQogICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfU1lNQk9MKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5k
ZXggNWJiMGJhZTY5MjUxZDAwM2UzMWI3MmNiM2NiNTQ3YTc4ZTIzNjU3OC4uODVjZWJiZjM4Zjll
NTIxYjMwMzhhNWZjNGFjNDI1ZjFlODA3YmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yMSw3ICsyMSw2IEBACiAjaWZu
ZGVmIENvbW1vbklkZW50aWZpZXJzX2gKICNkZWZpbmUgQ29tbW9uSWRlbnRpZmllcnNfaAogCi0j
aW5jbHVkZSAiQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgogI2luY2x1ZGUgIklkZW50aWZp
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtMzI2LDEzMiArMzI1LDYg
QEAKICAgICBtYWNybyh0b1N0cmluZ1RhZykgXAogICAgIG1hY3JvKHVuc2NvcGFibGVzKQogCi0j
ZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUo
bWFjcm8pIFwKLSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19GVU5DVElPTlNfRUFD
SF9OQU1FKG1hY3JvKSBcCi0gICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RB
TlRTX0VBQ0hfTkFNRShtYWNybykgXAotICAgIG1hY3JvKGl0ZXJhdGVkT2JqZWN0KSBcCi0gICAg
bWFjcm8oYXJyYXlJdGVyYXRvck5leHRJbmRleCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0aW9u
S2luZCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0KSBcCi0gICAgbWFjcm8oYXJyYXlJ
dGVyYXRvcklzRG9uZSkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JLaW5kKSBcCi0gICAgbWFj
cm8oY2hhckNvZGVBdCkgXAotICAgIG1hY3JvKGl0ZXJhdGVkU3RyaW5nKSBcCi0gICAgbWFjcm8o
c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXgpIFwKLSAgICBtYWNybyhwcm9taXNlKSBcCi0gICAgbWFj
cm8oZnVsZmlsbG1lbnRIYW5kbGVyKSBcCi0gICAgbWFjcm8ocmVqZWN0aW9uSGFuZGxlcikgXAot
ICAgIG1hY3JvKGluZGV4KSBcCi0gICAgbWFjcm8oZGVmZXJyZWQpIFwKLSAgICBtYWNybyhjb3Vu
dGRvd25Ib2xkZXIpIFwKLSAgICBtYWNybyhPYmplY3QpIFwKLSAgICBtYWNybyhvd25FbnVtZXJh
YmxlUHJvcGVydHlLZXlzKSBcCi0gICAgbWFjcm8oTnVtYmVyKSBcCi0gICAgbWFjcm8oQXJyYXkp
IFwKLSAgICBtYWNybyhTdHJpbmcpIFwKLSAgICBtYWNybyhSZWdFeHApIFwKLSAgICBtYWNybyhN
YXApIFwKLSAgICBtYWNybyhQcm9taXNlKSBcCi0gICAgbWFjcm8oUmVmbGVjdCkgXAotICAgIG1h
Y3JvKEludGVybmFsUHJvbWlzZSkgXAotICAgIG1hY3JvKGFicykgXAotICAgIG1hY3JvKGZsb29y
KSBcCi0gICAgbWFjcm8odHJ1bmMpIFwKLSAgICBtYWNybyhpc0Zpbml0ZSkgXAotICAgIG1hY3Jv
KGlzTmFOKSBcCi0gICAgbWFjcm8oY3JlYXRlKSBcCi0gICAgbWFjcm8oZGVmaW5lUHJvcGVydHkp
IFwKLSAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5
RGVzY3JpcHRvcikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKLSAgICBtYWNy
byhvd25LZXlzKSBcCi0gICAgbWFjcm8oRXJyb3IpIFwKLSAgICBtYWNybyhSYW5nZUVycm9yKSBc
Ci0gICAgbWFjcm8oVHlwZUVycm9yKSBcCi0gICAgbWFjcm8odHlwZWRBcnJheUxlbmd0aCkgXAot
ICAgIG1hY3JvKHR5cGVkQXJyYXlTb3J0KSBcCi0gICAgbWFjcm8odHlwZWRBcnJheUdldE9yaWdp
bmFsQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhCdWlsdGluTG9nKSBcCi0gICAgbWFjcm8oaG9t
ZU9iamVjdCkgXAotICAgIG1hY3JvKGdldFRlbXBsYXRlT2JqZWN0KSBcCi0gICAgbWFjcm8oZW5x
dWV1ZUpvYikgXAotICAgIG1hY3JvKGhhbmRsZXIpIFwKLSAgICBtYWNybyhwcm9taXNlU3RhdGUp
IFwKLSAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9ucykgXAotICAgIG1hY3JvKHByb21p
c2VSZWplY3RSZWFjdGlvbnMpIFwKLSAgICBtYWNybyhwcm9taXNlUmVzdWx0KSBcCi0gICAgbWFj
cm8ocHVzaCkgXAotICAgIG1hY3JvKHJlcGVhdENoYXJhY3RlcikgXAotICAgIG1hY3JvKGNhcGFi
aWxpdGllcykgXAotICAgIG1hY3JvKHN0YXJEZWZhdWx0KSBcCi0gICAgbWFjcm8oSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uKSBcCi0gICAgbWFjcm8oZ2V0KSBcCi0gICAgbWFjcm8oc2V0KSBcCi0g
ICAgbWFjcm8oc2hpZnQpIFwKLSAgICBtYWNybyhhbGxvY2F0ZVR5cGVkQXJyYXkpIFwKLSAgICBt
YWNybyhJbnQ4QXJyYXkpIFwKLSAgICBtYWNybyhJbnQxNkFycmF5KSBcCi0gICAgbWFjcm8oSW50
MzJBcnJheSkgXAotICAgIG1hY3JvKFVpbnQ4QXJyYXkpIFwKLSAgICBtYWNybyhVaW50OENsYW1w
ZWRBcnJheSkgXAotICAgIG1hY3JvKFVpbnQxNkFycmF5KSBcCi0gICAgbWFjcm8oVWludDMyQXJy
YXkpIFwKLSAgICBtYWNybyhGbG9hdDMyQXJyYXkpIFwKLSAgICBtYWNybyhGbG9hdDY0QXJyYXkp
IFwKLSAgICBtYWNybyhleGVjKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yKSBcCi0gICAgbWFjcm8o
Z2VuZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKGdlbmVyYXRvclN0YXRlKSBcCi0gICAgbWFjcm8o
Z2VuZXJhdG9yRnJhbWUpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JWYWx1ZSkgXAotICAgIG1hY3Jv
KGdlbmVyYXRvclRoaXMpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JSZXN1bWVNb2RlKSBcCi0gICAg
bWFjcm8oQ29sbGF0b3IpIFwKLSAgICBtYWNybyhEYXRlVGltZUZvcm1hdCkgXAotICAgIG1hY3Jv
KE51bWJlckZvcm1hdCkgXAotICAgIG1hY3JvKGludGxTdWJzdGl0dXRlVmFsdWUpIFwKLSAgICBt
YWNybyh0aGlzVGltZVZhbHVlKSBcCi0gICAgbWFjcm8odGhpc051bWJlclZhbHVlKSBcCi0gICAg
bWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKLSAgICBtYWNybyhkZXJpdmVkQ29uc3RydWN0b3IpIFwK
LSAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwKLSAgICBtYWNybyhoYXNJbnN0YW5jZUJvdW5k
RnVuY3Rpb24pIFwKLSAgICBtYWNybyhpbnN0YW5jZU9mKSBcCi0gICAgbWFjcm8oaXNBcnJheSkg
XAotICAgIG1hY3JvKGlzQXJyYXlDb25zdHJ1Y3RvcikgXAotICAgIG1hY3JvKGlzQ29uc3RydWN0
b3IpIFwKLSAgICBtYWNybyhpc1JlZ0V4cE9iamVjdCkgXAotICAgIG1hY3JvKGNvbmNhdE1lbWNw
eSkgXAotICAgIG1hY3JvKGFwcGVuZE1lbWNweSkgXAotICAgIG1hY3JvKHByZWRpY3RGaW5hbExl
bmd0aEZyb21Bcmd1bXVudHMpIFwKLSAgICBtYWNybyhwcmludCkgXAotICAgIG1hY3JvKGlzU2V0
KSBcCi0gICAgbWFjcm8oaXNNYXApIFwKLSAgICBtYWNybyhyZWdFeHBDcmVhdGUpIFwKLSAgICBt
YWNybyhTZXRJdGVyYXRvcikgXAotICAgIG1hY3JvKHNldEl0ZXJhdG9yTmV4dCkgXAotICAgIG1h
Y3JvKHJlcGxhY2VVc2luZ1JlZ0V4cCkgXAotICAgIG1hY3JvKHJlcGxhY2VVc2luZ1N0cmluZ1Nl
YXJjaCkgXAotICAgIG1hY3JvKE1hcEl0ZXJhdG9yKSBcCi0gICAgbWFjcm8obWFwSXRlcmF0b3JO
ZXh0KSBcCi0gICAgbWFjcm8ocmVnRXhwQnVpbHRpbkV4ZWMpIFwKLSAgICBtYWNybyhyZWdFeHBN
YXRjaEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0ZsYWdzR2V0dGVyKSBcCi0gICAgbWFj
cm8ocmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0lnbm9y
ZUNhc2VHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b011bHRpbGluZUdldHRlcikgXAot
ICAgIG1hY3JvKHJlZ0V4cFByb3RvU291cmNlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJv
dG9TdGlja3lHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXIpIFwK
LSAgICBtYWNybyhyZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlKSBcCi0gICAgbWFjcm8ocmVn
RXhwUmVwbGFjZUZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBTZWFyY2hGYXN0KSBcCi0gICAgbWFj
cm8ocmVnRXhwU3BsaXRGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwVGVzdEZhc3QpIFwKLSAgICBt
YWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCi0gICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0
KSBcCi0gICAgbWFjcm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKLQogbmFtZXNwYWNlIEpTQyB7
CiAgICAgCiAgICAgY2xhc3MgQnVpbHRpbk5hbWVzOwpAQCAtNDg0LDEwICszNTcsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZ
X05BTUUoSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUk9QRVJUWV9OQU1FX0dMT0JBTCkKICN1bmRl
ZiBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMCiAKLSNkZWZpbmUg
SlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKG5hbWUp
IGNvbnN0IElkZW50aWZpZXIgbmFtZSMjUHJpdmF0ZU5hbWU7Ci0gICAgICAgIEpTQ19DT01NT05f
UFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSlNDX0lERU5USUZJRVJfREVD
TEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKQotI3VuZGVmIEpTQ19JREVOVElGSUVS
X0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTAotCiAjZGVmaW5lIEpTQ19JREVO
VElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwobmFtZSkgY29u
c3QgSWRlbnRpZmllciBuYW1lIyNTeW1ib2w7CiAgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKEpTQ19JREVOVElGSUVSX0RFQ0xBUkVf
UFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwpCiAjdW5kZWYgSlNDX0lERU5USUZJRVJf
REVDTEFSRV9QUklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggZTU0NDMxMGZi
MjNkZTJlMjk2ODlmZDc2ZWU3Zjc5NzZkMjQ0MTcyMi4uYTZlY2ZkMjg0YjEwMWMzYWMwMDFmNjgy
Zjg4OGRlZDE5NzY3ODQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0yNSw3ICsyNSw5IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKKwogI2luY2x1ZGUgIkFycmF5Q29u
c3RydWN0b3IuaCIKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJDYWxsRnJh
bWUuaCIKICNpbmNsdWRlICJDbG9uZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJDb2RlUHJvZmls
aW5nLmgiCkBAIC03MTcsNyArNzE5LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3NhdmUp
CiAgICAgQkVHSU4oKTsKICAgICBKU1ZhbHVlIGdlbmVyYXRvciA9IE9QKDEpLmpzVmFsdWUoKTsK
ICAgICBHZW5lcmF0b3JGcmFtZSogZnJhbWUgPSBudWxscHRyOwotICAgIEpTVmFsdWUgdmFsdWUg
PSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFt
ZVByaXZhdGVOYW1lKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2VuZXJhdG9yLmdldChleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRl
TmFtZSgpKTsKICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBmcmFtZSA9IGpzQ2Fz
dDxHZW5lcmF0b3JGcmFtZSo+KHZhbHVlKTsKICAgICBlbHNlIHsKQEAgLTcyNSw3ICs3MjcsNyBA
QCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2F2ZSkKICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogICAgICAgICBmcmFtZSA9IEdlbmVy
YXRvckZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwgIGV4ZWMtPmNvZGVCbG9jaygpLT5udW1DYWxs
ZWVMb2NhbHMoKSk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGdlbmVyYXRvciwgdHJ1
ZSwgUHV0UHJvcGVydHlTbG90OjpQdXRCeUlkKTsKLSAgICAgICAgYXNPYmplY3QoZ2VuZXJhdG9y
KS0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0b3IpLCBleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSwgZnJhbWUs
IHNsb3QpOworICAgICAgICBhc09iamVjdChnZW5lcmF0b3IpLT5tZXRob2RUYWJsZShleGVjLT52
bSgpKS0+cHV0KGFzT2JqZWN0KGdlbmVyYXRvciksIGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCksIGZyYW1lLCBzbG90
KTsKICAgICB9CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0luZGV4ID0gcGNbMl0udS51
bnNpZ25lZFZhbHVlOwogICAgIGZyYW1lLT5zYXZlKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5s
aXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxzSW5kZXgpKTsKQEAgLTczNiw3
ICs3MzgsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzdW1lKQogewogICAgIEJFR0lO
KCk7CiAgICAgSlNWYWx1ZSBnZW5lcmF0b3IgPSBPUCgxKS5qc1ZhbHVlKCk7Ci0gICAgR2VuZXJh
dG9yRnJhbWUqIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJhdG9yLmdldChl
eGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSkpOwor
ICAgIEdlbmVyYXRvckZyYW1lKiBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0b3JGcmFtZSo+KGdlbmVy
YXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVy
YXRvckZyYW1lUHJpdmF0ZU5hbWUoKSkpOwogICAgIHVuc2lnbmVkIGxpdmVDYWxsZWVMb2NhbHNJ
bmRleCA9IHBjWzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+cmVzdW1lKGV4ZWMsIGV4
ZWMtPmNvZGVCbG9jaygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxz
SW5kZXgpKTsKICAgICBFTkQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDQ4Mzg5Y2QzYjI1NGI4YTM5ZWMxMDUx
ODUxYTljYzU0ZWI3OWNjZTkuLjNhODA1MDBmOGZkZTFjNGY3NTBlODcwYjljMGEyNjgxMDhiZTc4
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QW5keSBWYW5XYWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20pCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCBlMWRkM2U0NGRm
NGE0ZTEyOWQwMWI4ZGM5OTllODY2OWY5MjY2OTE4Li5kZTUwOWY1MzljMjEwZDE2OGE3NDEyMWVi
ZWI5YzQ0MjFmNzUwZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAj
aW5jbHVkZSAiRGF0ZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRl
ICJJbnRsRGF0ZVRpbWVGb3JtYXQuaCIKQEAgLTExNiw3ICsxMTcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChF
eGVjU3RhdGUqCiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmls
aXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghZHRmKQot
ICAgICAgICBkdGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50
aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJz
dGl0dXRlVmFsdWVQcml2YXRlTmFtZSkpOworICAgICAgICBkdGYgPSBqc0R5bmFtaWNDYXN0PElu
dGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52
bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2
YXRlTmFtZSgpKSk7CiAKICAgICAvLyAyLiBSZXR1cm5JZkFicnVwdChkdGYpLgogICAgIGlmICgh
ZHRmKQpAQCAtMTUzLDcgKzE1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjCiAgICAgLy8g
RklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGggRUNNQS00MDIg
MS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCi0gICAgICAg
IGRhdGVUaW1lRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0
ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRs
U3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgZGF0ZVRpbWVGb3JtYXQgPSBq
c0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQo
c3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJz
dGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIWRhdGVUaW1lRm9ybWF0KQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBBU0NJ
SUxpdGVyYWwoIkludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBj
YWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBEYXRl
VGltZUZvcm1hdCIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDBhNWQ1NjMxNmQ1NmFi
NWEwODVlNjQ4NWI1MTE3ODY3ZjlmOTc4N2EuLmZlMmM5ZGJmNmZkOTQyYmNhMWI1YTA1NDc2ODUy
NWJhYjc2YTI5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKHRoZXRhbGVjcmFmdGVyQGdt
YWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI5LDcgQEAK
IAogI2lmIEVOQUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVk
ZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAjaW5jbHVkZSAiSlNC
b3VuZEZ1bmN0aW9uLmgiCkBAIC0xMDUsNyArMTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4ZWNTdGF0ZSog
c3QKICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0
aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFuZikKLSAgICAgICAg
bmYgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCku
Z2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVl
UHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgbmYgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3Jt
YXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwog
CiAgICAgaWYgKCFuZikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVF
cnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9y
bWF0IGNhbGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBh
IE51bWJlckZvcm1hdCIpKSk7CkBAIC0xNDEsNyArMTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhF
eGVjU3QKICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkg
d2l0aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFudW1iZXJGb3Jt
YXQpCi0gICAgICAgIG51bWJlckZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1h
dCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFt
ZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSkpOworICAgICAgICBudW1iZXJGb3Jt
YXQgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCku
Z2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRs
U3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFudW1iZXJGb3JtYXQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFT
Q0lJTGl0ZXJhbCgiSW50bC5OdW1iZXJGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBj
YWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBOdW1i
ZXJGb3JtYXQiKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3RJbmxpbmVzLmgKaW5kZXggMTI5ZDk4NTUzOGY1Yjg4MmMwMGNkOWRjZjAzNDczYjA3YmVj
NjRjOC4uZTNiZmYzODc3YjA4ZjFkOTY5YzczMWVmNGIxMzI3ZGZlNjQ5NGJhOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx5dXN1
a2Uuc3V6dWtpQHNzbGFiLmljcy5rZWlvLmFjLmpwPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjcsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJC
dWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKIApAQCAtNDksNyArNTEsNyBAQCBKU1ZhbHVlIGNvbnN0cnVjdEludGxJbnN0YW5jZVdp
dGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSYgcwogICAgICAg
ICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogCi0gICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSwgaW5zdGFuY2Up
OworICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSwgaW5zdGFu
Y2UpOwogICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3Q7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxMDViODdmOGJiOGIyM2IwZTJiMTZmMzk5
NWEwMTNlNzU2ZWFkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQXJy
YXlJdGVyYXRvci5oIgotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKLSNpbmNsdWRl
ICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCi0jaW5j
bHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgQ2xh
c3NJbmZvIEpTQXJyYXlJdGVyYXRvcjo6c19pbmZvID0geyAiQXJyYXkgSXRlcmF0b3IiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQXJyYXlJdGVyYXRvcikgfTsKLQot
dm9pZCBKU0FycmF5SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KQot
ewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7Ci0KLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkT2Jq
ZWN0UHJpdmF0ZU5hbWUsIGl0ZXJhdGVkT2JqZWN0KTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwganNOdW1iZXIo
MCkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YXJyYXlJdGVyYXRpb25L
aW5kUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKGtpbmQpKTsKLX0KLQotQXJyYXlJdGVyYXRpb25LaW5k
IEpTQXJyYXlJdGVyYXRvcjo6a2luZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgSlNW
YWx1ZSBraW5kVmFsdWUgPSBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0
eU5hbWVzLT5hcnJheUl0ZXJhdGlvbktpbmRQcml2YXRlTmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEFycmF5SXRlcmF0aW9uS2luZD4oa2luZFZhbHVlLmFzSW50MzIoKSk7Ci19Ci0KLUpT
VmFsdWUgSlNBcnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29u
c3QKLXsKLSAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVy
dHlOYW1lcy0+aXRlcmF0ZWRPYmplY3RQcml2YXRlTmFtZSk7Ci19Ci0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDE2NmJkMmU1MzUyYmEyMTU5MzY0MjcxZWNhYmJhZjgwZTE1MzYz
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaAorKysgL2Rldi9udWxsCkBA
IC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgSlNBcnJheUl0ZXJhdG9yX2gKLSNkZWZpbmUgSlNBcnJheUl0ZXJhdG9y
X2gKLQotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1lbnVtIEFy
cmF5SXRlcmF0aW9uS2luZCA6IHVpbnQzMl90IHsKLSAgICBBcnJheUl0ZXJhdGVLZXksCi0gICAg
QXJyYXlJdGVyYXRlVmFsdWUsCi0gICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUKLX07Ci0KLWNsYXNz
IEpTQXJyYXlJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIERFQ0xBUkVfRVhQT1JUX0lO
Rk87Ci0KLSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgSlNBcnJheUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpTT2JqZWN0KiBpdGVy
YXRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgICAg
IEpTQXJyYXlJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxK
U0FycmF5SXRlcmF0b3I+KHZtLmhlYXApKSBKU0FycmF5SXRlcmF0b3Iodm0sIHN0cnVjdHVyZSk7
Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJlLT5nbG9iYWxP
YmplY3QoKSwga2luZCwgaXRlcmF0ZWRPYmplY3QpOwotICAgICAgICByZXR1cm4gaW5zdGFuY2U7
Ci0gICAgfQotCi0gICAgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQoRXhlY1N0YXRlKikgY29uc3Q7
Ci0gICAgSlNWYWx1ZSBpdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgIEpTQXJy
YXlJdGVyYXRvciogY2xvbmUoRXhlY1N0YXRlKik7Ci0KLSAgICB1c2luZyBKU05vbkZpbmFsT2Jq
ZWN0OjphcnJheVN0b3JhZ2VPck51bGw7Ci1wcml2YXRlOgotICAgIEpTQXJyYXlJdGVyYXRvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgQXJyYXlJdGVyYXRpb25LaW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpOwot
fTsKLQotfQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSlNBcnJheUl0ZXJhdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCA2ZWIwODkyMTM3
ZmQ4MzE0MmJkNjBlODExYzQ1MjgwZDUwNzBjZTAxLi5jY2MzYjA1ZDc3OWUwODY5ZDRiOTcwMmZi
Y2M5OWRkOGI4YjMzYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3JJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcklubGluZXNfaAogI2RlZmluZSBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNs
dWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXIuaCIKQEAgLTUyLDcgKzUzLDcgQEAgdm9pZCBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG8KICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
QllURVNfUEVSX0VMRU1FTlQsIGpzTnVtYmVyKFZpZXdDbGFzczo6ZWxlbWVudFNpemUpLCBEb250
RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSk7CiAKICAgICBpZiAocHJpdmF0ZUFsbG9jYXRv
cikKLSAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPmFsbG9jYXRlVHlwZWRBcnJheVByaXZhdGVOYW1lLCBwcml2YXRlQWxs
b2NhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgICAgIHB1dERp
cmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFtZSgpLCBwcml2YXRlQWxs
b2NhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFZpZXdDbGFzcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZUZ1bmN0aW9ucy5oCmluZGV4IDRmM2I4ZWM3YjQ5MTI0MjVlMDQyMzYxMTRiZTMyZTZmNjQ4YWE0
OTAuLjBiMDIzZDgyZDljYTY0MjZkOWI3ZjA4NWY0ZDgyYThlMjRjN2NhOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMzAsNyArMzAsNiBA
QAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNDBhOTJmYzVhMTFkY2Q0NGFl
YTI5MzRhNTM0YmU4OTgyNGM4OTY1YS4uYWIwMTljYTg3YzJjMjFiYTA1NjdmZjQyZmQzNWU3YzBj
ZGFiMjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIK
ICNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5
QnVmZmVyUHJvdG90eXBlLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIgpAQCAtNDI2LDcgKzQyNSw3IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoSlMg
IyMgdHlwZSAjIyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBK
UyAjIyB0eXBlICMjIEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5p
dC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tX3R5cGVkQXJyYXlQcm90by5nZXQoaW5pdC5nbG9iYWwp
KSkpOyBcCiAgICAgICAgICAgICBpbml0LnNldFN0cnVjdHVyZShKUyAjIyB0eXBlICMjIEFycmF5
OjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQucHJvdG90eXBlKSk7
IFwKICAgICAgICAgICAgIGluaXQuc2V0Q29uc3RydWN0b3IoSlMgIyMgdHlwZSAjIyBBcnJheUNv
bnN0cnVjdG9yOjpjcmVhdGUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIEpTICMjIHR5cGUgIyMgQXJy
YXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0
Lmdsb2JhbC0+bV90eXBlZEFycmF5U3VwZXJDb25zdHJ1Y3Rvci5nZXQoaW5pdC5nbG9iYWwpKSwg
aW5pdC5wcm90b3R5cGUsIEFTQ0lJTGl0ZXJhbCgjdHlwZSAiQXJyYXkiKSwgdHlwZWRBcnJheUNv
bnN0cnVjdG9yQWxsb2NhdGUgIyMgdHlwZSAjIyBBcnJheUNvZGVHZW5lcmF0b3IoaW5pdC52bSkp
KTsgXAotICAgICAgICAgICAgaW5pdC5nbG9iYWwtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KGluaXQudm0sIGluaXQudm0ucHJvcGVydHlOYW1lcy0+dHlwZSAjIyBBcnJheVByaXZhdGVOYW1l
LCBpbml0LmNvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAgICAgIGluaXQuZ2xvYmFs
LT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihpbml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSgpLCBpbml0LmNvbnN0
cnVjdG9yLCBEb250RW51bSk7IFwKICAgICAgICAgfSk7CiAgICAgRk9SX0VBQ0hfVFlQRURfQVJS
QVlfVFlQRV9FWENMVURJTkdfREFUQV9WSUVXKElOSVRfVFlQRURfQVJSQVlfTEFURVIpCiAjdW5k
ZWYgSU5JVF9UWVBFRF9BUlJBWV9MQVRFUgpAQCAtNjE5LDggKzYxOCw4IEBAIG1fICMjIGxvd2Vy
TmFtZSAjIyBQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPlJhbmdlRXJyb3IsIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250
RW51bSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPlR5cGVFcnJvciwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwog
Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPk9i
amVjdFByaXZhdGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5BcnJheVByaXZhdGVOYW1lLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCks
IG9iamVjdENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Cisg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLkFycmF5UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogCiAjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1Jf
U0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VU
eXBlLCBqc05hbWUpIFwKIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXApA
QCAtNjUzLDggKzY1Miw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlv
biogcHJpdmF0ZUZ1bmNUcnVuYyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIG1hdGhQcm90b0Z1bmNUcnVuYywgVHJ1bmNJbnRyaW5zaWMpOwogCiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIGdldFRlbXBsYXRlT2JqZWN0KTsKLSAgICBKU0Z1bmN0aW9u
KiBwcml2YXRlRnVuY1RvTGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9u
KHZtLCBnbG9iYWxPYmplY3RUb0xlbmd0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBK
U0Z1bmN0aW9uKiBwcml2YXRlRnVuY1RvSW50ZWdlciA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0VG9JbnRlZ2VyQ29kZUdlbmVyYXRvcih2bSksIHRo
aXMpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCA9IEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0
ZUZ1bmNMZW5ndGgpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9y
aWdpbmFsQ29uc3RydWN0b3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CiAg
ICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0
KTsKQEAgLTY2OCwxMyArNjY1LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1
bmN0aW9uKiBwcml2YXRlRnVuY0FwcGVuZE1lbWNweSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMCwgU3RyaW5nKCksIGFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweSk7CiAg
ICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCA9IEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJyYXlQcm90b3R5cGVDb25jYXRTbG93UGF0aENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKTsKIAotICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90
eXBlID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5
cGUuZ2V0KCkpKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0
b3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBl
Q3JlYXRlQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwot
ICAgIHByaXZhdGVGdW5jQ3JlYXRlQXJyYXlJdGVyYXRvci0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGFycmF5SXRlcmF0b3JQcm90b3R5cGUpOwotICAgIEpTRnVu
Y3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvclZhbHVlTmV4dCA9IEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0
b3JWYWx1ZU5leHRDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNBcnJheUl0ZXJhdG9yS2V5TmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5G
dW5jdGlvbih2bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlOZXh0Q29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJ
dGVyYXRvcktleVZhbHVlTmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHRDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyk7Ci0KICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9GbGFnc0dldHRl
ck9iamVjdCA9IGdldEdldHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCksIHZt
LnByb3BlcnR5TmFtZXMtPmZsYWdzKTsKICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9HbG9iYWxH
ZXR0ZXJPYmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgp
LCB2bS5wcm9wZXJ0eU5hbWVzLT5nbG9iYWwpOwogICAgIG1fcmVnRXhwUHJvdG9HbG9iYWxHZXR0
ZXIuc2V0KHZtLCB0aGlzLCByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCk7CkBAIC02ODks
NzAgKzY3OSw2MSBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTT2JqZWN0KiByZWdF
eHBTeW1ib2xSZXBsYWNlID0gYXNPYmplY3QobV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5bWJvbCkuYXNDZWxsKCkpOwogICAgIG1fcmVn
RXhwUHJvdG9TeW1ib2xSZXBsYWNlLnNldCh2bSwgdGhpcywgcmVnRXhwU3ltYm9sUmVwbGFjZSk7
CiAKKyNkZWZpbmUgQ1JFQVRFX1BSSVZBVEVfR0xPQkFMX0ZVTkNUSU9OKG5hbWUsIGNvZGUpIEpT
RnVuY3Rpb24qIG5hbWUgIyMgUHJpdmF0ZUZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVp
bHRpbkZ1bmN0aW9uKHZtLCBjb2RlICMjIENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKKyAgICBK
U0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoQ1JFQVRFX1BS
SVZBVEVfR0xPQkFMX0ZVTkNUSU9OKQorI3VuZGVmIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5D
VElPTgorCisgICAgSlNPYmplY3QqIGFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9pdGVyYXRvclByb3RvdHlwZS5nZXQoKSkpOworICAg
IGNyZWF0ZUFycmF5SXRlcmF0b3JQcml2YXRlRnVuY3Rpb24tPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKKworCiAgICAg
R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKKyNkZWZpbmUgSU5JVF9QUklW
QVRFX0dMT0JBTChuYW1lLCBjb2RlKSBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkubmFtZSAjIyBQcml2YXRlTmFtZSgpLCBuYW1lICMjIFByaXZhdGVG
dW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBKU0Nf
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoSU5JVF9QUklWQVRF
X0dMT0JBTCkKKyN1bmRlZiBJTklUX1BSSVZBVEVfR0xPQkFMCiAgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPkluZmluaXR5LCBqc051bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1Vu
ZGVmaW5lZCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5vd25FbnVtZXJhYmxlUHJvcGVydHlL
ZXlzUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCks
IG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5nZXRU
ZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2JqZWN0LCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5FcnJvclByaXZhdGVOYW1lLCBtX2Vycm9yQ29uc3RydWN0b3IuZ2V0KCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPlJhbmdlRXJyb3JQcml2YXRlTmFtZSwgbV9yYW5nZUVycm9y
Q29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlR5cGVFcnJvclByaXZh
dGVOYW1lLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUxl
bmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3Ry
dWN0b3JQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1
Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheVNvcnRQcml2YXRlTmFtZSwg
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNCb3Vu
ZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pmluc3RhbmNlT2ZQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0aW5Mb2csIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBudW1iZXJDb25zdHJ1Y3RvciwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+UmVnRXhwUHJpdmF0ZU5hbWUsIG1fcmVnRXhwQ29uc3RydWN0
b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlN0cmluZ1ByaXZhdGVOYW1lLCBzdHJp
bmdDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YWJzUHJpdmF0ZU5hbWUsIHBy
aXZhdGVGdW5jQWJzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5mbG9vclByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY0Zsb29yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50cnVuY1ByaXZhdGVOYW1l
LCBwcml2YXRlRnVuY1RydW5jLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0Zpbml0ZVByaXZh
dGVOYW1lLCBwcml2YXRlRnVuY0lzRmluaXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc05h
TlByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5Q
cm9taXNlUHJpdmF0ZU5hbWUsIHByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+UmVmbGVjdFByaXZhdGVOYW1lLCByZWZsZWN0T2JqZWN0LCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5JbnRlcm5hbFByb21pc2VQcml2YXRlTmFtZSwgaW50ZXJuYWxQcm9taXNlQ29uc3Ry
dWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLQotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVwZWF0Q2hhcmFjdGVyUHJpdmF0ZU5h
bWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3Rv
RnVuY1JlcGVhdENoYXJhY3RlciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnJlcGVhdFNsb3dQYXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRp
bkZ1bmN0aW9uKHZtLCBzdHJpbmdQcm90b3R5cGVSZXBlYXRTbG93UGF0aENvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0
Q2hhcmFjdGVyc1Nsb3dQYXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRp
bkZ1bmN0aW9uKHZtLCBzdHJpbmdQcm90b3R5cGVSZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGhDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LQotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNTZXRQcml2
YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0
ZUZ1bmNJc1NldCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlNldEl0ZXJhdG9yUHJpdmF0ZU5h
bWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5j
U2V0SXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zZXRJdGVyYXRvck5leHRQcml2
YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0
ZUZ1bmNTZXRJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc01hcFByaXZh
dGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRl
RnVuY0lzTWFwKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheVByaXZhdGVOYW1lLCBh
cnJheUNvbnN0cnVjdG9yLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXkp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5Q29uc3RydWN0b3JQcml2YXRlTmFtZSwg
cHJpdmF0ZUZ1bmNJc0FycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmNv
bmNhdE1lbWNweVByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0NvbmNhdE1lbWNweSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YXBwZW5kTWVtY3B5UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jQXBwZW5k
TWVtY3B5LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25FbnVtZXJh
YmxlUHJvcGVydHlLZXlzUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAwLCBTdHJpbmcoKSwgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSwg
cHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZW5xdWV1ZUpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5FcnJvclByaXZhdGVOYW1lKCksIG1fZXJyb3JDb25zdHJ1Y3Rvci5n
ZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmFuZ2VFcnJvclBy
aXZhdGVOYW1lKCksIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5UeXBlRXJyb3JQcml2YXRlTmFtZSgpLCBtX3R5cGVF
cnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5
TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBlZEFycmF5
R2V0T3JpZ2luYWxDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJh
eUdldE9yaWdpbmFsQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnR5cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5
U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNCb3VuZEZ1bmN0
aW9uUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZh
dGVOYW1lKCksIHByaXZhdGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnN0YW5jZU9mUHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5CdWlsdGluTG9nUHJpdmF0ZU5hbWUoKSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuTnVtYmVyUHJpdmF0ZU5hbWUoKSwgbnVtYmVyQ29uc3RydWN0
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJlZ0V4cFByaXZhdGVO
YW1lKCksIG1fcmVnRXhwQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLlN0cmluZ1ByaXZhdGVOYW1lKCksIHN0cmluZ0NvbnN0cnVjdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hYnNQcml2YXRlTmFtZSgpLCBw
cml2YXRlRnVuY0FicywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmxv
b3JQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0Zsb29yLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS50cnVuY1ByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHJ1bmMsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzRmluaXRlUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNJc0Zpbml0ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuaXNOYU5Qcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5Qcm9taXNlUHJpdmF0ZU5hbWUoKSwgcHJvbWlzZUNv
bnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SZWZsZWN0
UHJpdmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuSW50ZXJuYWxQcm9taXNlUHJpdmF0ZU5hbWUoKSwgaW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKworICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVw
ZWF0Q2hhcmFjdGVyUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAy
LCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNTZXRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzU2V0KSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuU2V0SXRlcmF0b3JQcml2YXRlTmFtZSgp
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY1Nl
dEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0SXRl
cmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBT
dHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pc01hcFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jSXNNYXApLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0FycmF5UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25z
dHJ1Y3Rvci0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5KSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheUNvbnN0cnVjdG9yUHJpdmF0
ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc0FycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdE1lbWNweVByaXZhdGVOYW1lKCksIHByaXZhdGVG
dW5jQ29uY2F0TWVtY3B5LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5h
cHBlbmRNZW1jcHlQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FwcGVuZE1lbWNweSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29uY2F0U2xvd1BhdGhQcml2YXRlTmFt
ZSgpLCBwcml2YXRlRnVuY0NvbmNhdFNsb3dQYXRoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5N
YXBJdGVyYXRvclByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0
cmluZygpLCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
bWFwSXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIHByaXZhdGVGdW5jTWFwSXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvclZhbHVlTmV4dFByaXZhdGVOYW1l
KCksIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvclZhbHVlTmV4dCwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcktleU5leHRQcml2YXRlTmFtZSgpLCBw
cml2YXRlRnVuY0FycmF5SXRlcmF0b3JLZXlOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0UHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNBcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5jcmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0
ZUZ1bmNDcmVhdGVBcnJheUl0ZXJhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnRvTGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUb0xlbmd0aCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9JbnRlZ2VyUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNUb0ludGVnZXIsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmlzRGljdGlvbmFyeVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0SXNEaWN0aW9uYXJ5Q29kZUdlbmVyYXRvcih2bSks
IHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1Byb21pc2VQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21p
c2VPcGVyYXRpb25zSXNQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5uZXdQcm9taXNlUmVhY3Rpb25Qcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRp
b25zTmV3UHJvbWlzZVJlYWN0aW9uQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5uZXdQcm9taXNlQ2FwYWJpbGl0eVByaXZhdGVO
YW1lKCksIG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudHJpZ2dlclByb21pc2VSZWFjdGlvbnNQcml2YXRl
TmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVy
YXRpb25zVHJpZ2dlclByb21pc2VSZWFjdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByb21pc2VQcml2YXRl
TmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVy
YXRpb25zUmVqZWN0UHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZnVsZmlsbFByb21pc2VQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zRnVs
ZmlsbFByb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1ByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnND
cmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZWFjdGlvbkpvYlByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJh
dGlvbnNQcm9taXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21p
c2VPcGVyYXRpb25zUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVHZW5lcmF0b3Iodm0pLCB0
aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTWFwSXRlcmF0b3JQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBw
cml2YXRlRnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkubWFwSXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkluc3BlY3Rvckluc3RydW1lbnRhdGlv
blByaXZhdGVOYW1lKCksIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlKHZt
LCB0aGlzLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+TWFwUHJpdmF0ZU5hbWUsIG1hcENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdlbmVyYXRvclByb3RvdHlwZUdlbmVyYXRvclJl
c3VtZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuTWFwUHJpdmF0ZU5hbWUoKSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoaXNUaW1lVmFsdWVQcml2YXRlTmFtZSgpLCBw
cml2YXRlRnVuY1RoaXNUaW1lVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnRoaXNOdW1iZXJWYWx1ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVGhpc051bWJl
clZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjaWYgRU5BQkxFKElO
VEwpCkBAIC03NjEsMzYgKzc0MiwzMCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTnVt
YmVyRm9ybWF0UHJpdmF0ZU5hbWUoKSwgaW50bC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5OdW1iZXJGb3JtYXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAj
ZW5kaWYgLy8gRU5BQkxFKElOVEwpCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVjdFByaXZhdGVOYW1lLCBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9iamVj
dCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5zcGVjaWVzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFNwZWNpZXNDb25zdHJ1Y3RvckNv
ZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuaXNDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNSZWdFeHBPYmplY3RQcml2YXRl
TmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJ
c1JlZ0V4cE9iamVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPnJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9G
bGFnc0dldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9HbG9i
YWxHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlclByaXZhdGVOYW1l
LCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvTXVs
dGlsaW5lR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1Nv
dXJjZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1NvdXJjZUdldHRlck9iamVjdCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJQcml2YXRlTmFtZSwg
cmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJl
Z0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0
ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFBy
b3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0ZsYWdzR2V0dGVyT2JqZWN0
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0dsb2Jh
bEdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0lnbm9yZUNhc2VH
ZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvTXVsdGlsaW5l
R2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXJPYmplY3QsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU291cmNlR2V0
dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyUHJp
dmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVO
YW1lKCksIHJlZ0V4cFByb3RvVW5pY29kZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFJlZ0V4cC5wcm90b3R5cGUgaGVscGVycy4K
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cEJ1aWx0
aW5FeGVjUHJpdmF0ZU5hbWUsIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAyLCBTdHJpbmcoKSwgZXNTcGVjUmVnRXhwQ3JlYXRlLCBOb0ludHJpbnNpYyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0Zv
clJlZ0V4cE1hdGNoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCByZWdFeHBQcm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBN
YXRjaENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRQcml2YXRl
TmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4cFByb3Rv
dHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0Q29kZUdlbmVyYXRvcih2
bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hZHZhbmNl
U3RyaW5nSW5kZXhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rp
b24odm0sIHJlZ0V4cFByb3RvdHlwZUFkdmFuY2VTdHJpbmdJbmRleENvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwRXhl
Y1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVn
RXhwUHJvdG90eXBlUmVnRXhwRXhlY0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+cmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU2VhcmNo
RmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNwbGl0RmFzdFByaXZhdGVOYW1l
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1
bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b3R5cGVTeW1i
b2xSZXBsYWNlUHJpdmF0ZU5hbWUsIG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5y
ZWdFeHBUZXN0RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEs
IFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCwgUmVnRXhwVGVzdEZhc3RJbnRyaW5z
aWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBCdWlsdGlu
RXhlY1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5vSW50
cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwTWF0
Y2hGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkucmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3Qp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBTcGxpdEZhc3RQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBy
ZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5yZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0ZU5hbWUoKSwgbV9yZWdF
eHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5bWJv
bCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFRlc3RGYXN0
UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwg
cmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50cmluc2ljKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFN0cmluZy5wcm90b3R5
cGUgaGVscGVycy4KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0cmlu
Z1Byb3RvdHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1ZGVz
SW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5zdHJpbmdTcGxpdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+c3RyaW5nU3Vic3RySW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFs
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSW5jbHVkZXNJ
bnRlcm5hbFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3Ry
aW5nKCksIGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRG
YXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3Vic3Ry
SW50ZXJuYWxQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0
cmluZygpLCBidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgfTsKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2Jh
bHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCmluZGV4IGEz
MjQwNTUwYzAzYTcxMTkwYTkyMDBkOGI2ZmY1NzQ0ZmU5ZGNjNTIuLmFiYTc1YWEyNTgzYzRjM2U1
ZDMwZjkzYmYyYWE2MDRhNjc5NTg2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCBm
ZWZkZWNkZjAzYjY0ZTZkZjNiNDEwMGQ2MWI2YTQ0N2NmYWYyZDhiLi44YTI3ZDkxZTc1NTY5OThh
NzI3OWVmODNmZTY2MDhkNDM0YmMwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKUwogCiAgICAgSlNWYWx1ZSBkZWZlcnJl
ZCA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KGV4ZWMsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT5pbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUgcHJvbWlzZSA9
IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJpdmF0ZU5hbWUp
OworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgQVNTRVJUKHBy
b21pc2UuaW5oZXJpdHMoSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUg
cmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJl
ZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0
ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b21pc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcApp
bmRleCA1NmUyZjVhZWY5MjAxMzkwMmZiMmY3MTZjNzJkYjQ1NmZiYjYwMWM2Li4wMjAyZTE3OWNm
NDczYzg3NzUzNDE2ZGFlZWU0YTc1ODJkZGFkZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgog
I2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJKU0NlbGxJbmxpbmVzLmgiCkBAIC01OCwxMCArNTksMTAgQEAgSlNQcm9taXNlOjpKU1By
b21pc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgSlNQcm9taXNlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUs
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBlbmRpbmcpKSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbFJlYWN0aW9uc1By
aXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb21pc2VSZWplY3RSZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQoKSk7
Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJpdmF0
ZU5hbWUsIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFN0YXR1czo6UGVuZGluZykpKTsKKyAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VGdWxmaWxsUmVhY3Rpb25z
UHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVqZWN0UmVhY3Rpb25zUHJpdmF0ZU5h
bWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQo
KSk7CiB9CiAKIHZvaWQgSlNQcm9taXNlOjppbml0aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGVjdXRvcikKQEAgLTc4LDE0ICs3
OSwxNCBAQCB2b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogCiBhdXRvIEpTUHJvbWlzZTo6c3RhdHVz
KFZNJiB2bSkgY29uc3QgLT4gU3RhdHVzCiB7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGdldERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUpOworICAgIEpT
VmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnByb21pc2VTdGF0ZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VSVCh2YWx1ZS5pc1VJbnQz
MigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RhdHVzPih2YWx1ZS5hc1VJbnQzMigpKTsK
IH0KIAogSlNWYWx1ZSBKU1Byb21pc2U6OnJlc3VsdChWTSYgdm0pIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlc3VsdFByaXZhdGVO
YW1lKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNl
RGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVm
ZXJyZWQuY3BwCmluZGV4IDBhYWQzNzA3MTYxZDQ0YTVkNWFiMDgyY2Y1ZjMyMjc1YmIwOTcyOTIu
LjY1ZDcyMzg3NmEwN2NiNDE2MWNiNTljZTYyNGRiYWYyYWQwYjYzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDcg
KzU5LDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFsdWUgZGVmZXJyZWQg
PSBuZXdQcm9taXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
cHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogCi0gICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQu
Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7CisgICAgSlNW
YWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQocHJvbWlzZS5pbmhl
cml0cyhKU1Byb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVk
LmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0
ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCmluZGV4
IGM2ZmVkZTdhZGFmMTAwNWUxNmMxYjc0NGMyMjdlMDZlNjNkZmNiYzQuLjdiZmQ4YTlhNDdiMTVl
Njg3Y2U5YzZhNzM3YjRmYmJjYWU5MGY2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
LgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUg
IkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKQEAgLTM4
LDIzICs0MCwyMyBAQCB2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lLCBpdGVy
YXRlZFN0cmluZyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJ
dGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigwKSk7CisgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZh
dGVOYW1lKCksIGl0ZXJhdGVkU3RyaW5nKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUo
KSwganNOdW1iZXIoMCkpOwogfQogCiBKU1ZhbHVlIEpTU3RyaW5nSXRlcmF0b3I6Oml0ZXJhdGVk
VmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBnZXREaXJlY3QoZXhl
Yy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVO
YW1lKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsKIH0K
IAogSlNTdHJpbmdJdGVyYXRvciogSlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSlNWYWx1ZSBpdGVyYXRlZFN0
cmluZyA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2
YXRlTmFtZSk7Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUpOworICAgIEpTVmFs
dWUgaXRlcmF0ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUoKSk7CisgICAgSlNWYWx1ZSBuZXh0
SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0
cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSk7CiAKICAgICBhdXRvIGNsb25lID0g
SlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmpl
Y3QoKS0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNTdHJpbmcoaXRlcmF0ZWRTdHJpbmcp
KTsKLSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVy
YXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBuZXh0SW5kZXgpOworICAgIGNsb25lLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4UHJpdmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKICAgICByZXR1cm4gY2xvbmU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4
IDRiNjMwYzJkN2M5Y2QzNGFmYzZkZGE2ZmQ2ZjQyYzI0M2RjN2FhZGEuLmE3ZjUxMGJhYjQ1ZmEx
MmI3YTY3ZWMzZmZkZGY1MDM0Y2VmNTUxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcApAQCAtNzgsOCArNzgsOCBAQCB2b2lkIE1hcFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSwgbWFwUHJvdG9GdW5jVmFs
dWVzLCBEb250RW51bSwgMCk7CiAKICAgICAvLyBQcml2YXRlIGdldCAvIHNldCBvcGVyYXRpb25z
LgotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmdldFByaXZhdGVOYW1lLCBtYXBQcm90b0Z1bmNHZXQsIERvbnRFbnVtLCAxKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5zZXRQcml2YXRlTmFtZSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51bSwgMik7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZ2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51bSwg
MSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jU2V0
LCBEb250RW51bSwgMik7CiAKICAgICBKU0Z1bmN0aW9uKiBlbnRyaWVzID0gSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDAsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmVudHJpZXNQdWJsaWNOYW1lKCkuc3RyaW5nKCksIG1hcFByb3RvRnVuY0VudHJpZXMpOwog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBlbnRyaWVzLCBEb250RW51bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggMDhkYTFkYmZhZDIyM2Y1OTVkNTNkOTIxNWYxOTZjMTNhNTJmMTkzZS4uM2MyOTNmYmI2
NjRmNTY2MDQ4ZmI4OGNjMzVkZjY3MmViOWEwM2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjEsNiArMjEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAK
KyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKQEAg
LTk5LDEwICsxMDAsMTAgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmoKICAgICAvLyBuby4gb2Yg
YXJndW1lbnRzIGZvciBjb25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERv
bnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5jcmVhdGVQcml2YXRlTmFtZSwgb2JqZWN0Q29u
c3RydWN0b3JDcmVhdGUsIERvbnRFbnVtLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWZpbmVQcm9wZXJ0eVByaXZhdGVO
YW1lLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCBEb250RW51bSwgMyk7Ci0gICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
Z2V0UHJvdG90eXBlT2ZQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVP
ZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSwgb2Jq
ZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuY3JlYXRlUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUs
IERvbnRFbnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZhdGVO
YW1lKCksIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZXRQcm90b3R5cGVPZlByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0
cnVjdG9yR2V0UHJvdG90eXBlT2YsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5n
ZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Q
cm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CiB9CiAKIEpTRnVuY3Rpb24qIE9iamVjdENvbnN0
cnVjdG9yOjphZGREZWZpbmVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWZsZWN0T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxl
Y3RPYmplY3QuY3BwCmluZGV4IDBhYzMyMGYyZTg4Y2FkZGM5OTVkZGIyZTcwZTJhNjYyYmRiYWRj
MTYuLjE3NTEyMmY1YTAxZjMzYzVmYTI2NmE5NjhkNTNjZjg1NDUyZmVmOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWZsZWN0T2JqZWN0LmgiCiAKKyNp
bmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmgiCkBAIC04NSw4ICs4Niw4IEBAIHZvaWQgUmVmbGVjdE9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5v
d25LZXlzUHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmplY3RPd25LZXlzLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yUHJpdmF0
ZU5hbWUsIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25LZXlzUHJp
dmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdE93bktleXMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JQcml2YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMik7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwCmluZGV4IDQ2OTkxODI0NjhlOTNjOWIzMDVjM2JhNGM0MWQyNDQyNjk0YjBiODAuLmE3
YmE3YzkzMWMzMDhjZTM4NDBiN2RiY2UwY2ZhNTM1NTAyZTQwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMjMsNiArMjMs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgog
CisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5o
IgogI2luY2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMu
aCIKQEAgLTEzNyw4ICsxMzgsOCBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cgogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb25jYXQiLCBzdHJpbmdQcm90b0Z1
bmNDb25jYXQsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiaW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YsIERvbnRFbnVtLCAx
KTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibGFzdEluZGV4
T2YiLCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19O
QVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFj
ZVVzaW5nUmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cElu
dHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUsIHN0cmlu
Z1Byb3RvRnVuY1JlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCwgRG9udEVudW0sIDIpOworICAgIEpT
Q19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSgpLCBz
dHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAsIERvbnRFbnVtLCAyLCBTdHJpbmdQcm90
b3R5cGVSZXBsYWNlUmVnRXhwSW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBsYWNl
VXNpbmdTdHJpbmdTZWFyY2hQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNp
bmdTdHJpbmdTZWFyY2gsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigic2xpY2UiLCBzdHJpbmdQcm90b0Z1bmNTbGljZSwgRG9udEVudW0s
IDIpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHIi
LCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyaW5nIiwgc3RyaW5nUHJvdG9GdW5jU3Vi
c3RyaW5nLCBEb250RW51bSwgMik7CkBAIC0xNzUsNyArMTc2LDcgQEAgdm9pZCBTdHJpbmdQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNTdHIKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9y
bWFsaXplIiwgc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCBEb250RW51bSwgMSk7CiAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aXRl
cmF0b3JTeW1ib2wsIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CiAKLSAg
ICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+Y2hhckNvZGVBdFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29k
ZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9J
TlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNDaGFy
Q29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CiAKICAgICAvLyBUaGUg
Y29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgU3RyaW5nQ29uc3RydWN0b3Ig
aGFzIGJlZW4gYnVpbHQKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
RG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZWRBcnJheUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJy
YXlJbmxpbmVzLmgKaW5kZXggN2FmMWY5ZmI4Njg4NWRjMDE0ZDMxMDEwMGUwMDQwNDkyMTUyNTM0
YS4uZjNmYzMzMzQ2YjM0OTQ5MzZlNTkxMGMxMGNkYThkNmZkMzU2NjVhMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5oCkBAIC0yOSw3
ICsyOSw2IEBACiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXJWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVz
LmgiCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281674</attachid>
            <date>2016-06-20 13:58:11 -0700</date>
            <delta_ts>2016-06-20 15:10:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158893-20160620135804.patch</filename>
            <type>text/plain</type>
            <size>176612</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjFlYTQzZDNhN2Y4ZjllODA0MWJmNWMwYzliMGRkMmIzYzNhNTYyLi40ZTU1NDgyYWFhOWNiNWJh
NDY5OTc0MzY0OTE4NjRhNGIxOTQxMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMjkgQEAKKzIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0ZSBnbG9i
YWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuIEZpcnN0
IGl0IG1vdmVzIGFsbCB0aGUgYnVpbHRpbiBuYW1lcworICAgICAgICBvdXQgb2YgQ29tbW9uSWRl
bnRpZmllcnMgYW5kIGludG8gQnVpbHRpbk5hbWVzLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAg
YWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBCdWlsdGlucyBkb2VzIG5vdCByZXF1aXJlIHJl
YnVpbGRpbmcKKyAgICAgICAgYWxsIG9mIEphdmFTY3JpcHRDb3JlLiBUaGlzIHBhdGNoIGFsc28g
YWRkcyBhIG5ldyBkZWNvcmF0b3IgdG8gb3VyCisgICAgICAgIGJ1aWx0aW5zIEBwcml2YXRlR2xv
YmFsIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCB0aGUgZnVuY3Rpb24KKyAgICAgICAgb24g
dGhlIGdsb2JhbCBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHRoZSBz
YW1lIGFzCisgICAgICAgIHRoZSBwcml2YXRlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIFRoaXMgcGF0Y2gsIGFsc28sIHJlbW92ZXMgdGhlIEpTQXJyYXlJdGVyYXRvci5oLy5jcHAg
ZmlsZXMKKyAgICAgICAgYXMgdGhleSBubyBsb25nZXIgYXBwZWFyIHRvIGJlIHVzZWQgaW4gYW55
IHJlYWwgd2F5LiBGaW5hbGx5LAorICAgICAgICB0aGUgYnVpbHRpbnMgdGVzdHMgaGF2ZSBiZWVu
IHJlYmFzZWxpbmVkLiBJdCBhcHBlYXJzIHRoaXMgaGFzCisgICAgICAgIG5vdCBiZWVuIGRvbmUg
Zm9yIGEgd2hpbGUgc28gdGhlIGV4cGVjdGVkIGZpbGVzIGNvbnRhaW4gb3RoZXIKKyAgICAgICAg
Y2hhbmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2NyaXB0cy9idWls
dGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6CisgICAgICAgIChCdWls
dGluc0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChn
ZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAoZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfZ2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKToKKyAgICAgICAgKiBT
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weToKKyAg
ICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5OgorICAgICAgICAoQnVp
bHRpbkZ1bmN0aW9uLl9faW5pdF9fKToKKyAgICAgICAgKEJ1aWx0aW5GdW5jdGlvbi5mcm9tU3Ry
aW5nKToKKyAgICAgICAgKiBidWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzOgorICAg
ICAgICAqIGJ1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAqIGJ1aWx0aW5zL0J1
aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qczoK
KyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxPYmplY3QuanM6CisgICAgICAgICogYnVpbHRpbnMv
UHJvbWlzZU9wZXJhdGlvbnMuanM6CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBl
LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qczoKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6aW5pdGlhbGl6ZUFycm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZCk6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpleHBlY3RlZEZ1bmN0aW9uRm9ySWRlbnRpZmll
cik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmpl
Y3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWROZXdUYXJnZXRG
cm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6OkJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9u
TGV4aWNhbEVudmlyb25tZW50KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXROZXdUYXJnZXRUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dERlcml2ZWRDb25zdHJ1Y3RvclRvQXJyb3dGdW5j
dGlvbkNvbnRleHRTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
R2VuZXJhdG9yU3RhdGVDaGFuZ2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0SG9tZU9iamVjdEZvckNhbGxlZSk6CisgICAgICAg
IChKU0M6OmVtaXRQdXRIb21lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKToK
KyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJv
cGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6TGV4ZXI8TENoYXI+OjpwYXJzZUlkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpMZXhl
cjxVQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6Cisg
ICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5
cGU+OjpjcmVhdGVHZW5lcmF0b3JQYXJhbWV0ZXJzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlRXhwb3J0RGVjbGFyYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9BcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHA6CisgICAgICAgIChKU0M6OkNvbW1v
bklkZW50aWZpZXJzOjpDb21tb25JZGVudGlmaWVycyk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90
b3R5cGVHZXR0ZXJGb3JtYXQpOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsSW5zdGFuY2VXaXRoV29ya2Fyb3Vu
ZEZvckxlZ2FjeUludGxDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9KU0FycmF5SXRl
cmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmZpbmlz
aENyZWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpraW5k
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBSZW1vdmVk
LgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpKU0FycmF5SXRlcmF0b3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxW
aWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6Cisg
ICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5j
cHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpKU1Byb21pc2U6OnJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VEZWZl
cnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVy
YXRvcjo6aXRlcmF0ZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmNs
b25lKToKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
Ok1hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OlJlZmxlY3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weToKKyAgICAgICAg
KEJ1aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAg
ICAgKGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyk6CisgICAgICAgIChnZW5l
cmF0ZV9zZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8pOgorICAgICAg
ICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHk6CisgICAgICAgIChCdWlsdGlu
RnVuY3Rpb24uX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLmZyb21TdHJpbmcp
OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENv
cmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1T
ZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQ6
CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0
b3ItQ29tYmluZWQuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJl
c3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAg
ICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRp
dGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1
YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFy
YXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogYnVp
bHRpbnMvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9BcnJh
eVByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAg
ICAgKiBidWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanM6CisgICAgICAgICogYnVpbHRpbnMv
R2xvYmFsT2JqZWN0LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpz
OgorICAgICAgICAqIGJ1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWls
dGlucy9TdHJpbmdQcm90b3R5cGUuanM6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5jcHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVBcnJv
d0Z1bmN0aW9uQ29udGV4dFNjb3BlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhp
Y2FsRW52aXJvbm1lbnQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExv
YWREZXJpdmVkQ29uc3RydWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJv
d0Z1bmN0aW9uQ29udGV4dFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlQ2hhbmdl
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpT
Qzo6ZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0UHV0SG9tZU9i
amVjdCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhv
c3Q6OnN1YnR5cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIu
Y3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxMQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAg
ICAgIChKU0M6OkxleGVyPFVDaGFyPjo6cGFyc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
UGFyc2VyPExleGVyVHlwZT46OmNyZWF0ZUdlbmVyYXRvclBhcmFtZXRlcnMpOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNsYXJhdGlvbik6CisgICAgICAg
ICogcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51
bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1l
L0ludGxPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5j
ZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50
aW1lL0pTQXJyYXlJdGVyYXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJ
dGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5
SXRlcmF0b3I6OmtpbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
Oml0ZXJhdGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJh
dG9yLmg6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3Ry
dWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRv
cik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAo
SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlND
OjpKU1N0cmluZ0l0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmdJdGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5n
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5
SW5saW5lcy5oOgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weToKKyAgICAgICAgKEJ1
aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAg
KGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyk6CisgICAgICAgIChnZW5lcmF0
ZV9zZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAq
IFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHk6CisgICAgICAgIChCdWlsdGluRnVu
Y3Rpb24uX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLmZyb21TdHJpbmcpOgor
ICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBh
cmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQ6Cisg
ICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1C
dWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3It
Q29tYmluZWQuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3Vs
dDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAgICog
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlv
bmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6
CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogYnVpbHRp
bnMvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9BcnJheVBy
b3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAg
KiBidWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanM6CisgICAgICAgICogYnVpbHRpbnMvR2xv
YmFsT2JqZWN0LmpzOgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzOgor
ICAgICAgICAqIGJ1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlu
cy9TdHJpbmdQcm90b3R5cGUuanM6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeS5jcHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVBcnJvd0Z1
bmN0aW9uQ29udGV4dFNjb3BlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2Fs
RW52aXJvbm1lbnQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRE
ZXJpdmVkQ29uc3RydWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1
bmN0aW9uQ29udGV4dFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlQ2hhbmdlKToK
KyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6
ZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0UHV0SG9tZU9iamVj
dCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAg
KiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRT
Y3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6
OnN1YnR5cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0
SW50ZXJuYWxQcm9wZXJ0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3Bw
OgorICAgICAgICAoSlNDOjpMZXhlcjxMQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAg
IChKU0M6OkxleGVyPFVDaGFyPjo6cGFyc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBwYXJzZXIv
Tm9kZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFy
c2VyPExleGVyVHlwZT46OmNyZWF0ZUdlbmVyYXRvclBhcmFtZXRlcnMpOgorICAgICAgICAoSlND
OjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNsYXJhdGlvbik6CisgICAgICAgICog
cnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5SXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAgICAgICAg
KEpTQzo6Q29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0lu
dGxPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5jZVdp
dGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1l
L0pTQXJyYXlJdGVyYXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVy
YXRvcjo6ZmluaXNoQ3JlYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRl
cmF0b3I6OmtpbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Oml0
ZXJhdGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJhdG9y
Lmg6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3RydWN0
dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNQcm9taXNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1lL0pT
UHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpK
U1N0cmluZ0l0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJ
dGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5SW5s
aW5lcy5oOgorCiAyMDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1vcmUgdHlwZXMgb2YgSUNz
IGlubGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0MTJjZjhhZWI4ZWUwMzVkNmU1OGI0ZDU5ZDQwOTYyYTBh
ZjQwYTAuLjZkNzFmZGY0ZjEyMTZlYWI4NzEwNzIxNzEwNzFjN2EwMmIxNmFjYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNi0yMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KKworICAgICAgICBJdCBzaG91bGQgYmUgZWFzeSB0byBhZGQgYSBwcml2
YXRlIGdsb2JhbCBoZWxwZXIgZnVuY3Rpb24gZm9yIGJ1aWx0aW5zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSlNDSlNWYWx1ZUlubGluZXMuaCB0byBmaXggYnVpbGQgaXNzdWVzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcDoKKwogMjAxNi0w
Ni0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCBwb3N0LWxhbmRpbmcgcmV2aWV3IGNvbW1lbnQgZnJvbSBEYXJpbiBvbiByMjAyMTg4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDYzNjU2ZDIyN2U1Mzc4Nzc0
Zjk5N2ZhZjQ2ZDFiYWU1OTNjYWM4ZDIuLjIwNzUxZmQ2OWMyZThkY2ZiNTRiNjhjNjViNzVhYjJi
ZTJkZDZhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTY4NSw3ICs2
ODUsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNBcnJheUJ1
ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5j
cHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAotICAgIHJ1bnRpbWUvSlNBcnJh
eUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAogICAgIHJ1bnRp
bWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2FsbGVlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4NDNlOGNlZThjMDM3NjI5NWE5MGM0MjA2MjE0NmZi
Yjk1Li45MWI3YWEzOTk3NDRjMGNkZGY5OGM1OTkxZjI0NWZjM2M1MDVmZTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcxMCw3ICsxNzEwLDcgQEAKIAkJQTc0REVGOTUxODJE
OTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEYxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFw
SXRlcmF0b3IuY3BwICovOyB9OwogCQlBNzRERUY5NjE4MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc0REVGOTAxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzU3MDZERTExOEEyQkNGMDA1
N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0
aG1ldGljMzJfNjQuY3BwICovOyB9OwotCQlBNzVFRTlCMjE4QUFCN0UyMDBBQUQwNDMgLyogQnVp
bHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi87IH07CisJCUE3
NUVFOUIyMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAv
KiBCdWlsdGluTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhE
QjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzY3QjVCNTE3QTBCOTY1MDA2
M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2N0I1QjMxN0EwQjk2NTAwNjNEOTQw
IC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcCAqLzsgfTsKIAkJQTc2N0I1QjYx
N0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY3QjVCNDE3QTBCOTY1
MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLzsgfTsKQEAgLTE3
NjYsOCArMTc2Niw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENv
ZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCREFFQzgxN0Y0RUEx
NDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzIxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9OwogCQlBN0JEQUVDOTE3RjRFQTE0MDBG
NjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8q
IEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNw
cCAqLzsgfTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzUx
N0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovOyB9OwogCQlBN0JGRjNDMDE3
OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYzQkYxNzk4Njg5NDAwMDJGNDYyIC8q
IERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFE
IC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQTE2N0MwOENEMDAxNzAx
MUQgLyogSlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMzk4Niw4ICszOTg0LDYgQEAKIAkJQTdC
NEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBh
dGggPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
eGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJ
CUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8q
IEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7
IH07Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0
cmF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0ZpbHRy
YXRpb25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1Njcmlw
dFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFJl
Zi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFCMTY3QzA4Q0QwMDE3
MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01NzE3LDggKzU3MTMsNiBAQAogCQkJCTBGMkI2NkJBMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Fy
cmF5QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2QkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNjU3Q0Y0NTYxOUJGNjY2MjAwNEFDQkYyIC8q
IEpTQ2FsbGVlLmNwcCAqLywKQEAgLTc2NjAsNyArNzY1NCw2IEBACiAJCQkJMEYyQjY2RTcxN0I2
QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJW
aWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBD
IC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTgwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3RDcwRThBRDRB
OTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RkE5RTky
MTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAt
OTEwNyw3ICs5MTAwLDYgQEAKIAkJCQkwRjJCNjZFNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJh
eUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZFODE3QjZCNUFC
MDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUz
MTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0Jv
dW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUwOEQyMDAwMDVG
MDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVy
YXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQppbmRleCA4OTFiZDNj
YjQyNjBhODkxYWNlNTIzMzdjYTYwN2VjNzU3YjFkMGU0Li42MGVlYmM3NzIyNjM1NWEwYzE0OWQy
ZmE1MDIyNDcxYzAyOWI0NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
Y29tYmluZWRfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
CiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MCw2ICs2MCw3IEBAIGNs
YXNzIEJ1aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgog
ICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2Jq
ZWN0KG9iamVjdCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rp
b25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYu
Z2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisgICAgICAgIHNlY3Rpb25z
LmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9wcml2YXRlX2NvZGVfbmFt
ZV9tYWNybygpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNv
bWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQogICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0
ZShhcmdzKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFk
ZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCkBAIC0xNTAsMyArMTUxLDIy
IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXNDb25z
dHJ1Y3RBYmlsaXR5OyIiIiAlIGZ1bmN0aW9uCiAKICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgi
ICAgIG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKICAgICAgICAgcmV0
dXJuICdcbicuam9pbihsaW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9nbG9i
YWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8oc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAg
ICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21h
Y3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBs
aW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5D
VElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQorICAgICAgICBmdW5j
dGlvbnMgPSBmaWx0ZXIobGFtYmRhIGZ1bmN0aW9uOiBmdW5jdGlvbi5pc19nbG9iYWxfcHJpdmF0
ZSwgc2VsZi5tb2RlbCgpLmFsbF9mdW5jdGlvbnMoKSkKKyAgICAgICAgZnVuY3Rpb25zLnNvcnQo
a2V5PWxhbWJkYSB4OiB4LmZ1bmN0aW9uX25hbWUpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBm
dW5jdGlvbnM6CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAg
ICdmdW5jTmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgJ2Nv
ZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlv
biksCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3Jv
KCUoZnVuY05hbWUpcywgJShjb2RlTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQorCisgICAg
ICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19tb2RlbC5weSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CmluZGV4IDAyMmE5OGIy
YjIxNjE0ZDg0MWFlNWNhNmRiZDUwMTM5NWJhZjcyYzAuLjc3YjJiODg1Y2RjYTIxYTlkZmQzNzJi
MzM1ZjFjOTNkMGY0OWY1NjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CkBAIC00MSw4ICs0MSw5IEBAIF9G
UkFNRVdPUktfQ09ORklHX01BUCA9IHsKIH0KIAogZnVuY3Rpb25IZWFkUmVnRXhwID0gcmUuY29t
cGlsZShyIig/OkBbXHd8PV0rXHMqXG4pKmZ1bmN0aW9uXHMrXHcrXHMqXCguKj9cKSIsIHJlLk1V
TFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGls
ZShyIl5AaW50cmluc2ljPShcdyspXHMqXG4iLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCi1m
dW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXkBjb25zdHJ1Y3RvciIs
IHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uR2xvYmFsUHJpdmF0ZVJlZ0V4cCA9
IHJlLmNvbXBpbGUociIuKl5AZ2xvYmFsUHJpdmF0ZSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFM
TCkKK2Z1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBpbnRyaW5zaWM9
KFx3KykiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCitmdW5jdGlvbklzQ29uc3RydWN0b3JS
ZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUu
RE9UQUxMKQogZnVuY3Rpb25OYW1lUmVnRXhwID0gcmUuY29tcGlsZShyImZ1bmN0aW9uXHMrKFx3
KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKIGZ1bmN0aW9uUGFyYW1ldGVyRmlu
ZGVyID0gcmUuY29tcGlsZShyIl5mdW5jdGlvblxzKyg/Olx3KylccypcKCgoPzpccypcdyspP1xz
Kig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCiAKQEAg
LTk0LDExICs5NSwxMiBAQCBjbGFzcyBCdWlsdGluT2JqZWN0OgogCiAKIGNsYXNzIEJ1aWx0aW5G
dW5jdGlvbjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25f
c291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmluc2ljKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBwYXJhbWV0ZXJz
LCBpc19jb25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZhdGUsIGludHJpbnNpYyk6CiAgICAgICAg
IHNlbGYuZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uX25hbWUKICAgICAgICAgc2VsZi5mdW5jdGlv
bl9zb3VyY2UgPSBmdW5jdGlvbl9zb3VyY2UKLSAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9
IGlzX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBhcmFtZXRlcnMKKyAg
ICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYu
aXNfZ2xvYmFsX3ByaXZhdGUgPSBpc19nbG9iYWxfcHJpdmF0ZQogICAgICAgICBzZWxmLmludHJp
bnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9iamVjdCA9IE5vbmUgICMgU2V0IGJ5IHRo
ZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMTksMTEgKzEyMSwxMiBAQCBjbGFzcyBCdWls
dGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uTmFtZVJlZ0V4
cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAgICAgICAgaXNfY29uc3RydWN0b3IgPSBm
dW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25fc291cmNlKSAhPSBOb25l
CisgICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVuY3Rpb25HbG9iYWxQcml2YXRlUmVnRXhw
Lm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQogICAgICAgICBwYXJhbWV0ZXJzID0gW3Mu
c3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRlckZpbmRlci5maW5kYWxsKGZ1bmN0aW9u
X3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAgaWYgbGVuKHBhcmFtZXRlcnNbMF0pID09
IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAotICAgICAgICByZXR1cm4gQnVpbHRp
bkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwgaXNfY29uc3RydWN0b3Is
IHBhcmFtZXRlcnMsIGludHJpbnNpYykKKyAgICAgICAgcmV0dXJuIEJ1aWx0aW5GdW5jdGlvbihm
dW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2NvbnN0cnVjdG9y
LCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKQogCiAgICAgZGVmIF9fc3RyX18oc2VsZik6
CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUgKHNlbGYuZnVuY3Rpb25fbmFtZSwgJywg
Jy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
LlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNl
LUNvbWJpbmVkLmpzLXJlc3VsdAppbmRleCBkYmQzZTEyY2E0YTE5YzlkZmQ4M2JiODkzNmY1YjAy
YjE0YTg3NGU5Li5hZjM5ODkzMzZmNjU2NDBjZjY5MjU2MTIyOTVhMjM5ODFlOGIwYmJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYw
LDYgKzYwLDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Q
cm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWIKICAgICBtYWNybyhmdWxmaWxsUHJv
bWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFByb21pc2UpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFD
SF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3Vt
ZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVy
YXRvcihKU0M6OlZNJik7CiAKQEAgLTEwNyw0NSArMTA5LDQyIEBAIEpTQ19GT1JFQUNIX0JVSUxU
SU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4
ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNp
Yy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21p
c2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJv
bWlzZUNvZGVMZW5ndGggPSA0MTM7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZVJlamVjdFBy
b21pc2VDb2RlTGVuZ3RoID0gNDEwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVp
bHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7
CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUgPQogICAgICIo
ZnVuY3Rpb24gKHByb21pc2UsIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwi
dXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgcmVhY3Rpb25zID0g
cHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5A
cHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1
bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21p
c2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAg
IEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNv
biwgcmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNl
UmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAogICAgICJ9KVxuIiBcCiA7CiAKIGNv
bnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VD
b2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3Ry
dWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgg
PSA0MTI7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0
aCA9IDQwOTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Qcm9taXNlRnVs
ZmlsbFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIq
IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogICAgICIoZnVuY3Rpb24gKHBy
b21pc2UsIHZhbHVlKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9t
aXNlRnVsZmlsbFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3Vs
dCA9IHZhbHVlO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9u
cyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0
aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0g
QHByb21pc2VGdWxmaWxsZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIEBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25z
KTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJl
YWN0aW9ucywgdmFsdWUpO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE1NCw3ICsxNTMsNyBA
QCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KICNkZWZp
bmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3Vt
ZW50Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9y
KEpTQzo6Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+
Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCkt
PmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVz
KCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxl
cygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2lj
KTsgfQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikK
ICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENv
cmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0
aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMWIxZDVlMWZiYjQzYTNhYWUzMDFk
MDMzOTMzZTE2ZmM1ZmEwM2M4ZC4uMGRmZTRhMzYyOTc5ZmI3Mjk0MjI1ZmE4ODIzYzViMDJiNjdh
M2MyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpz
LXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVz
dWx0CkBAIC0xMDksNDUgKzEwOSw0MiBAQCBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJ
TFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGlu
RXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJv
bWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJp
bGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VSZWplY3RQ
cm9taXNlQ29kZUxlbmd0aCA9IDQxMzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0
UHJvbWlzZUNvZGVMZW5ndGggPSA0MTA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19i
dWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZSA9CiAgICAg
IihmdW5jdGlvbiAocHJvbWlzZSwgcmVhc29uKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAg
XCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMg
PSBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9taXNl
LkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNl
RnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5A
cHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAotICAgICJcbiIgXAogICAgICIg
ICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0ZWQocHJvbWlzZSwgcmVh
c29uLCByZWFjdGlvbnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclByb21p
c2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAog
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlz
ZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25z
dHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0
aCA9IDQxMjsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVu
Z3RoID0gNDA5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpblByb21pc2VG
dWxmaWxsUHJvbWlzZUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hh
ciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSA9CiAgICAgIihmdW5jdGlvbiAo
cHJvbWlzZSwgdmFsdWUpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBzdHJpY3Rc
IjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHBy
b21pc2VGdWxmaWxsUmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVz
dWx0ID0gdmFsdWU7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rp
b25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVh
Y3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlU3RhdGUg
PSBAcHJvbWlzZUZ1bGZpbGxlZDtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlv
bnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMo
cmVhY3Rpb25zLCB2YWx1ZSk7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMTU2LDcgKzE1Myw3
IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogI2Rl
ZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJn
dW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0
b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygp
LT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMo
KS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJs
ZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFi
bGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5z
aWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKERFRklORV9C
VUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
SmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0CmluZGV4
IDJiYjRjYmNlN2E4N2Y4ZmQwMGM5MmY0MWM0MjQ4ZmZiOWQwZjM2OWEuLjBiYTFkMGE1MzUyMTFh
NjI1YjlmODg0ZjVkYTg2NzNjZjgxMzYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0
aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
LnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYxLDYgKzYxLDggQEAgZXh0ZXJuIGNv
bnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNv
bnN0cnVjdEFiaWxpdHkKICAgICBtYWNybyhldmVyeSkgXAogICAgIG1hY3JvKGZvckVhY2gpIFwK
IAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05B
TUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1l
LCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0
YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwOSwxOCArMTExLDE5
IEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQog
CiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNp
bmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6
OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Q
cm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjI7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90
eXBlRXZlcnlDb2RlTGVuZ3RoID0gNzYwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
YnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBj
b25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogICAgICIoZnVuY3Rpb24g
KGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xu
IiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAogICAgICIg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVp
cmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsXCIpO1xuIiBcCiAgICAgIiAgICBcbiIgXApAQCAt
MTI5LDcgKzEzMiw2IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9
CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTtcbiIg
XAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpO1xuIiBcCi0g
ICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIp
XG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlw
ZS5ldmVyeSBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAgICAiICAgIFxu
IiBcCkBAIC0xNDcsMTIgKzE0OSwxMiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVF
dmVyeUNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJv
dG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5
OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENv
ZGVMZW5ndGggPSA2OTQ7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVM
ZW5ndGggPSA2OTI7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvdG90
eXBlRm9yRWFjaENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciog
c19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAgICIoZnVuY3Rpb24gKGNhbGxiYWNr
IClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAg
IlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAogICAgICIgICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVxdWlyZXMgdGhh
dCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBAIC0xNjEsNyAr
MTYzLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAg
ICIgICAgXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7XG4iIFwKICAg
ICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtcbiIgXAotICAgICJc
biIgXAogICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKVxuIiBc
CiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9y
RWFjaCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAgICAiICAgIFxuIiBc
CkBAIC0xNzgsNyArMTc5LDcgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFj
aENvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVO
YW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVp
bHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVO
YW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZh
U2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMzE1
ZTAwZThiOTk4YWNkNzkzYjUyMGE1NGVjNmY5ODk1NDQ3ZGIyYi4uM2NjZTkzYWI4ZWE4NzI1ZGQ3
NjQzOGNmZGJjYjRhNWU5ZGZlODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5w
cm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJv
dG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTExLDE4ICsxMTEsMTkgQEAgSlNDX0ZPUkVB
Q0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFU
T1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRh
YmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5o
IgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0
cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29uc3RydWN0QWJpbGl0eSA9
IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVp
bHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MjsKK2NvbnN0IGludCBzX2J1aWx0aW5Q
cm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5z
aWMgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiAgICAgIihmdW5j
dGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0
XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCiAg
ICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkg
cmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxuIiBc
CkBAIC0xMzEsNyArMTMyLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRXZlcnlD
b2RlID0KICAgICAiICAgIFxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMp
O1xuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rp
b25cIilcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJv
dG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAogICAgICIg
ICAgXG4iIFwKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3Rv
dHlwZUV2ZXJ5Q29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0
aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFi
aWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JF
YWNoQ29kZUxlbmd0aCA9IDY5NDsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNo
Q29kZUxlbmd0aCA9IDY5MjsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Q
cm90b3R5cGVGb3JFYWNoQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBj
aGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoY2Fs
bGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwK
LSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCiAgICAgIiAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJl
cyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAogICAgICIgICAgXG4iIFwKQEAgLTE2
Myw3ICsxNjMsNiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9
CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTtcbiIg
XAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpO1xuIiBcCi0g
ICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIp
XG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlw
ZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAogICAgICIgICAg
XG4iIFwKQEAgLTE4MCw3ICsxNzksNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVG
b3JFYWNoQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwg
ZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSog
Y29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1cm4gdm0uYnVp
bHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1
aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAgcmV0dXJuIHZt
LmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2
bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBzXyMj
Y29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPVE9UWVBFX0JV
SUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rv
ci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29t
YmluZWQuanMtcmVzdWx0CmluZGV4IDAzOTFkZTI4ZDQ1NzY4NjE1NmM2ZDM1MTg5MzlmZWVlYzVk
Y2VhODYuLmRmZTZhM2RjMjYwMGIxYjQ0OGFmNDI0NjM2YTkwMmE0ZGRjNmIzODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
SmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJlc3VsdApAQCAt
NjAsNiArNjAsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRp
bkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RBYmlsaXR5OwogICAgIG1hY3JvKGZyb20pIFwK
ICAgICBtYWNybyhvZikgXAogCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
UFJJVkFURV9HTE9CQUxfTkFNRShtYWNybykgXAorCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9H
RU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogICAgIEpT
Qzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIApA
QCAtMTA3LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJ
TFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNs
dWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlND
ZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVDb25zdHJ1
Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25z
dCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyOTQ7Citjb25zdCBpbnQg
c19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyODY7CitzdGF0aWMgY29uc3QgSlND
OjpJbnRyaW5zaWMgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5v
SW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGUgPQogICAg
ICIoZnVuY3Rpb24gKClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0
aDtcbiIgXAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gdHlwZW9mIHRo
aXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3IEBBcnJheShsZW5ndGgp
O1xuIiBcCiAgICAgIiAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbmd0aDsgKytrKVxuIiBcCiAg
ICAgIiAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1bWVudHNba10pO1xuIiBc
CkBAIC0xMzAsNDkgKzEzMiwzNSBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9m
Q29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1
Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5n
dGggPSAyMDQ2OworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGgg
PSAxOTc5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9y
RnJvbUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWls
dGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoaXRlbXMgKVxuIiBcCiAg
ICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAg
ICAiICAgIHZhciB0aGlzT2JqID0gdGhpcztcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFy
IG1hcEZuID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzQXJnO1xuIiBcCi0gICAgIlxuIiBc
CiAgICAgIiAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkge1xuIiBcCiAgICAgIiAgICAgICAg
aWYgKHR5cGVvZiBtYXBGbiAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCiAgICAgIiAgICAgICAgICAg
IHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyB0aGF0IHRoZSBzZWNv
bmQgYXJndW1lbnQsIHdoZW4gcHJvdmlkZWQsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpXG4iIFwKICAgICAi
ICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTtcbiIgXAogICAgICIgICAgfVxuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoaXRlbXMgPT0gbnVsbClcbiIgXAogICAgICIgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyBhbiBhcnJheS1s
aWtlIG9iamVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiIgXAotICAgICJcbiIgXAog
ICAgICIgICAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gaXRlbXNbQHN5bWJvbEl0ZXJhdG9yXTtcbiIg
XAogICAgICIgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHtcbiIgXAogICAgICIgICAg
ICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAg
ICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMg
dGhhdCB0aGUgcHJvcGVydHkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LCBpdGVtc1tTeW1ib2wuaXRl
cmF0b3JdLCB3aGVuIGV4aXN0cywgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAotICAgICJcbiIgXAot
ICAgICIgICAgICAgIC8vXG4iIFwKICAgICAiICAgICAgICB2YXIgcmVzdWx0ID0gKHR5cGVvZiB0
aGlzT2JqID09PSBcImZ1bmN0aW9uXCIpID8gQE9iamVjdChuZXcgdGhpc09iaigpKSA6IFtdO1xu
IiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgdmFyIGsgPSAwO1xuIiBcCiAgICAgIiAgICAg
ICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRlbXMpO1xuIiBcCi0gICAg
IlxuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAi
ICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHdyYXBwZXIgPSB7XG4iIFwKICAgICAi
ICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7XG4iIFwKICAgICAiICAgICAgICAgICAg
ICAgIHJldHVybiBpdGVyYXRvcjtcbiIgXAogICAgICIgICAgICAgICAgICB9XG4iIFwKICAgICAi
ICAgICAgICB9O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgZm9yICh2YXIgdmFsdWUg
b2Ygd3JhcHBlcikge1xuIiBcCiAgICAgIiAgICAgICAgICAgIGlmIChtYXBGbilcbiIgXAogICAg
ICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdGhpc0FyZyA9PT0g
dW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwodGhpc0FyZywgdmFsdWUs
IGspKTtcbiIgXApAQCAtMTgwLDE3ICsxNjgsMTIgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29u
c3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIiAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3Qo
cmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICAgICAgayArPSAxO1xuIiBcCiAg
ICAgIiAgICAgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgcmVzdWx0Lmxlbmd0
aCA9IGs7XG4iIFwKICAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xuIiBcCiAgICAgIiAgICB9
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1z
KTtcbiIgXAogICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0b0xlbmd0aChhcnJheUxp
a2UubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAg
dmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3Qo
bmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0
aCk7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBrID0gMDtcbiIgXAogICAgICIgICAg
d2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAogICAgICIgICAgICAgIHZhciB2YWx1
ZSA9IGFycmF5TGlrZVtrXTtcbiIgXApAQCAtMjAwLDcgKzE4Myw2IEBAIGNvbnN0IGNoYXIqIHNf
YnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICBAcHV0QnlWYWxE
aXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICBrICs9IDE7XG4iIFwK
ICAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmVzdWx0Lmxlbmd0aCA9IGFy
cmF5TGlrZUxlbmd0aDtcbiIgXAogICAgICIgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAgICJ9
KVxuIiBcCkBAIC0yMTAsNyArMTkyLDcgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0
b3JGcm9tQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwg
ZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSog
Y29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1cm4gdm0uYnVp
bHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1
aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAgcmV0dXJuIHZt
LmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2
bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBzXyMj
Y29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVf
QlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1
bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMtcmVzdWx0Cmlu
ZGV4IDJkMjZlNDkzNDA4MmFlZDYxMjI2NzUzM2EwMWI0NzJmM2U5NTVlNTMuLmVkMTg0NWViOGJj
MjgxOTNhZjVlYzJmZDNmOWE0Yzg1ZmI4ODYwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTA5LDIwICsxMDksMjAgQEAg
SlNDX0ZPUkVBQ0hfQlVJTFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxU
SU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVk
ZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2Vs
bElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3Qg
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlQ29uc3RydWN0
QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3Qg
aW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjk0OworY29uc3QgaW50IHNf
YnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjg2Oworc3RhdGljIGNvbnN0IEpTQzo6
SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlSW50cmluc2ljID0gSlNDOjpOb0lu
dHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlID0KICAgICAi
KGZ1bmN0aW9uICgpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBzdHJpY3RcIjtc
biIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7
XG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IHR5cGVvZiB0aGlz
ID09PSAnZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXkobGVuZ3RoKTtc
biIgXAogICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylcbiIgXAogICAg
ICIgICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTtcbiIgXApA
QCAtMTMyLDQ5ICsxMzIsMzUgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JPZkNv
ZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0
b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5v
dENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3Ro
ID0gMjA0NjsKK2NvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoID0g
MTk3OTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Db25zdHJ1Y3RvckZy
b21Db2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRp
bkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGl0ZW1zIClcbiIgXAogICAg
ICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAg
IiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBt
YXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xu
IiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAotICAgICJcbiIgXAog
ICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAogICAgICIgICAgICAgIGlm
ICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAgICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25k
IGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxuIiBcCiAgICAgIiAg
ICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07XG4iIFwKICAgICAiICAgIH1cbiIgXAot
ICAgICJcbiIgXAogICAgICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwKICAgICAiICAgICAg
ICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlr
ZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAiXG4iIFwKICAg
ICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRvcl07XG4iIFwK
ICAgICAiICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwKICAgICAiICAgICAg
ICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAi
ICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9tIHJlcXVpcmVzIHRo
YXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJh
dG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAiXG4iIFwKLSAg
ICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhp
c09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooKSkgOiBbXTtcbiIg
XAotICAgICJcbiIgXAogICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAogICAgICIgICAgICAg
IHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtcbiIgXAotICAgICJc
biIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAg
ICAgICAgLy9cbiIgXAogICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xuIiBcCiAgICAgIiAg
ICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3JdKCkge1xuIiBcCiAgICAgIiAgICAgICAgICAgICAg
ICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKICAgICAiICAgICAgICAgICAgfVxuIiBcCiAgICAgIiAg
ICAgICAgfTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIGZvciAodmFyIHZhbHVlIG9m
IHdyYXBwZXIpIHtcbiIgXAogICAgICIgICAgICAgICAgICBpZiAobWFwRm4pXG4iIFwKICAgICAi
ICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVu
ZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBr
KSk7XG4iIFwKQEAgLTE4MiwxNyArMTY4LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0
cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJl
c3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgICAgIGsgKz0gMTtcbiIgXAogICAg
ICIgICAgICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIHJlc3VsdC5sZW5ndGgg
PSBrO1xuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAgICIgICAgfVxu
IiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXlMaWtlID0gQE9iamVjdChpdGVtcyk7
XG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9MZW5ndGgoYXJyYXlMaWtl
Lmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZh
ciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09IFwiZnVuY3Rpb25cIikgPyBAT2JqZWN0KG5l
dyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShhcnJheUxpa2VMZW5ndGgp
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgayA9IDA7XG4iIFwKICAgICAiICAgIHdo
aWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgdmFsdWUg
PSBhcnJheUxpa2Vba107XG4iIFwKQEAgLTIwMiw3ICsxODMsNiBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlID0KICAgICAiICAgICAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgayArPSAxO1xuIiBcCiAg
ICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJlc3VsdC5sZW5ndGggPSBhcnJh
eUxpa2VMZW5ndGg7XG4iIFwKICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iIFwKICAgICAifSlc
biIgXApAQCAtMjEyLDcgKzE5Miw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9y
RnJvbUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1
bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNv
ZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5i
dWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0u
YnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2Nv
ZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOQ09OU1RSVUNUT1JfQlVJ
TFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05h
bWVzLUNvbWJpbmVkLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1l
cy1Db21iaW5lZC5qcy1yZXN1bHQKaW5kZXggZDU2OWFjNTI4ZmVkNGM3NGFjNWJiYTc4OTczOWQz
Y2U5ZWNhMjg4OC4uMjcwNzJkMzIwMzg5ODcyMGRiYWY2MjI5NmMyN2NhNDdjYjg4NjA2MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJl
c3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29tYmluZWQuanMt
cmVzdWx0CkBAIC01OSw2ICs1OSw4IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkCiAjZGVmaW5l
IEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3JvKGlz
UmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwK
ICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZN
Jik7CiAKQEAgLTEwNiwyOSArMTA4LDMwIEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgi
CiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFt
ZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50
ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsK
K3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0
IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUg
PQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1
c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5A
cmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25z
dHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1j
b25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29k
ZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJs
ZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNp
YyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmlu
c2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05h
bWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlc
biIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4i
IFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwK
IDsKQEAgLTEzNyw3ICsxNDAsNyBAQCBjb25zdCBjaGFyKiBzX2ludGVybmFsQ2xhc2hpbmdOYW1l
c0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VO
RVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVu
Y3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAot
ICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUo
KS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7
IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRh
YmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNl
KCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQogSlNDX0ZPUkVBQ0hfQlVJ
TFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJk
LVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBh
cmF0ZS5qcy1yZXN1bHQKaW5kZXggNWI2MWQyZjgyMGU5MGIxMTI4OGI5N2Y2YzkyMjcwNGY4MTRi
MDVkZi4uNGUyNTUxNTBiZTM2YmQzMmM0ZTQwNmNjNWQ1Y2VkY2NjYWRmZTM0OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0x
NjIsNiArMTYyLDcgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0
aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
SW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0
dXJlSW5saW5lcy5oPgpAQCAtMTcwLDEyICsxNzEsMTIgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5
Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19hcmJpdHJhcnlDb25k
aXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0g
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19hcmJp
dHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3
MTsKK2NvbnN0IGludCBzX2FyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRJc1JlYWRhYmxlU3RyZWFt
TG9ja2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYXJi
aXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2lj
ID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxH
dWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICAgICAiKGZ1bmN0aW9uIChzdHJlYW0p
XG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICByZXR1cm4gISFzdHJlYW0uQHJlYWRlcjtcbiIgXAogICAgICJ9KVxuIiBc
CiA7CkBAIC0xODUsNyArMTg2LDcgQEAgY29uc3QgY2hhciogc19hcmJpdHJhcnlDb25kaXRpb25h
bEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFi
bGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNsaWVu
dERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5hcmJp
dHJhcnlDb25kaXRpb25hbEd1YXJkQnVpbHRpbnMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5s
aW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9u
YWxHdWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAorICAgIHJldHVybiBjbGll
bnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0
aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRp
bkZ1bmN0aW9ucygpLmFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRCdWlsdGlucygpLmNvZGVOYW1l
IyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBcCiB9CiBXRUJD
T1JFX0ZPUkVBQ0hfQVJCSVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlMVElOX0NPREUoREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1
YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1YjE1NDRjYjU5YWFlMWE3OWVl
NGVjYjJkZWNkN2Q0NjNmZWE0MjNiLi44M2RlYzU3ODg3OTVmMzBlNzk3OTllZDI5YWQ0NTNhOTJl
ZWU0Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTYyLDYg
KzE2Miw3IEBAIGlubGluZSB2b2lkIEd1YXJkZWRCdWlsdGluQnVpbHRpbnNXcmFwcGVyOjpleHBv
cnROYW1lcygpCiAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8
cnVudGltZS9FeGVjdXRhYmxlLmg+CisjaW5jbHVkZSA8cnVudGltZS9JbnRyaW5zaWMuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0NlbGxJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CkBA
IC0xNzAsMTIgKzE3MSwxMiBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkQnVpbHRpbkJ1aWx0aW5zV3Jh
cHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxl
bmd0aCA9IDcxOworY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9j
a2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfZ3VhcmRl
ZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRy
aW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAi
ICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0
cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE4NSw3ICsxODYsNyBAQCBj
b25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQog
SlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0p
IFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1
aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1
dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRC
dWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcCisgICAgcmV0dXJuIGNsaWVu
dERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygp
Lmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNf
IyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX0dVQVJERURCVUlM
VElOX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0
aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFy
YXRlLmpzLXJlc3VsdAppbmRleCA1M2I1NTUyZTJjY2U1NjZjYTg1ZmIyODc1ZWQ1OTVlZjViNWNh
MmRiLi4xYzYxYWFiMGYyYWRiYmQ1YTYxZjE2NGUzNWZmMTU4ZmFjY2MzM2NlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNv
cmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTE5NCw2ICsx
OTQsNyBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbkZ1bmN0aW9u
czo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
U3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjAyLDEyICsyMDMsMTIgQEAgaW5saW5lIHZvaWQgR3Vh
cmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0
b3ImIHZpc2kKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlQ29u
c3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0Owot
Y29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc19ndWFyZGVkSW50ZXJuYWxCdWlsdGluSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJp
bnNpYyBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUlu
dHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRJbnRlcm5h
bEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3Ry
ZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlc
biIgXAogOwpAQCAtMjE3LDcgKzIxOCw3IEBAIGNvbnN0IGNoYXIqIHNfZ3VhcmRlZEludGVybmFs
QnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGll
bnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGll
bnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuZ3Vh
cmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5hbEJ1aWx0
aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0
YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5CdWlsdGlucygpLmNv
ZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS5ndWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCks
IE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNI
X0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVS
QVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
VW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0
aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDdjOTZiOWYxNDVmMWFiYjM3MzllMWUwYWE5ZTFk
Mzg5ODQ4OWRmNDkuLmNlZGY4ZmI0YmVhYWEzM2NmZmMzMWE5YWI1MzcwNzc3MjU1MDNiMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2Vi
Q29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTU2LDYgKzE1Niw3
IEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dyYXBwZXI6OmV4cG9ydE5h
bWVzKCkKIAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxydW50
aW1lL0V4ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0ludHJpbnNpYy5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ2Vs
bElubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4KQEAgLTE2
NCwxMiArMTY1LDEyIEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dyYXBw
ZXI6OmV4cG9ydE5hbWVzKCkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2Rl
TGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc191bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX3Vu
Z3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6
Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIg
XAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmV0
dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMTc5LDcgKzE4
MCw3IEBAIGNvbnN0IGNoYXIqIHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2Nr
ZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpT
Qzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGll
bnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkudW5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29k
ZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9u
cygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAg
ICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnVuZ3VhcmRlZEJ1aWx0aW5C
dWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1
aWx0aW5GdW5jdGlvbnMoKS51bmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291
cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9G
T1JFQUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVS
QVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
eG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2Vw
YXJhdGUuanMtcmVzdWx0CmluZGV4IDcyNmIyODFhOTBmN2FiMjQyZTJkNzMzOWIyYzNhNDk4OTcy
NTlkN2IuLjE1NDRkZmI0NTAyNGM4YmExZmIzMzBiMWE1NzYyNWZhYTM1MDdkYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxD
YXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMjA4LDYgKzIwOCw3IEBAIGlubGluZSB2
b2lkIHhtbENhc2luZ1Rlc3RCdWlsdGluRnVuY3Rpb25zOjp2aXNpdChKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpA
QCAtMjE2LDIzICsyMTcsMjMgQEAgaW5saW5lIHZvaWQgeG1sQ2FzaW5nVGVzdEJ1aWx0aW5GdW5j
dGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX3htbENhc2luZ1Rlc3RYTUxDYXNp
bmdUZXN0Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5v
dENvbnN0cnVjdDsKLWNvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUxl
bmd0aCA9IDcxOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rlc3RDb2RlTGVu
Z3RoID0gNzA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNpbmdUZXN0WE1M
Q2FzaW5nVGVzdENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciog
c194bWxDYXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVh
bSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4i
IFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfeG1sQ2FzaW5nVGVzdENzc0Nh
c2luZ1Rlc3RDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2Rl
TGVuZ3RoID0gNDAyOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2Rl
TGVuZ3RoID0gNDAxOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfeG1sQ2FzaW5nVGVz
dENzc0Nhc2luZ1Rlc3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNo
YXIqIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlID0KICAgICAiKGZ1bmN0aW9uIChz
dHJlYW0sIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRh
YmxlU3RyZWFtQ2xvc2VkKVxuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZSgpO1xuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFt
RXJyb3JlZClcbiIgXApAQCAtMjQ0LDEyICsyNDUsMTIgQEAgY29uc3QgY2hhciogc194bWxDYXNp
bmdUZXN0Q3NzQ2FzaW5nVGVzdENvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlND
OjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc194bWxDYXNp
bmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzg7Citjb25zdCBpbnQgc194bWxDYXNp
bmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzc7CitzdGF0aWMgY29uc3QgSlNDOjpJ
bnRyaW5zaWMgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVJbnRyaW5zaWMgPSBKU0M6
Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENv
ZGUgPQogICAgICIoZnVuY3Rpb24gKG9iamVjdCwga2V5LCBhcmdzKVxuIiBcCiAgICAgIntcbiIg
XAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHRy
eSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgbWV0aG9kID0gb2JqZWN0W2tleV07XG4iIFwKICAg
ICAiICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gXCJ1bmRlZmluZWRcIilcbiIgXApAQCAt
MjY4LDcgKzI2OSw3IEBAIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdFVybENhc2luZ1Rlc3RD
b2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnRE
YXRhLT5idWlsdGluRnVuY3Rpb25zKCkueG1sQ2FzaW5nVGVzdEJ1aWx0aW5zKCkuY29kZU5hbWUj
I0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnht
bENhc2luZ1Rlc3RCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4g
Y2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RCdWlsdGlucygpLmNv
ZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS54bWxDYXNpbmdUZXN0QnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQs
IHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX1hNTENBU0lO
R1RFU1RfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJ
TkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNTY1OTVmNzE0MWU1NWY1
MWYyZTIwMDk1ZDY3ZTU4ZDhhZDk5MjE1Yi4uY2JhZmNiOGFjMzRlZDYwMjU0NWUwNDdlN2RiZjg0
Zjk5ZjliMDc3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Fy
cmF5SXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKQEAgLTQxLDYgKzQxLDcgQEAgZnVuY3Rpb24g
bmV4dCgpCiAgICAgcmV0dXJuIG5leHQuQGNhbGwodGhpcyk7CiB9CiAKK0BnbG9iYWxQcml2YXRl
CiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yVmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmljdCI7
CkBAIC02Myw2ICs2NCw3IEBAIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JWYWx1ZU5leHQoKQogICAg
IHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBh
cnJheUl0ZXJhdG9yS2V5TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODUsNiArODcs
NyBAQCBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiAgICAgcmV0dXJuIHsgZG9uZSwg
dmFsdWUgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JLZXlW
YWx1ZU5leHQoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwppbmRleCAwMzMzYzcxYjk3ZTJiOWM3NGYy
N2NmNmU5YWVlNjgzOGUyMzk0Zjk5Li5iNWQzMjIyYmMyZmI5ZWNjYzBjMmFjMjBiYmE5MzI3YWZi
MDY0ZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQ
cm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJv
dG90eXBlLmpzCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogQGNvbnN0cnVjdG9yCitAZ2xvYmFs
UHJpdmF0ZQogZnVuY3Rpb24gY3JlYXRlQXJyYXlJdGVyYXRvcihpdGVyYXRlZE9iamVjdCwga2lu
ZCwgaXRlcmF0aW9uRnVuY3Rpb24pCiB7CiAgICAgdGhpcy5AaXRlcmF0ZWRPYmplY3QgPSBpdGVy
YXRlZE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaAppbmRleCBiNmY0ZTM4NjdmMmJjZWFiOTZkNjkzODA4Y2I0Njc3ODYyYTE2NDVlLi4wYmJh
MTA2MTU2MzJiYTBkN2RiMWU5Nzc1NGRjMzc4NjFhZjY2YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxMSArMjcsMTM5IEBACiAjZGVm
aW5lIEJ1aWx0aW5OYW1lc19oCiAKICNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKKyNpbmNsdWRl
ICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmll
cnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2Rl
ZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1h
Y3JvKSBcCisgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfRlVOQ1RJT05TX0VBQ0hf
TkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5U
U19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBtYWNybyhpdGVyYXRlZE9iamVjdCkgXAorICAgIG1h
Y3JvKGFycmF5SXRlcmF0b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdGlvbktp
bmQpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKGFycmF5SXRl
cmF0b3JJc0RvbmUpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2luZCkgXAorICAgIG1hY3Jv
KGNoYXJDb2RlQXQpIFwKKyAgICBtYWNybyhpdGVyYXRlZFN0cmluZykgXAorICAgIG1hY3JvKHN0
cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBcCisgICAgbWFjcm8ocHJvbWlzZSkgXAorICAgIG1hY3Jv
KGZ1bGZpbGxtZW50SGFuZGxlcikgXAorICAgIG1hY3JvKHJlamVjdGlvbkhhbmRsZXIpIFwKKyAg
ICBtYWNybyhpbmRleCkgXAorICAgIG1hY3JvKGRlZmVycmVkKSBcCisgICAgbWFjcm8oY291bnRk
b3duSG9sZGVyKSBcCisgICAgbWFjcm8oT2JqZWN0KSBcCisgICAgbWFjcm8ob3duRW51bWVyYWJs
ZVByb3BlcnR5S2V5cykgXAorICAgIG1hY3JvKE51bWJlcikgXAorICAgIG1hY3JvKEFycmF5KSBc
CisgICAgbWFjcm8oU3RyaW5nKSBcCisgICAgbWFjcm8oUmVnRXhwKSBcCisgICAgbWFjcm8oTWFw
KSBcCisgICAgbWFjcm8oUHJvbWlzZSkgXAorICAgIG1hY3JvKFJlZmxlY3QpIFwKKyAgICBtYWNy
byhJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhhYnMpIFwKKyAgICBtYWNybyhmbG9vcikg
XAorICAgIG1hY3JvKHRydW5jKSBcCisgICAgbWFjcm8oaXNGaW5pdGUpIFwKKyAgICBtYWNybyhp
c05hTikgXAorICAgIG1hY3JvKGNyZWF0ZSkgXAorICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBc
CisgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVzKSBcCisgICAgbWFjcm8o
b3duS2V5cykgXAorICAgIG1hY3JvKEVycm9yKSBcCisgICAgbWFjcm8oUmFuZ2VFcnJvcikgXAor
ICAgIG1hY3JvKFR5cGVFcnJvcikgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5ndGgpIFwKKyAg
ICBtYWNybyh0eXBlZEFycmF5U29ydCkgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlHZXRPcmlnaW5h
bENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oQnVpbHRpbkxvZykgXAorICAgIG1hY3JvKGhvbWVP
YmplY3QpIFwKKyAgICBtYWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAorICAgIG1hY3JvKGVucXVl
dWVKb2IpIFwKKyAgICBtYWNybyhoYW5kbGVyKSBcCisgICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBc
CisgICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKKyAgICBtYWNybyhwcm9taXNl
UmVqZWN0UmVhY3Rpb25zKSBcCisgICAgbWFjcm8ocHJvbWlzZVJlc3VsdCkgXAorICAgIG1hY3Jv
KHB1c2gpIFwKKyAgICBtYWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKKyAgICBtYWNybyhjYXBhYmls
aXRpZXMpIFwKKyAgICBtYWNybyhzdGFyRGVmYXVsdCkgXAorICAgIG1hY3JvKEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbikgXAorICAgIG1hY3JvKGdldCkgXAorICAgIG1hY3JvKHNldCkgXAorICAg
IG1hY3JvKHNoaWZ0KSBcCisgICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFycmF5KSBcCisgICAgbWFj
cm8oSW50OEFycmF5KSBcCisgICAgbWFjcm8oSW50MTZBcnJheSkgXAorICAgIG1hY3JvKEludDMy
QXJyYXkpIFwKKyAgICBtYWNybyhVaW50OEFycmF5KSBcCisgICAgbWFjcm8oVWludDhDbGFtcGVk
QXJyYXkpIFwKKyAgICBtYWNybyhVaW50MTZBcnJheSkgXAorICAgIG1hY3JvKFVpbnQzMkFycmF5
KSBcCisgICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBc
CisgICAgbWFjcm8oZXhlYykgXAorICAgIG1hY3JvKGdlbmVyYXRvcikgXAorICAgIG1hY3JvKGdl
bmVyYXRvck5leHQpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkgXAorICAgIG1hY3JvKGdl
bmVyYXRvckZyYW1lKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUpIFwKKyAgICBtYWNybyhn
ZW5lcmF0b3JUaGlzKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1lTW9kZSkgXAorICAgIG1h
Y3JvKENvbGxhdG9yKSBcCisgICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQpIFwKKyAgICBtYWNybyhO
dW1iZXJGb3JtYXQpIFwKKyAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZhbHVlKSBcCisgICAgbWFj
cm8odGhpc1RpbWVWYWx1ZSkgXAorICAgIG1hY3JvKHRoaXNOdW1iZXJWYWx1ZSkgXAorICAgIG1h
Y3JvKG5ld1RhcmdldExvY2FsKSBcCisgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCisg
ICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1
bmN0aW9uKSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikgXAorICAgIG1hY3JvKGlzQXJyYXkpIFwK
KyAgICBtYWNybyhpc0FycmF5Q29uc3RydWN0b3IpIFwKKyAgICBtYWNybyhpc0NvbnN0cnVjdG9y
KSBcCisgICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKKyAgICBtYWNybyhjb25jYXRNZW1jcHkp
IFwKKyAgICBtYWNybyhhcHBlbmRNZW1jcHkpIFwKKyAgICBtYWNybyhwcmVkaWN0RmluYWxMZW5n
dGhGcm9tQXJndW11bnRzKSBcCisgICAgbWFjcm8ocHJpbnQpIFwKKyAgICBtYWNybyhpc1NldCkg
XAorICAgIG1hY3JvKGlzTWFwKSBcCisgICAgbWFjcm8ocmVnRXhwQ3JlYXRlKSBcCisgICAgbWFj
cm8oU2V0SXRlcmF0b3IpIFwKKyAgICBtYWNybyhzZXRJdGVyYXRvck5leHQpIFwKKyAgICBtYWNy
byhyZXBsYWNlVXNpbmdSZWdFeHApIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdTdHJpbmdTZWFy
Y2gpIFwKKyAgICBtYWNybyhNYXBJdGVyYXRvcikgXAorICAgIG1hY3JvKG1hcEl0ZXJhdG9yTmV4
dCkgXAorICAgIG1hY3JvKHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCisgICAgbWFjcm8ocmVnRXhwTWF0
Y2hGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRlcikgXAorICAgIG1hY3Jv
KHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9JZ25vcmVD
YXNlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXIpIFwKKyAg
ICBtYWNybyhyZWdFeHBQcm90b1NvdXJjZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3Rv
U3RpY2t5R2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyKSBcCisg
ICAgbWFjcm8ocmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAorICAgIG1hY3JvKHJlZ0V4
cFJlcGxhY2VGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFzdCkgXAorICAgIG1hY3Jv
KHJlZ0V4cFNwbGl0RmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFRlc3RGYXN0KSBcCisgICAgbWFj
cm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5hbCkgXAorICAgIG1hY3JvKHN0cmluZ1NwbGl0RmFzdCkg
XAorICAgIG1hY3JvKHN0cmluZ1N1YnN0ckludGVybmFsKQorCisKICNkZWZpbmUgSU5JVElBTEla
RV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQo
bV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKICNkZWZpbmUgSU5JVElB
TElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5h
ZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanMKaW5k
ZXggNjk0NjNjMzM2MDJlMjhmN2RkNDI5YWQyMzQ2ZGIxYTdlNWVlZGRlZS4uM2MxNDA2ODdkZmM3
ZTAwZWZlOTFhZTgwYjJhYzY3NmZhOWJmNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3
IEBACiAKIC8vIDI1LjMuMy4zIEdlbmVyYXRvclJlc3VtZSAoIGdlbmVyYXRvciwgdmFsdWUgKQog
Ly8gMjUuMy4zLjQgR2VuZXJhdG9yUmVzdW1lQWJydXB0KGdlbmVyYXRvciwgYWJydXB0Q29tcGxl
dGlvbikKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9y
LCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKaW5kZXggOGJhMzQ5MDhh
ZmE3OWJjMzYyMjJkYzllMTUzZTI4ZjI5MmMyMDkxMC4uNTc3NmEyMjk2YmFhYzhjNTQxMmI0Y2Uz
NWRmNzA4OTgwMzkwYzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
R2xvYmFsT2JqZWN0LmpzCkBAIC0yNiw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9JbnRlZ2VyKHRhcmdldCkKIHsKICAgICAidXNlIHN0cmlj
dCI7CkBAIC0zOCw2ICszOSw3IEBAIGZ1bmN0aW9uIHRvSW50ZWdlcih0YXJnZXQpCiAgICAgcmV0
dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0
b0xlbmd0aCh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDgsNiArNTAsNyBAQCBm
dW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAgICAgcmV0dXJuIGxlbmd0aCA+IDAgPyAobGVuZ3Ro
IDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGggOiBtYXhTYWZlSW50ZWdlcikgOiAwOwogfQogCitA
Z2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC01NywxMSArNjAsMTMgQEAgZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVj
dCkKIAogLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5hbWUgY2hhbmdlZCB0byAi
Z2V0IFtTeW1ib2wuc3BlY2llc10iLgogLy8gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gc3BlY2llc0dl
dHRlcigpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3IpCiB7CiAgICAgdmFy
IGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4IGM0ZTU5YmIwNzkzYjll
MDBhZTdkOWEyNTE1YTNkZDJkMmI0YjEyOGIuLjE5MWRiM2Y2YWNmNTljNjg0YWMzMjZlMjdjM2Uz
ZTkyZDYzYjA3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Q
cm9taXNlT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
UHJvbWlzZU9wZXJhdGlvbnMuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitA
Z2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2UpCiB7CiAgICAgInVzZSBz
dHJpY3QiOwpAQCAtMzIsNiArMzQsNyBAQCBmdW5jdGlvbiBpc1Byb21pc2UocHJvbWlzZSkKICAg
ICByZXR1cm4gQGlzT2JqZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5AcHJvbWlzZVN0YXRlOwog
fQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9uKGNhcGFiaWxp
dHksIGhhbmRsZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDIsNiArNDUsNyBAQCBmdW5j
dGlvbiBuZXdQcm9taXNlUmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxlcikKICAgICB9OwogfQog
CitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHkoY29uc3RydWN0
b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODAsNiArODQsNyBAQCBmdW5jdGlvbiBuZXdQ
cm9taXNlQ2FwYWJpbGl0eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4gcHJvbWlzZUNhcGFiaWxp
dHk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9u
cyhyZWFjdGlvbnMsIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTg4LDYgKzkz
LDcgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCBhcmd1bWVu
dCkKICAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgW3JlYWN0aW9uc1tp
bmRleF0sIGFyZ3VtZW50XSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiByZWplY3RQ
cm9taXNlKHByb21pc2UsIHJlYXNvbikKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xMDMsNiAr
MTA5LDcgQEAgZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCiAgICAgQHRy
aWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsKIH0KIAorQGdsb2JhbFBy
aXZhdGUKIGZ1bmN0aW9uIGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZhbHVlKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKQEAgLTExOCw2ICsxMjUsNyBAQCBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShw
cm9taXNlLCB2YWx1ZSkKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2
YWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVhdGVSZXNvbHZpbmdGdW5j
dGlvbnMocHJvbWlzZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xNjQsNiArMTcyLDcgQEAg
ZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiAgICAgfTsKIH0KIAor
QGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJn
dW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTgwLDYgKzE4OSw3IEBAIGZ1bmN0aW9u
IHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgcmV0dXJuIHByb21p
c2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJlc3VsdCk7CiB9CiAKK0Bn
bG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VU
b1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTE5Myw2
ICsyMDMsNyBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VUb1Jl
c29sdmUsIHRoZW5hYmxlLCB0aGVuKQogICAgIH0KIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0
aW9uIGluaXRpYWxpemVQcm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmlu
ZGV4IDI5NTdmMTRjYjczOTgwZjI0NWY2ZDFjNzQ2ZGFmZjgxMjdlNDkyZGMuLjlkOTQ1YTRjZTM3
MmNiYjNjOWY1MDNmMTJkYmZmMTRlYzFjNTU2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsNiArMjMsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFkdmFuY2VTdHJp
bmdJbmRleChzdHJpbmcsIGluZGV4LCB1bmljb2RlKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24g
aW1wbGVtZW50cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAyMS4yLjUuMi4z
LgpAQCAtNDUsNiArNDYsNyBAQCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBp
bmRleCwgdW5pY29kZSkKICAgICByZXR1cm4gaW5kZXggKyAyOwogfQogCitAZ2xvYmFsUHJpdmF0
ZQogZnVuY3Rpb24gcmVnRXhwRXhlYyhyZWdleHAsIHN0cikKIHsKICAgICAidXNlIHN0cmljdCI7
CkBAIC02MCw2ICs2Miw3IEBAIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBzdHIpCiAgICAg
cmV0dXJuIGJ1aWx0aW5FeGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0KIAorQGdsb2JhbFByaXZh
dGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoKHJlZ2V4
cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50ZXJuYWwg
ZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAsICJleGVj
Iik7CkBAIC0zMjYsNiArMzI5LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAgICByZXR1
cm4gcmVzdWx0LmluZGV4OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaGFzT2JzZXJ2
YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQocmVnZXhwKSB7CiAgICAgLy8gVGhpcyBpcyBh
Y2Nlc3NlZCBieSB0aGUgUmVnRXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlvbi4KICAgICBsZXQgcmVn
ZXhwRXhlYyA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDg5NjUxMGMwNDRl
ZWU4ODUyOTBlNTVhYjA3ZmE5OTkzZmJiZDA2ZWIuLmVmYjg1N2I3M2IwZGQyNmJmNWY2YzdlZWU0
OWI2NzIzMjg2NDI0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiBtYXRjaChyZWdl
eHApCiAgICAgcmV0dXJuIGNyZWF0ZWRSZWdFeHAuQG1hdGNoU3ltYm9sKHRoaXNTdHJpbmcpOwog
fQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBjb3Vu
dCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIHJlcGVh
dFNsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgfQogfQogCi0KK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAi
dXNlIHN0cmljdCI7CkBAIC0yMDIsNiArMjAzLDcgQEAgZnVuY3Rpb24gcGFkRW5kKG1heExlbmd0
aC8qLCBmaWxsU3RyaW5nKi8pCiAgICAgcmV0dXJuIHN0cmluZyArIHRydW5jYXRlZFN0cmluZ0Zp
bGxlcjsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclN0cmluZ1JlcGxhY2UocmVnZXhwLCByZXBsYWNlcikgewogICAgIGlmIChyZXBsYWNl
ciAhPT0gQHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpCiAgICAgICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50
cmluc2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4IDQ5YmZmNDBjYTdhNjcyZGQ1ZDhlZWE4NmJk
ZWU4MGY5OWFjYjQ5OGYuLjE5M2QyODlhYzdkNzQ5MzY3MzA0MTY5ODlhZWNjZjY1NTMzMDI0OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCisKKyNp
bmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVz
LmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2Vu
ZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKQEAgLTM2LDcgKzM4LDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRS
SU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnBy
b3BlcnR5TmFtZXMtPm5hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJkJ5dGVjb2RlSW50cmluc2lj
Tm9kZTo6ZW1pdF9pbnRyaW5zaWNfIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09E
RV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRk
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUjI1ByaXZhdGVOYW1lKCkuaW1w
bCgpLCAmQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY18jI25hbWUpOwogCiBC
eXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2
bSkKICAgICA6IG1fdm0odm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM5OWMyZTg1NGIzNGU4OGEy
OGQ4MmQzMjUxNzU3ZDFhN2M0ZThkYjIuLjkxZjVjNzc0N2FkNjUwYmE1ZmQwM2MyNDlhM2U1ZDUw
YWNhMTlhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC05MTAsMTIgKzkxMCwxMiBAQCB2b2lkIEJ5
dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVl
ZGVkKFN5bWJvbFRhYmxlKgogCiAgICAgICAgIGlmIChtX2NvZGVUeXBlID09IEZ1bmN0aW9uQ29k
ZSAmJiBpc05ld1RhcmdldFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAg
ICBvZmZzZXQgPSBmdW5jdGlvblN5bWJvbFRhYmxlLT50YWtlTmV4dFNjb3BlT2Zmc2V0KCk7Ci0g
ICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBw
cm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZS5pbXBsKCksIFN5bWJvbFRh
YmxlRW50cnkoVmFyT2Zmc2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uU3ltYm9s
VGFibGUtPnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFt
ZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5
KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChp
c0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpE
ZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICAg
ICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJsZS0+dGFrZU5leHRTY29wZU9mZnNldChOb0xv
Y2tpbmdOZWNlc3NhcnkpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5v
TG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZh
dGVOYW1lLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0KSkpOworICAg
ICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJv
cGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1l
KCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAg
IH0KIAogICAgICAgICByZXR1cm47CkBAIC05MzAsMTMgKzkzMCwxMyBAQCB2b2lkIEJ5dGVjb2Rl
R2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKFN5
bWJvbFRhYmxlKgogICAgIH0KICAgICAKICAgICBpZiAobV9jb2RlVHlwZSA9PSBGdW5jdGlvbkNv
ZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewotICAgICAgICBh
dXRvIGFkZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0
TG9jYWxQcml2YXRlTmFtZSk7CisgICAgICAgIGF1dG8gYWRkVGFyZ2V0ID0gZW52aXJvbm1lbnQu
YWRkKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVO
YW1lKCkpOwogICAgICAgICBhZGRUYXJnZXQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQo
KTsKICAgICAgICAgYWRkVGFyZ2V0Lml0ZXJhdG9yLT52YWx1ZS5zZXRJc0xldCgpOwogICAgIH0K
IAogICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3Ry
dWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkg
ewotICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9w
ZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAgICAgICBhdXRv
IGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVp
bHRpbk5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGRl
cml2ZWRDb25zdHJ1Y3Rvci5pdGVyYXRvci0+dmFsdWUuc2V0SXNDYXB0dXJlZCgpOwogICAgICAg
ICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNldElzTGV0KCk7CiAgICAgfQpA
QCAtMjk3Nyw5ICsyOTc3LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRD
YWxsRXZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEMKIAogRXhwZWN0ZWRG
dW5jdGlvbiBCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIo
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3QgfHwgaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5PYmplY3RQcml2YXRlTmFtZSkKKyAgICBpZiAoaWRlbnRpZmllciA9PSBwcm9wZXJ0
eU5hbWVzKCkuT2JqZWN0IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBlY3RPYmplY3RD
b25zdHJ1Y3RvcjsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5B
cnJheSB8fCBpZGVudGlmaWVyID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5h
bWUpCisgICAgaWYgKGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLkFycmF5IHx8IGlkZW50
aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLkFycmF5UHJpdmF0ZU5hbWUo
KSkKICAgICAgICAgcmV0dXJuIEV4cGVjdEFycmF5Q29uc3RydWN0b3I7CiAgICAgcmV0dXJuIE5v
RXhwZWN0ZWRGdW5jdGlvbjsKIH0KQEAgLTQwNDUsNyArNDA0NSw3IEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBU
YWdnZWRUZW1wCiAgICAgfQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGdldFRlbXBsYXRlT2Jq
ZWN0ID0gbnVsbHB0cjsKLSAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVz
KCkuZ2V0VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUgdmFyID0gdmFy
aWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJp
dmF0ZU5hbWUoKSk7CiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gdmFyLmxvY2FsKCkpCiAg
ICAgICAgIGdldFRlbXBsYXRlT2JqZWN0ID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5KCksIGxvY2Fs
KTsKICAgICBlbHNlIHsKQEAgLTQyMzUsMTYgKzQyMzUsMTYgQEAgdm9pZCBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdExvYWRUaGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQog
ICAgIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJv
bUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZhcmlhYmxlIG5ld1Rh
cmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVO
YW1lKTsKKyAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVz
KCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKIAotICAgIHJl
dHVybiBlbWl0R2V0RnJvbVNjb3BlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsIGVtaXRMb2FkQXJyb3dG
dW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQ
cml2YXRlTmFtZSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICByZXR1cm4g
ZW1pdEdldEZyb21TY29wZShtX25ld1RhcmdldFJlZ2lzdGVyLCBlbWl0TG9hZEFycm93RnVuY3Rp
b25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1Rh
cmdldExvY2FsUHJpdmF0ZU5hbWUoKSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsK
ICAgICAKIH0KIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkRGVyaXZl
ZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAg
IFZhcmlhYmxlIHByb3RvU2NvcGVWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZGVyaXZl
ZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOwotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5l
d1RlbXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJv
cGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKSwgcHJvdG9TY29wZVZh
ciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFyID0gdmFyaWFi
bGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZh
dGVOYW1lKCkpOworICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBl
bWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1
aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpLCBwcm90b1Njb3Bl
VmFyLCBUaHJvd0lmTm90Rm91bmQpOwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRv
cjo6ZW5zdXJlVGhpcygpCkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKICAgICBp
ZiAoaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICBBU1NF
UlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAg
ICAgICAgCi0gICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5
TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICAgICAgVmFyaWFibGUgbmV3
VGFyZ2V0VmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1Rh
cmdldExvY2FsUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGVtaXRQdXRUb1Njb3BlKG1fYXJyb3dG
dW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgbmV3VGFyZ2V0VmFyLCBu
ZXdUYXJnZXQoKSwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5p
dGlhbGl6YXRpb24pOwogICAgIH0KIH0KQEAgLTQyOTksNyArNDI5OSw3IEBAIHZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250
ZXh0U2NvcGUoKQogICAgICAgICBpZiAoaXNTdXBlclVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigp
KSB7CiAgICAgICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZp
cm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgVmFyaWFibGUgcHJv
dG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2
YXRlTmFtZSk7CisgICAgICAgICAgICBWYXJpYWJsZSBwcm90b1Njb3BlID0gdmFyaWFibGUocHJv
cGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1l
KCkpOwogICAgICAgICAgICAgZW1pdFB1dFRvU2NvcGUobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExl
eGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyLCBwcm90b1Njb3BlLCAmbV9jYWxsZWVSZWdpc3Rlciwg
RG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24p
OwogICAgICAgICB9CiAgICAgfQpAQCAtNDU2NCw3ICs0NTY0LDcgQEAgUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBU
aHJvd2FibGUKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JTdGF0ZUNoYW5n
ZShpbnQzMl90IHN0YXRlKQogewogICAgIFJlZ2lzdGVySUQqIGNvbXBsZXRlZFN0YXRlID0gZW1p
dExvYWQobnVsbHB0ciwganNOdW1iZXIoc3RhdGUpKTsKLSAgICBlbWl0UHV0QnlJZChnZW5lcmF0
b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwg
Y29tcGxldGVkU3RhdGUpOworICAgIGVtaXRQdXRCeUlkKGdlbmVyYXRvclJlZ2lzdGVyKCksIHBy
b3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCks
IGNvbXBsZXRlZFN0YXRlKTsKIH0KIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVy
YXRvclN0YXRlTGFiZWwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDIzYzAyNmJmMmNjNTliZWFmMWE2NTUwMmE3Zjdk
OWM1ZGZjMThmYjcuLmI2ZDBhMzcyYmI5YjZjYmE1YTI4YjZkYjJmYWFkNjY2MjcwYTZiYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9i
amVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogewogICAgIGlmIChn
ZW5lcmF0b3IuaXNEZXJpdmVkQ2xhc3NDb250ZXh0KCkgfHwgZ2VuZXJhdG9yLmlzRGVyaXZlZENv
bnN0cnVjdG9yQ29udGV4dCgpKSB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGRlcml2ZWRDb25zdHJ1
Y3RvciA9IGdlbmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0
aW9uTGV4aWNhbEVudmlyb25tZW50KCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdl
dEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0b3IsIGdlbmVy
YXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGRlcml2
ZWRDb25zdHJ1Y3RvciwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5o
b21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgfQogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7
CiAgICAgY2FsbGVlLnNldEluZGV4KEpTU3RhY2s6OkNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVy
YXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVy
YXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICByZXR1cm4g
Z2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgJmNhbGxlZSwg
Z2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0
ZU5hbWUoKSk7CiB9CiAKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVl
KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCkBAIC00NTcsNyArNDU3LDcgQEAgUmVnaXN0
ZXJJRCogT2JqZWN0TGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3QKIAogc3RhdGljIGlubGluZSB2b2lkIGVtaXRQdXRIb21lT2JqZWN0
KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGZ1bmN0aW9uLCBSZWdp
c3RlcklEKiBob21lT2JqZWN0KQogewotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlv
biwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUsIGhvbWVP
YmplY3QpOworICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnBy
b3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSwgaG9t
ZU9iamVjdCk7CiB9CiAKIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0zMjgy
LDE0ICszMjgyLDE0IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCiAgICAgICAgIC8vIEJ1dCB0byBtYWtl
IGl0IGVmZmljaWVudCwgd2Ugd2lsbCBpbnRyb2R1Y2UgSlNHZW5lcmF0b3IgY2xhc3MsIGFkZCBv
cGNvZGUgbmV3X2dlbmVyYXRvciBhbmQgdXNlIGl0cyBDKysgZmllbGRzIGluc3RlYWQgb2YgdGhl
c2UgcHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQ
dXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlO
YW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRlTmFtZSwgbmV4dC5nZXQoKSwgUHJvcGVydHlOb2Rl
OjpLbm93bkRpcmVjdCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5l
cmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWls
dGluTmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgbmV4dC5nZXQoKSwgUHJvcGVy
dHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRC
eUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1l
cygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpLCBQ
cm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQ
dXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlO
YW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSgpLCBnZW5lcmF0
b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCiAgICAgICAg
IFJlZ2lzdGVySUQqIGluaXRpYWxTdGF0ZSA9IGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBq
c051bWJlcigwKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0
b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0
b3JTdGF0ZVByaXZhdGVOYW1lLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJl
Y3QpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVy
YXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCku
Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6
S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5l
cmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5l
cmF0b3JGcmFtZVByaXZhdGVOYW1lLCBnZW5lcmF0b3IuZW1pdExvYWQobnVsbHB0ciwganNOdWxs
KCkpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRE
aXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJv
cGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSwg
Z2VuZXJhdG9yLmVtaXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlOb2RlOjpLbm93
bkRpcmVjdCk7CiAKICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0KCkgPj0gbGluZVN0YXJ0T2Zm
c2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsTGVhdmVDYWxsRnJh
bWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGNjYjAxOTY3NGUz
MDAzYmZlZjc0YzMzOGY2YmMwMWMxM2M4ZTIxNWEuLmRmMmM5NjIwMDFiNDc5NzhjMjA3M2VmMDMw
OWIwODM0OWMwMWYxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpJ
VEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIKICNpbmNsdWRlICJKU0xleGlj
YWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVk
ZSAiUmVwYXRjaC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAwZWVmODlhNjQ3NGEwNzNkZmJlMWJm
NDY3MDcxMjVhOTliNGYyOWM2Li40YTdkNTkyNDQ1YTNiYTk4MzM2MGIyMzA4ZWZmMWFiODI0OThj
YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNs
dWRlICJKU0Z1bmN0aW9uLmgiCkBAIC0xNzYsOCArMTc1LDcgQEAgSlNWYWx1ZSBKU0luamVjdGVk
U2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHZhbHVlLmluaGVy
aXRzKEpTV2Vha1NldDo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWtzZXQiKSk7CiAKLSAgICBpZiAodmFsdWUuaW5oZXJp
dHMoSlNBcnJheUl0ZXJhdG9yOjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpT
TWFwSXRlcmF0b3I6OmluZm8oKSkKKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNNYXBJdGVyYXRv
cjo6aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1NldEl0ZXJhdG9yOjppbmZv
KCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU3RyaW5nSXRlcmF0b3I6OmluZm8oKSkK
ICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6aW5mbygp
KSkKQEAgLTMxOSwyOCArMzE3LDYgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0
SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmIChKU0FycmF5SXRlcmF0b3IqIGFycmF5SXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpT
QXJyYXlJdGVyYXRvcio+KHZhbHVlKSkgewotICAgICAgICBTdHJpbmcga2luZDsKLSAgICAgICAg
c3dpdGNoIChhcnJheUl0ZXJhdG9yLT5raW5kKGV4ZWMpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXlJ
dGVyYXRlS2V5OgotICAgICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgia2V5Iik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVWYWx1ZToKLSAgICAgICAg
ICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoInZhbHVlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1ZToKLSAgICAgICAgICAgIGtpbmQgPSBBU0NJ
SUxpdGVyYWwoImtleSt2YWx1ZSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgdW5zaWduZWQgaW5kZXggPSAwOwotICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNvbnN0
cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgMik7Ci0gICAgICAgIGlmIChVTkxJS0VMWSh2
bS5leGNlcHRpb24oKSkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAg
ICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFs
UHJvcGVydHkoZXhlYywgImFycmF5IiwgYXJyYXlJdGVyYXRvci0+aXRlcmF0ZWRWYWx1ZShleGVj
KSkpOwotICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywgY29uc3Ry
dWN0SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0cmluZyhleGVj
LCBraW5kKSkpOwotICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgfQotCiAgICAgaWYgKEpTTWFw
SXRlcmF0b3IqIG1hcEl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU01hcEl0ZXJhdG9yKj4odmFs
dWUpKSB7CiAgICAgICAgIFN0cmluZyBraW5kOwogICAgICAgICBzd2l0Y2ggKG1hcEl0ZXJhdG9y
LT5raW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggZDY3
ZGY5NDc4MTMyMzI5ZDg4NmQ1M2MzNzI4ZGE2Y2VkOTQ2OGQ2NS4uM2M5NTllNGZhYzA1Y2FhOWYy
NWIyYTVjNzc2YzFmNTU0OTY3YWEyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSwgMjAxMS0yMDEzLCAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJv
biBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAx
MCBab2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQogICogIENvcHlyaWdo
dCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQpAQCAtOTM5LDcgKzkz
OSw3IEBAIHRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJ
TkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwCiAgICAgICAgICAgICBpZiAoaXNQcml2YXRl
TmFtZSkKICAgICAgICAgICAgICAgICBpZGVudCA9IG1fdm0tPnByb3BlcnR5TmFtZXMtPmxvb2tV
cFByaXZhdGVOYW1lKCppZGVudCk7CiAgICAgICAgICAgICBlbHNlIGlmICgqaWRlbnQgPT0gbV92
bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCkKLSAgICAgICAgICAgICAgICB0b2tl
bkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZFByaXZhdGVOYW1l
OworICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkudW5kZWZpbmVkUHJpdmF0ZU5hbWUoKTsKICAgICAgICAgICAgIGlm
ICghaWRlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfUFJJVkFURV9OQU1FX0VS
Uk9SVE9LOwogICAgICAgICB9CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCB0ZW1wbGF0ZSA8Ym9vbCBz
aG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPFVD
aGFyPjo6cAogICAgICAgICAgICAgaWYgKGlzUHJpdmF0ZU5hbWUpCiAgICAgICAgICAgICAgICAg
aWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5sb29rVXBQcml2YXRlTmFtZSgqaWRlbnQpOwog
ICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVm
aW5lZEtleXdvcmQpCi0gICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5w
cm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsKKyAgICAgICAgICAgICAgICB0b2tl
bkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnVuZGVm
aW5lZFByaXZhdGVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIWlkZW50KQogICAgICAgICAgICAg
ICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDdkODUxY2VhY2EyZWFhZDk3ZGM2NDFj
MjQxZjRiNWEwYzcyM2FiODQuLmM4MTE2NDA4YjEwYjVmMGNlZjI1ZDU1YjkwMDhiZGQ3OTI5MWQz
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgTm9kZXNfaAogI2RlZmluZSBOb2Rlc19oCiAKKyNpbmNsdWRlICJCdWlsdGluTmFt
ZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRl
ICJPcGNvZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA0
NTc1NzQxN2Y5NWU5NjU2ODBkODFkMDlkOWY4YWEwYjkxMzZhZmQ4Li5iNmM4Nzc5MGYyNTAxY2U3
NDlmYjg0ZGM0OGViYTliMmU3MGRhNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCkBAIC0xODk3LDIzICsxODk3LDIzIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVp
bGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZvcm1hbFBhcmFtZXRlckxpc3QgUGFyc2VyPExl
CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb24gPSB0b2tlblN0YXJ0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEBnZW5lcmF0b3IKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5nZW5lcmF0b3JQcml2YXRlTmFtZSk7Ci0gICAgYXV0byBnZW5lcmF0b3IgPSBjb250ZXh0
LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2Vu
ZXJhdG9yUHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6
OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2YXRlTmFtZSgpKTsKKyAgICBh
dXRvIGdlbmVyYXRvciA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2YXRlTmFtZSgp
LCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRl
bWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2VuZXJhdG9y
LCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JTdGF0ZQotICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1f
dm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUpOwotICAgIGF1dG8g
Z2VuZXJhdG9yU3RhdGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwg
bV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwgcG9zaXRpb24s
IHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAg
IGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdl
bmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3JTdGF0ZSA9IGNv
bnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIHBvc2l0aW9uLCBw
b3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKICAgICBj
b250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0b3JTdGF0ZSwgMCk7CiAK
ICAgICAvLyBAZ2VuZXJhdG9yVmFsdWUKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRv
clZhbHVlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnBy
b3BlcnR5TmFtZXMtPmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlv
biwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJl
UGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JW
YWx1ZVByaXZhdGVOYW1lKCkpOworICAgIGF1dG8gZ2VuZXJhdG9yVmFsdWUgPSBjb250ZXh0LmNy
ZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24s
IEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5h
cHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2VuZXJhdG9yVmFsdWUsIDApOwogCiAgICAgLy8g
QGdlbmVyYXRvclJlc3VtZU1vZGUKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUpOwotICAgIGF1dG8gZ2VuZXJh
dG9yUmVzdW1lTW9kZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUsIHBvc2l0
aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsK
KyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3JS
ZXN1bWVNb2RlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0t
PnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRl
TmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlv
blN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2Vu
ZXJhdG9yUmVzdW1lTW9kZSwgMCk7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKQEAgLTI4NzEs
MTUgKzI4NzEsMTUgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cG9ydERlY2xhcmEKICAgICAgICAgICAgIFRyZWVF
eHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQp
OwogICAgICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNhbm5vdCBwYXJzZSBleHBy
ZXNzaW9uIik7CiAKLSAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0TWFzayBkZWNsYXJhdGlv
blJlc3VsdCA9IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlOYW1lcy0+c3RhckRlZmF1
bHRQcml2YXRlTmFtZSwgRGVjbGFyYXRpb25UeXBlOjpDb25zdERlY2xhcmF0aW9uKTsKKyAgICAg
ICAgICAgIERlY2xhcmF0aW9uUmVzdWx0TWFzayBkZWNsYXJhdGlvblJlc3VsdCA9IGRlY2xhcmVW
YXJpYWJsZSgmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RhckRlZmF1bHRQ
cml2YXRlTmFtZSgpLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFyYXRpb24pOwogICAgICAg
ICAgICAgaWYgKGRlY2xhcmF0aW9uUmVzdWx0ICYgRGVjbGFyYXRpb25SZXN1bHQ6OkludmFsaWRE
dXBsaWNhdGVEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBpbnRlcm5hbEZhaWxXaXRoTWVz
c2FnZShmYWxzZSwgIk9ubHkgb25lICdkZWZhdWx0JyBleHBvcnQgaXMgYWxsb3dlZCIpOwogCi0g
ICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29udGV4dC5jcmVhdGVBc3Np
Z25SZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGFyRGVmYXVsdFByaXZh
dGVOYW1lLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRva2VuRW5kUG9zaXRpb24oKSwgQXNz
aWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpOworICAgICAgICAgICAg
VHJlZUV4cHJlc3Npb24gYXNzaWdubWVudCA9IGNvbnRleHQuY3JlYXRlQXNzaWduUmVzb2x2ZShs
b2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RhckRlZmF1bHRQ
cml2YXRlTmFtZSgpLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRva2VuRW5kUG9zaXRpb24o
KSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAgICAg
ICAgICAgcmVzdWx0ID0gY29udGV4dC5jcmVhdGVFeHByU3RhdGVtZW50KGxvY2F0aW9uLCBhc3Np
Z25tZW50LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAgICAgICAgIGlmICghaXNG
dW5jdGlvbk9yQ2xhc3NEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShh
dXRvU2VtaUNvbG9uKCksICJFeHBlY3RlZCBhICc7JyBmb2xsb3dpbmcgYSB0YXJnZXRlZCBleHBv
cnQgZGVjbGFyYXRpb24iKTsKLSAgICAgICAgICAgIGxvY2FsTmFtZSA9ICZtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5zdGFyRGVmYXVsdFByaXZhdGVOYW1lOworICAgICAgICAgICAgbG9jYWxOYW1lID0g
Jm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0YXJEZWZhdWx0UHJpdmF0ZU5h
bWUoKTsKICAgICAgICAgfQogICAgICAgICBmYWlsSWZGYWxzZShyZXN1bHQsICJDYW5ub3QgcGFy
c2UgdGhlIGRlY2xhcmF0aW9uIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5kZXggMDFiMTAwNGZmMTVh
NzAwYWFhY2NjM2Q5MDcwMWUzMTMwNzBiMjY4NC4uODg5NTdlMWM0N2YyOGRlMjUxMDE0NTJlNmE1
MDZjMzYzNTM0MTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lu
Y2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JP
cGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlND
ZWxsSW5saW5lcy5oIgpAQCAtMzgsNyArMzcsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotCiBj
b25zdCBDbGFzc0luZm8gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAiQXJyYXkg
SXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAmYXJyYXlJdGVyYXRvclByb3RvdHlwZVRhYmxlLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JQcm90b3R5cGUpIH07CiAKIC8qIFNvdXJj
ZSBmb3IgQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCmluZGV4IGI5NzA3
YTE2ZjIxZWU0MGRjYTQwODNhYWFkZWZkZWRhNjg4ZjFiN2YuLmI1MTVjMmJhZGUzOWM3MGViMmI4
NzZjYjMyYWRkNDljMzMxYTJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTMwLDYgKzMwLDEyIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCitlbnVtIEFycmF5SXRlcmF0aW9uS2luZCA6IHVpbnQzMl90IHsK
KyAgICBBcnJheUl0ZXJhdGVLZXksCisgICAgQXJyYXlJdGVyYXRlVmFsdWUsCisgICAgQXJyYXlJ
dGVyYXRlS2V5VmFsdWUKK307CisKIGNsYXNzIEFycmF5SXRlcmF0b3JQcm90b3R5cGUgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKaW5kZXggODFkMjFmOGFjM2JlYjgzOGI4NzM1YTA4YmVhYjcyMjhjYjcyNTc1Zi4u
OGNjNmNhMDYwYWQ1NDcxM2E5YmFlNzlhNTAzYTkzZGM4NmNkYWM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzYsNyArMzYs
NiBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVk
ZSAiSlNBcnJheUlubGluZXMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJK
U1N0cmluZ0J1aWxkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmNwcAppbmRleCA0NzVkZjI1ODY4MzExMDMyMDEwZGFmOTZmNjQ1
YTdkNzY3NmI1NDFjLi45MjY1MjhlMGZlZTk0MjE0NGJjYjg1NDhmNmExZGFkODhkODc0ZmE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcs
IDIwMDksIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNywgMjAwOSwgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMsNyArNDMsNiBAQCBDb21tb25J
ZGVudGlmaWVyczo6Q29tbW9uSWRlbnRpZmllcnMoVk0qIHZtKQogICAgICwgbV9idWlsdGluTmFt
ZXMobmV3IEJ1aWx0aW5OYW1lcyh2bSwgdGhpcykpCiAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVS
U19FQUNIX0tFWVdPUkQoSU5JVElBTElaRV9LRVlXT1JEKQogICAgIEpTQ19DT01NT05fSURFTlRJ
RklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJPUEVSVFlfTkFNRSkKLSAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
WkVfUFJJVkFURV9OQU1FKQogICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNI
X1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfU1lNQk9MKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNWJiMGJh
ZTY5MjUxZDAwM2UzMWI3MmNiM2NiNTQ3YTc4ZTIzNjU3OC4uODVjZWJiZjM4ZjllNTIxYjMwMzhh
NWZjNGFjNDI1ZjFlODA3YmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yMSw3ICsyMSw2IEBACiAjaWZuZGVmIENvbW1v
bklkZW50aWZpZXJzX2gKICNkZWZpbmUgQ29tbW9uSWRlbnRpZmllcnNfaAogCi0jaW5jbHVkZSAi
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtMzI2LDEzMiArMzI1LDYgQEAKICAgICBt
YWNybyh0b1N0cmluZ1RhZykgXAogICAgIG1hY3JvKHVuc2NvcGFibGVzKQogCi0jZGVmaW5lIEpT
Q19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUobWFjcm8pIFwK
LSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19GVU5DVElPTlNfRUFDSF9OQU1FKG1h
Y3JvKSBcCi0gICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RBTlRTX0VBQ0hf
TkFNRShtYWNybykgXAotICAgIG1hY3JvKGl0ZXJhdGVkT2JqZWN0KSBcCi0gICAgbWFjcm8oYXJy
YXlJdGVyYXRvck5leHRJbmRleCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0aW9uS2luZCkgXAot
ICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0KSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvcklz
RG9uZSkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JLaW5kKSBcCi0gICAgbWFjcm8oY2hhckNv
ZGVBdCkgXAotICAgIG1hY3JvKGl0ZXJhdGVkU3RyaW5nKSBcCi0gICAgbWFjcm8oc3RyaW5nSXRl
cmF0b3JOZXh0SW5kZXgpIFwKLSAgICBtYWNybyhwcm9taXNlKSBcCi0gICAgbWFjcm8oZnVsZmls
bG1lbnRIYW5kbGVyKSBcCi0gICAgbWFjcm8ocmVqZWN0aW9uSGFuZGxlcikgXAotICAgIG1hY3Jv
KGluZGV4KSBcCi0gICAgbWFjcm8oZGVmZXJyZWQpIFwKLSAgICBtYWNybyhjb3VudGRvd25Ib2xk
ZXIpIFwKLSAgICBtYWNybyhPYmplY3QpIFwKLSAgICBtYWNybyhvd25FbnVtZXJhYmxlUHJvcGVy
dHlLZXlzKSBcCi0gICAgbWFjcm8oTnVtYmVyKSBcCi0gICAgbWFjcm8oQXJyYXkpIFwKLSAgICBt
YWNybyhTdHJpbmcpIFwKLSAgICBtYWNybyhSZWdFeHApIFwKLSAgICBtYWNybyhNYXApIFwKLSAg
ICBtYWNybyhQcm9taXNlKSBcCi0gICAgbWFjcm8oUmVmbGVjdCkgXAotICAgIG1hY3JvKEludGVy
bmFsUHJvbWlzZSkgXAotICAgIG1hY3JvKGFicykgXAotICAgIG1hY3JvKGZsb29yKSBcCi0gICAg
bWFjcm8odHJ1bmMpIFwKLSAgICBtYWNybyhpc0Zpbml0ZSkgXAotICAgIG1hY3JvKGlzTmFOKSBc
Ci0gICAgbWFjcm8oY3JlYXRlKSBcCi0gICAgbWFjcm8oZGVmaW5lUHJvcGVydHkpIFwKLSAgICBt
YWNybyhnZXRQcm90b3R5cGVPZikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5RGVzY3JpcHRv
cikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKLSAgICBtYWNybyhvd25LZXlz
KSBcCi0gICAgbWFjcm8oRXJyb3IpIFwKLSAgICBtYWNybyhSYW5nZUVycm9yKSBcCi0gICAgbWFj
cm8oVHlwZUVycm9yKSBcCi0gICAgbWFjcm8odHlwZWRBcnJheUxlbmd0aCkgXAotICAgIG1hY3Jv
KHR5cGVkQXJyYXlTb3J0KSBcCi0gICAgbWFjcm8odHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3Ry
dWN0b3IpIFwKLSAgICBtYWNybyhCdWlsdGluTG9nKSBcCi0gICAgbWFjcm8oaG9tZU9iamVjdCkg
XAotICAgIG1hY3JvKGdldFRlbXBsYXRlT2JqZWN0KSBcCi0gICAgbWFjcm8oZW5xdWV1ZUpvYikg
XAotICAgIG1hY3JvKGhhbmRsZXIpIFwKLSAgICBtYWNybyhwcm9taXNlU3RhdGUpIFwKLSAgICBt
YWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9ucykgXAotICAgIG1hY3JvKHByb21pc2VSZWplY3RS
ZWFjdGlvbnMpIFwKLSAgICBtYWNybyhwcm9taXNlUmVzdWx0KSBcCi0gICAgbWFjcm8ocHVzaCkg
XAotICAgIG1hY3JvKHJlcGVhdENoYXJhY3RlcikgXAotICAgIG1hY3JvKGNhcGFiaWxpdGllcykg
XAotICAgIG1hY3JvKHN0YXJEZWZhdWx0KSBcCi0gICAgbWFjcm8oSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uKSBcCi0gICAgbWFjcm8oZ2V0KSBcCi0gICAgbWFjcm8oc2V0KSBcCi0gICAgbWFjcm8o
c2hpZnQpIFwKLSAgICBtYWNybyhhbGxvY2F0ZVR5cGVkQXJyYXkpIFwKLSAgICBtYWNybyhJbnQ4
QXJyYXkpIFwKLSAgICBtYWNybyhJbnQxNkFycmF5KSBcCi0gICAgbWFjcm8oSW50MzJBcnJheSkg
XAotICAgIG1hY3JvKFVpbnQ4QXJyYXkpIFwKLSAgICBtYWNybyhVaW50OENsYW1wZWRBcnJheSkg
XAotICAgIG1hY3JvKFVpbnQxNkFycmF5KSBcCi0gICAgbWFjcm8oVWludDMyQXJyYXkpIFwKLSAg
ICBtYWNybyhGbG9hdDMyQXJyYXkpIFwKLSAgICBtYWNybyhGbG9hdDY0QXJyYXkpIFwKLSAgICBt
YWNybyhleGVjKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9y
TmV4dCkgXAotICAgIG1hY3JvKGdlbmVyYXRvclN0YXRlKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9y
RnJhbWUpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JWYWx1ZSkgXAotICAgIG1hY3JvKGdlbmVyYXRv
clRoaXMpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JSZXN1bWVNb2RlKSBcCi0gICAgbWFjcm8oQ29s
bGF0b3IpIFwKLSAgICBtYWNybyhEYXRlVGltZUZvcm1hdCkgXAotICAgIG1hY3JvKE51bWJlckZv
cm1hdCkgXAotICAgIG1hY3JvKGludGxTdWJzdGl0dXRlVmFsdWUpIFwKLSAgICBtYWNybyh0aGlz
VGltZVZhbHVlKSBcCi0gICAgbWFjcm8odGhpc051bWJlclZhbHVlKSBcCi0gICAgbWFjcm8obmV3
VGFyZ2V0TG9jYWwpIFwKLSAgICBtYWNybyhkZXJpdmVkQ29uc3RydWN0b3IpIFwKLSAgICBtYWNy
byhpc0JvdW5kRnVuY3Rpb24pIFwKLSAgICBtYWNybyhoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24p
IFwKLSAgICBtYWNybyhpbnN0YW5jZU9mKSBcCi0gICAgbWFjcm8oaXNBcnJheSkgXAotICAgIG1h
Y3JvKGlzQXJyYXlDb25zdHJ1Y3RvcikgXAotICAgIG1hY3JvKGlzQ29uc3RydWN0b3IpIFwKLSAg
ICBtYWNybyhpc1JlZ0V4cE9iamVjdCkgXAotICAgIG1hY3JvKGNvbmNhdE1lbWNweSkgXAotICAg
IG1hY3JvKGFwcGVuZE1lbWNweSkgXAotICAgIG1hY3JvKHByZWRpY3RGaW5hbExlbmd0aEZyb21B
cmd1bXVudHMpIFwKLSAgICBtYWNybyhwcmludCkgXAotICAgIG1hY3JvKGlzU2V0KSBcCi0gICAg
bWFjcm8oaXNNYXApIFwKLSAgICBtYWNybyhyZWdFeHBDcmVhdGUpIFwKLSAgICBtYWNybyhTZXRJ
dGVyYXRvcikgXAotICAgIG1hY3JvKHNldEl0ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKHJlcGxh
Y2VVc2luZ1JlZ0V4cCkgXAotICAgIG1hY3JvKHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCkgXAot
ICAgIG1hY3JvKE1hcEl0ZXJhdG9yKSBcCi0gICAgbWFjcm8obWFwSXRlcmF0b3JOZXh0KSBcCi0g
ICAgbWFjcm8ocmVnRXhwQnVpbHRpbkV4ZWMpIFwKLSAgICBtYWNybyhyZWdFeHBNYXRjaEZhc3Qp
IFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0ZsYWdzR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhw
UHJvdG9HbG9iYWxHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0
ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b011bHRpbGluZUdldHRlcikgXAotICAgIG1hY3Jv
KHJlZ0V4cFByb3RvU291cmNlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9TdGlja3lH
ZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXIpIFwKLSAgICBtYWNy
byhyZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlKSBcCi0gICAgbWFjcm8ocmVnRXhwUmVwbGFj
ZUZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBTZWFyY2hGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhw
U3BsaXRGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwVGVzdEZhc3QpIFwKLSAgICBtYWNybyhzdHJp
bmdJbmNsdWRlc0ludGVybmFsKSBcCi0gICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAg
bWFjcm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKLQogbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAg
ICAgY2xhc3MgQnVpbHRpbk5hbWVzOwpAQCAtNDg0LDEwICszNTcsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSlND
X0lERU5USUZJRVJfREVDTEFSRV9QUk9QRVJUWV9OQU1FX0dMT0JBTCkKICN1bmRlZiBKU0NfSURF
TlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMCiAKLSNkZWZpbmUgSlNDX0lERU5U
SUZJRVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKG5hbWUpIGNvbnN0IElk
ZW50aWZpZXIgbmFtZSMjUHJpdmF0ZU5hbWU7Ci0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklW
QVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKQotI3VuZGVmIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVf
UFJJVkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTAotCiAjZGVmaW5lIEpTQ19JREVOVElGSUVSX0RF
Q0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRp
ZmllciBuYW1lIyNTeW1ib2w7CiAgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVS
U19FQUNIX1dFTExfS05PV05fU1lNQk9MKEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9X
RUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwpCiAjdW5kZWYgSlNDX0lERU5USUZJRVJfREVDTEFSRV9Q
UklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggZTU0NDMxMGZiMjNkZTJlMjk2
ODlmZDc2ZWU3Zjc5NzZkMjQ0MTcyMi4uYTZlY2ZkMjg0YjEwMWMzYWMwMDFmNjgyZjg4OGRlZDE5
NzY3ODQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwCkBAIC0yNSw3ICsyNSw5IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKKwogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3Iu
aCIKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNp
bmNsdWRlICJDbG9uZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgiCkBA
IC03MTcsNyArNzE5LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3NhdmUpCiAgICAgQkVH
SU4oKTsKICAgICBKU1ZhbHVlIGdlbmVyYXRvciA9IE9QKDEpLmpzVmFsdWUoKTsKICAgICBHZW5l
cmF0b3JGcmFtZSogZnJhbWUgPSBudWxscHRyOwotICAgIEpTVmFsdWUgdmFsdWUgPSBnZW5lcmF0
b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVO
YW1lKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2VuZXJhdG9yLmdldChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSgpKTsK
ICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0
b3JGcmFtZSo+KHZhbHVlKTsKICAgICBlbHNlIHsKQEAgLTcyNSw3ICs3MjcsNyBAQCBTTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfc2F2ZSkKICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogICAgICAgICBmcmFtZSA9IEdlbmVyYXRvckZyYW1l
OjpjcmVhdGUoZXhlYy0+dm0oKSwgIGV4ZWMtPmNvZGVCbG9jaygpLT5udW1DYWxsZWVMb2NhbHMo
KSk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGdlbmVyYXRvciwgdHJ1ZSwgUHV0UHJv
cGVydHlTbG90OjpQdXRCeUlkKTsKLSAgICAgICAgYXNPYmplY3QoZ2VuZXJhdG9yKS0+bWV0aG9k
VGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0b3IpLCBleGVjLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSwgZnJhbWUsIHNsb3QpOwor
ICAgICAgICBhc09iamVjdChnZW5lcmF0b3IpLT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+cHV0
KGFzT2JqZWN0KGdlbmVyYXRvciksIGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCksIGZyYW1lLCBzbG90KTsKICAgICB9
CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0luZGV4ID0gcGNbMl0udS51bnNpZ25lZFZh
bHVlOwogICAgIGZyYW1lLT5zYXZlKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5saXZlQ2FsbGVl
TG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxzSW5kZXgpKTsKQEAgLTczNiw3ICs3MzgsNyBA
QCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzdW1lKQogewogICAgIEJFR0lOKCk7CiAgICAg
SlNWYWx1ZSBnZW5lcmF0b3IgPSBPUCgxKS5qc1ZhbHVlKCk7Ci0gICAgR2VuZXJhdG9yRnJhbWUq
IGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJhdG9yLmdldChleGVjLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSkpOworICAgIEdlbmVy
YXRvckZyYW1lKiBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0b3JGcmFtZSo+KGdlbmVyYXRvci5nZXQo
ZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1l
UHJpdmF0ZU5hbWUoKSkpOwogICAgIHVuc2lnbmVkIGxpdmVDYWxsZWVMb2NhbHNJbmRleCA9IHBj
WzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+cmVzdW1lKGV4ZWMsIGV4ZWMtPmNvZGVC
bG9jaygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxzSW5kZXgpKTsK
ICAgICBFTkQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDQ4Mzg5Y2QzYjI1NGI4YTM5ZWMxMDUxODUxYTljYzU0
ZWI3OWNjZTkuLjNhODA1MDBmOGZkZTFjNGY3NTBlODcwYjljMGEyNjgxMDhiZTc4YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5X
YWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCBlMWRkM2U0NGRmNGE0ZTEyOWQw
MWI4ZGM5OTllODY2OWY5MjY2OTE4Li5kZTUwOWY1MzljMjEwZDE2OGE3NDEyMWViZWI5YzQ0MjFm
NzUwZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAi
RGF0ZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRsRGF0
ZVRpbWVGb3JtYXQuaCIKQEAgLTExNiw3ICsxMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChFeGVjU3RhdGUq
CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGgg
RUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghZHRmKQotICAgICAgICBk
dGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUo
KS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSkpOworICAgICAgICBkdGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGlt
ZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgp
KSk7CiAKICAgICAvLyAyLiBSZXR1cm5JZkFicnVwdChkdGYpLgogICAgIGlmICghZHRmKQpAQCAt
MTUzLDcgKzE1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjCiAgICAgLy8gRklYTUU6IFdv
cmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwv
YXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzY3OQogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCi0gICAgICAgIGRhdGVUaW1l
Rm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhpc1Zh
bHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0
ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgZGF0ZVRpbWVGb3JtYXQgPSBqc0R5bmFtaWND
YXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0
YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIWRhdGVUaW1lRm9ybWF0KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwo
IkludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBjYWxsZWQgb24g
dmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBEYXRlVGltZUZvcm1h
dCIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDBhNWQ1NjMxNmQ1NmFiNWEwODVlNjQ4
NWI1MTE3ODY3ZjlmOTc4N2EuLmZlMmM5ZGJmNmZkOTQyYmNhMWI1YTA1NDc2ODUyNWJhYjc2YTI5
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKHRoZXRhbGVjcmFmdGVyQGdtYWlsLmNvbSkK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI5LDcgQEAKIAogI2lmIEVO
QUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJyb3Iu
aCIKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0
aW9uLmgiCkBAIC0xMDUsNyArMTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4ZWNTdGF0ZSogc3QKICAgICAv
LyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01BLTQw
MiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFuZikKLSAgICAgICAgbmYgPSBqc0R5
bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRl
LCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5h
bWUpKTsKKyAgICAgICAgbmYgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0
ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYg
KCFuZikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0
ZSwgQVNDSUlMaXRlcmFsKCJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0IGNhbGxl
ZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIE51bWJlckZv
cm1hdCIpKSk7CkBAIC0xNDEsNyArMTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjU3QKICAg
ICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01B
LTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFudW1iZXJGb3JtYXQpCi0gICAg
ICAgIG51bWJlckZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRl
LT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxT
dWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSkpOworICAgICAgICBudW1iZXJGb3JtYXQgPSBqc0R5
bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRl
LCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0
ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFudW1iZXJGb3JtYXQpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJh
bCgiSW50bC5OdW1iZXJGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBjYWxsZWQgb24g
dmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBOdW1iZXJGb3JtYXQi
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxp
bmVzLmgKaW5kZXggMTI5ZDk4NTUzOGY1Yjg4MmMwMGNkOWRjZjAzNDczYjA3YmVjNjRjOC4uZTNi
ZmYzODc3YjA4ZjFkOTY5YzczMWVmNGIxMzI3ZGZlNjQ5NGJhOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx5dXN1a2Uuc3V6dWtp
QHNzbGFiLmljcy5rZWlvLmFjLmpwPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFt
ZXMuaCIKICNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIApA
QCAtNDksNyArNTEsNyBAQCBKU1ZhbHVlIGNvbnN0cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJv
dW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSYgcwogICAgICAgICAgICAgaWYg
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogCi0gICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSwgaW5zdGFuY2UpOworICAgICAg
ICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSwgaW5zdGFuY2UpOwogICAg
ICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3Q7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxMDViODdmOGJiOGIyM2IwZTJiMTZmMzk5NWEwMTNlNzU2
ZWFkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKLSNpbmNsdWRlICJKU0NlbGxJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCi0jaW5jbHVkZSAiU3Ry
dWN0dXJlSW5saW5lcy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpT
QXJyYXlJdGVyYXRvcjo6c19pbmZvID0geyAiQXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQXJyYXlJdGVyYXRvcikgfTsKLQotdm9pZCBKU0Fy
cmF5SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBBcnJh
eUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KQotewotICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0K
LSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkT2JqZWN0UHJpdmF0
ZU5hbWUsIGl0ZXJhdGVkT2JqZWN0KTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwganNOdW1iZXIoMCkpOwotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YXJyYXlJdGVyYXRpb25LaW5kUHJpdmF0
ZU5hbWUsIGpzTnVtYmVyKGtpbmQpKTsKLX0KLQotQXJyYXlJdGVyYXRpb25LaW5kIEpTQXJyYXlJ
dGVyYXRvcjo6a2luZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgSlNWYWx1ZSBraW5k
VmFsdWUgPSBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5h
cnJheUl0ZXJhdGlvbktpbmRQcml2YXRlTmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEFy
cmF5SXRlcmF0aW9uS2luZD4oa2luZFZhbHVlLmFzSW50MzIoKSk7Ci19Ci0KLUpTVmFsdWUgSlNB
cnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAg
ICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+
aXRlcmF0ZWRPYmplY3RQcml2YXRlTmFtZSk7Ci19Ci0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDE2NmJkMmU1MzUyYmEyMTU5MzY0MjcxZWNhYmJhZjgwZTE1MzYzZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
Zm5kZWYgSlNBcnJheUl0ZXJhdG9yX2gKLSNkZWZpbmUgSlNBcnJheUl0ZXJhdG9yX2gKLQotI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1lbnVtIEFycmF5SXRlcmF0
aW9uS2luZCA6IHVpbnQzMl90IHsKLSAgICBBcnJheUl0ZXJhdGVLZXksCi0gICAgQXJyYXlJdGVy
YXRlVmFsdWUsCi0gICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUKLX07Ci0KLWNsYXNzIEpTQXJyYXlJ
dGVyYXRvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAgICB0eXBlZGVm
IEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIERFQ0xBUkVfRVhQT1JUX0lORk87Ci0KLSAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgSlNBcnJheUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVj
dCkKLSAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgICAgIEpTQXJyYXlJ
dGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU0FycmF5SXRl
cmF0b3I+KHZtLmhlYXApKSBKU0FycmF5SXRlcmF0b3Iodm0sIHN0cnVjdHVyZSk7Ci0gICAgICAg
IGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSwg
a2luZCwgaXRlcmF0ZWRPYmplY3QpOwotICAgICAgICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfQot
Ci0gICAgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgSlNW
YWx1ZSBpdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgIEpTQXJyYXlJdGVyYXRv
ciogY2xvbmUoRXhlY1N0YXRlKik7Ci0KLSAgICB1c2luZyBKU05vbkZpbmFsT2JqZWN0OjphcnJh
eVN0b3JhZ2VPck51bGw7Ci1wcml2YXRlOgotICAgIEpTQXJyYXlJdGVyYXRvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
QXJyYXlJdGVyYXRpb25LaW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpOwotfTsKLQotfQot
Ci0jZW5kaWYgLy8gIWRlZmluZWQoSlNBcnJheUl0ZXJhdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCA2ZWIwODkyMTM3ZmQ4MzE0MmJk
NjBlODExYzQ1MjgwZDUwNzBjZTAxLi5jY2MzYjA1ZDc3OWUwODY5ZDRiOTcwMmZiY2M5OWRkOGI4
YjMzYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVz
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcklubGluZXNfaAogI2RlZmluZSBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9ySW5saW5lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJv
ci5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXIuaCIKQEAgLTUyLDcgKzUzLDcgQEAgdm9pZCBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG8KICAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+QllURVNfUEVS
X0VMRU1FTlQsIGpzTnVtYmVyKFZpZXdDbGFzczo6ZWxlbWVudFNpemUpLCBEb250RW51bSB8IFJl
YWRPbmx5IHwgRG9udERlbGV0ZSk7CiAKICAgICBpZiAocHJpdmF0ZUFsbG9jYXRvcikKLSAgICAg
ICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPmFsbG9jYXRlVHlwZWRBcnJheVByaXZhdGVOYW1lLCBwcml2YXRlQWxsb2NhdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgICAgIHB1dERpcmVjdEJ1aWx0
aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFtZSgpLCBwcml2YXRlQWxsb2NhdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFZpZXdDbGFzcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9u
cy5oCmluZGV4IDRmM2I4ZWM3YjQ5MTI0MjVlMDQyMzYxMTRiZTMyZTZmNjQ4YWE0OTAuLjBiMDIz
ZDgyZDljYTY0MjZkOWI3ZjA4NWY0ZDgyYThlMjRjN2NhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVu
Y3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpT
QXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgog
I2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNDBhOTJmYzVhMTFkY2Q0NGFlYTI5MzRhNTM0
YmU4OTgyNGM4OTY1YS4uYWIwMTljYTg3YzJjMjFiYTA1NjdmZjQyZmQzNWU3YzBjZGFiMjY5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRl
ICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJv
dG90eXBlLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNCb3Vu
ZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5oIgpAQCAtNDI2LDcgKzQyNSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6
OmluaXQoVk0mIHZtKQogICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoSlMgIyMgdHlwZSAj
IyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAjIyB0eXBl
ICMjIEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWws
IGluaXQuZ2xvYmFsLT5tX3R5cGVkQXJyYXlQcm90by5nZXQoaW5pdC5nbG9iYWwpKSkpOyBcCiAg
ICAgICAgICAgICBpbml0LnNldFN0cnVjdHVyZShKUyAjIyB0eXBlICMjIEFycmF5OjpjcmVhdGVT
dHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQucHJvdG90eXBlKSk7IFwKICAgICAg
ICAgICAgIGluaXQuc2V0Q29uc3RydWN0b3IoSlMgIyMgdHlwZSAjIyBBcnJheUNvbnN0cnVjdG9y
OjpjcmVhdGUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIEpTICMjIHR5cGUgIyMgQXJyYXlDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0Lmdsb2JhbC0+
bV90eXBlZEFycmF5U3VwZXJDb25zdHJ1Y3Rvci5nZXQoaW5pdC5nbG9iYWwpKSwgaW5pdC5wcm90
b3R5cGUsIEFTQ0lJTGl0ZXJhbCgjdHlwZSAiQXJyYXkiKSwgdHlwZWRBcnJheUNvbnN0cnVjdG9y
QWxsb2NhdGUgIyMgdHlwZSAjIyBBcnJheUNvZGVHZW5lcmF0b3IoaW5pdC52bSkpKTsgXAotICAg
ICAgICAgICAgaW5pdC5nbG9iYWwtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGluaXQudm0s
IGluaXQudm0ucHJvcGVydHlOYW1lcy0+dHlwZSAjIyBBcnJheVByaXZhdGVOYW1lLCBpbml0LmNv
bnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbihpbml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSgpLCBpbml0LmNvbnN0cnVjdG9yLCBE
b250RW51bSk7IFwKICAgICAgICAgfSk7CiAgICAgRk9SX0VBQ0hfVFlQRURfQVJSQVlfVFlQRV9F
WENMVURJTkdfREFUQV9WSUVXKElOSVRfVFlQRURfQVJSQVlfTEFURVIpCiAjdW5kZWYgSU5JVF9U
WVBFRF9BUlJBWV9MQVRFUgpAQCAtNjE5LDggKzYxOCw4IEBAIG1fICMjIGxvd2VyTmFtZSAjIyBQ
cm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5jCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PlJhbmdlRXJyb3IsIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSk7CiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlR5cGVF
cnJvciwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwogCi0gICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPk9iamVjdFByaXZh
dGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5BcnJheVByaXZhdGVOYW1lLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCksIG9iamVjdENv
bnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LkFycmF5UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpOwogCiAjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZ
UEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05h
bWUpIFwKIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4g
anNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXApAQCAtNjUzLDgg
KzY1Miw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNUcnVuYyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG1h
dGhQcm90b0Z1bmNUcnVuYywgVHJ1bmNJbnRyaW5zaWMpOwogCiAgICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIGdldFRlbXBsYXRlT2JqZWN0KTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRl
RnVuY1RvTGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9i
YWxPYmplY3RUb0xlbmd0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0aW9u
KiBwcml2YXRlRnVuY1RvSW50ZWdlciA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgZ2xvYmFsT2JqZWN0VG9JbnRlZ2VyQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5n
dGgpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdpbmFsQ29u
c3RydWN0b3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBl
ZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKQEAgLTY2
OCwxMyArNjY1LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBw
cml2YXRlRnVuY0FwcGVuZE1lbWNweSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwg
U3RyaW5nKCksIGFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweSk7CiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgYXJyYXlQcm90b3R5cGVDb25jYXRTbG93UGF0aENvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKTsKIAotICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gQXJy
YXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkp
KTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0b3IgPSBKU0Z1
bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBlQ3JlYXRlQXJy
YXlJdGVyYXRvckNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIHByaXZh
dGVGdW5jQ3JlYXRlQXJyYXlJdGVyYXRvci0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIGFycmF5SXRlcmF0b3JQcm90b3R5cGUpOwotICAgIEpTRnVuY3Rpb24qIHBy
aXZhdGVGdW5jQXJyYXlJdGVyYXRvclZhbHVlTmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JWYWx1ZU5l
eHRDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNB
cnJheUl0ZXJhdG9yS2V5TmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlOZXh0Q29kZUdlbmVyYXRv
cih2bSksIHRoaXMpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvcktl
eVZhbHVlTmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJyYXlJ
dGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHRDb2RlR2VuZXJhdG9yKHZt
KSwgdGhpcyk7Ci0KICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVjdCA9
IGdldEdldHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCksIHZtLnByb3BlcnR5
TmFtZXMtPmZsYWdzKTsKICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmpl
Y3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5nbG9iYWwpOwogICAgIG1fcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIuc2V0KHZt
LCB0aGlzLCByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCk7CkBAIC02ODksNzAgKzY3OSw2
MSBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpz
TmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTT2JqZWN0KiByZWdFeHBTeW1ib2xS
ZXBsYWNlID0gYXNPYmplY3QobV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cmVwbGFjZVN5bWJvbCkuYXNDZWxsKCkpOwogICAgIG1fcmVnRXhwUHJvdG9T
eW1ib2xSZXBsYWNlLnNldCh2bSwgdGhpcywgcmVnRXhwU3ltYm9sUmVwbGFjZSk7CiAKKyNkZWZp
bmUgQ1JFQVRFX1BSSVZBVEVfR0xPQkFMX0ZVTkNUSU9OKG5hbWUsIGNvZGUpIEpTRnVuY3Rpb24q
IG5hbWUgIyMgUHJpdmF0ZUZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCBjb2RlICMjIENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKKyAgICBKU0NfRk9SRUFD
SF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoQ1JFQVRFX1BSSVZBVEVfR0xP
QkFMX0ZVTkNUSU9OKQorI3VuZGVmIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTgorCisg
ICAgSlNPYmplY3QqIGFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlOjpjcmVhdGUodm0sIHRoaXMsIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV9pdGVyYXRvclByb3RvdHlwZS5nZXQoKSkpOworICAgIGNyZWF0ZUFy
cmF5SXRlcmF0b3JQcml2YXRlRnVuY3Rpb24tPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKKworCiAgICAgR2xvYmFsUHJv
cGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKKyNkZWZpbmUgSU5JVF9QUklWQVRFX0dMT0JB
TChuYW1lLCBjb2RlKSBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkubmFtZSAjIyBQcml2YXRlTmFtZSgpLCBuYW1lICMjIFByaXZhdGVGdW5jdGlvbiwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBKU0NfRk9SRUFDSF9C
VUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoSU5JVF9QUklWQVRFX0dMT0JBTCkK
KyN1bmRlZiBJTklUX1BSSVZBVEVfR0xPQkFMCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPklu
ZmluaXR5LCBqc051bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1VuZGVmaW5lZCgp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5vd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzUHJpdmF0
ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG93bkVudW1l
cmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5nZXRUZW1wbGF0ZU9i
amVjdFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2JqZWN0LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5FcnJvclByaXZhdGVOYW1lLCBtX2Vycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPlJhbmdlRXJyb3JQcml2YXRlTmFtZSwgbV9yYW5nZUVycm9yQ29uc3RydWN0
b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlR5cGVFcnJvclByaXZhdGVOYW1lLCBt
X3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBl
ZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3JQcml2
YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvciwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheVNvcnRQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1
bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNCb3VuZEZ1bmN0aW9u
UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNI
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmluc3RhbmNl
T2ZQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0aW5Mb2csIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBudW1iZXJDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+UmVnRXhwUHJpdmF0ZU5hbWUsIG1fcmVnRXhwQ29uc3RydWN0b3IuZ2V0KCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlN0cmluZ1ByaXZhdGVOYW1lLCBzdHJpbmdDb25zdHJ1
Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YWJzUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5j
QWJzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5mbG9vclByaXZhdGVOYW1lLCBwcml2YXRlRnVu
Y0Zsb29yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50cnVuY1ByaXZhdGVOYW1lLCBwcml2YXRl
RnVuY1RydW5jLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0Zpbml0ZVByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY0lzRmluaXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc05hTlByaXZhdGVO
YW1lLCBwcml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5Qcm9taXNlUHJp
dmF0ZU5hbWUsIHByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+UmVm
bGVjdFByaXZhdGVOYW1lLCByZWZsZWN0T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5J
bnRlcm5hbFByb21pc2VQcml2YXRlTmFtZSwgaW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLQotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVwZWF0Q2hhcmFjdGVyUHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1JlcGVh
dENoYXJhY3RlciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGVh
dFNsb3dQYXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9u
KHZtLCBzdHJpbmdQcm90b3R5cGVSZXBlYXRTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlz
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0Q2hhcmFjdGVy
c1Nsb3dQYXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9u
KHZtLCBzdHJpbmdQcm90b3R5cGVSZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGhDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLQotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNTZXRQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJc1Nl
dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlNldEl0ZXJhdG9yUHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0
b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zZXRJdGVyYXRvck5leHRQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJ
dGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc01hcFByaXZhdGVOYW1lLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzTWFw
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheVByaXZhdGVOYW1lLCBhcnJheUNvbnN0
cnVjdG9yLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXkpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5Q29uc3RydWN0b3JQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1
bmNJc0FycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmNvbmNhdE1lbWNw
eVByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0NvbmNhdE1lbWNweSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YXBwZW5kTWVtY3B5UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jQXBwZW5kTWVtY3B5LCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25FbnVtZXJhYmxlUHJvcGVy
dHlLZXlzUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1
bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZW5xdWV1ZUpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5FcnJvclByaXZhdGVOYW1lKCksIG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmFuZ2VFcnJvclByaXZhdGVOYW1l
KCksIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5UeXBlRXJyb3JQcml2YXRlTmFtZSgpLCBtX3R5cGVFcnJvckNvbnN0
cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBl
ZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBlZEFycmF5R2V0T3JpZ2lu
YWxDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdp
bmFsQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnR5
cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNCb3VuZEZ1bmN0aW9uUHJpdmF0
ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lKCks
IHByaXZhdGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pbnN0YW5jZU9mUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJ
bnN0YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5CdWlsdGlu
TG9nUHJpdmF0ZU5hbWUoKSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuTnVtYmVyUHJpdmF0ZU5hbWUoKSwgbnVtYmVyQ29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJlZ0V4cFByaXZhdGVOYW1lKCksIG1f
cmVnRXhwQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLlN0cmluZ1ByaXZhdGVOYW1lKCksIHN0cmluZ0NvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hYnNQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y0FicywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmxvb3JQcml2YXRl
TmFtZSgpLCBwcml2YXRlRnVuY0Zsb29yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS50cnVuY1ByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHJ1bmMsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzRmluaXRlUHJpdmF0ZU5hbWUoKSwgcHJpdmF0
ZUZ1bmNJc0Zpbml0ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNO
YU5Qcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5Qcm9taXNlUHJpdmF0ZU5hbWUoKSwgcHJvbWlzZUNvbnN0cnVjdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SZWZsZWN0UHJpdmF0ZU5h
bWUoKSwgcmVmbGVjdE9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuSW50ZXJuYWxQcm9taXNlUHJpdmF0ZU5hbWUoKSwgaW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKworICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0Q2hhcmFj
dGVyUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmco
KSwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuaXNTZXRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzU2V0KSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuU2V0SXRlcmF0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJhdG9y
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0SXRlcmF0b3JOZXh0
UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
cHJpdmF0ZUZ1bmNTZXRJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5pc01hcFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jSXNNYXApLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5pc0FycmF5UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3Rvci0+
Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5KSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheUNvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwg
cHJpdmF0ZUZ1bmNJc0FycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmNvbmNhdE1lbWNweVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQ29uY2F0
TWVtY3B5LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcHBlbmRNZW1j
cHlQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FwcGVuZE1lbWNweSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29uY2F0U2xvd1BhdGhQcml2YXRlTmFtZSgpLCBwcml2
YXRlRnVuY0NvbmNhdFNsb3dQYXRoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5NYXBJdGVyYXRv
clByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBw
cml2YXRlRnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+bWFwSXRlcmF0
b3JOZXh0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5n
KCksIHByaXZhdGVGdW5jTWFwSXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvclZhbHVlTmV4dFByaXZhdGVOYW1lKCksIHByaXZh
dGVGdW5jQXJyYXlJdGVyYXRvclZhbHVlTmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcktleU5leHRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y0FycmF5SXRlcmF0b3JLZXlOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5hcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNB
cnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5jcmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNDcmVh
dGVBcnJheUl0ZXJhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnRvTGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUb0xlbmd0aCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9JbnRlZ2VyUHJpdmF0ZU5hbWUoKSwgcHJpdmF0
ZUZ1bmNUb0ludGVnZXIsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlz
RGljdGlvbmFyeVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgZ2xvYmFsT2JqZWN0SXNEaWN0aW9uYXJ5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1Byb21pc2VQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRp
b25zSXNQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5uZXdQcm9taXNlUmVhY3Rpb25Qcml2YXRlTmFtZSgpLCBKU0Z1
bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zTmV3UHJv
bWlzZVJlYWN0aW9uQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5uZXdQcm9taXNlQ2FwYWJpbGl0eVByaXZhdGVOYW1lKCksIG1f
bmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkudHJpZ2dlclByb21pc2VSZWFjdGlvbnNQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zVHJp
Z2dlclByb21pc2VSZWFjdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByb21pc2VQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zUmVq
ZWN0UHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZnVsZmlsbFByb21pc2VQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zRnVsZmlsbFByb21p
c2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNDcmVhdGVSZXNv
bHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZWFjdGlvbkpvYlByaXZhdGVOYW1lKCksIEpT
RnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNQcm9t
aXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRp
b25zUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTWFwSXRlcmF0b3JQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVu
Y01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubWFw
SXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAw
LCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkluc3BlY3Rvckluc3RydW1lbnRhdGlvblByaXZhdGVO
YW1lKCksIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
bV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TWFwUHJp
dmF0ZU5hbWUsIG1hcENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVC
dWlsdGluRnVuY3Rpb24odm0sIGdlbmVyYXRvclByb3RvdHlwZUdlbmVyYXRvclJlc3VtZUNvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuTWFwUHJpdmF0ZU5hbWUoKSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnRoaXNUaW1lVmFsdWVQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y1RoaXNUaW1lVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRo
aXNOdW1iZXJWYWx1ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVGhpc051bWJlclZhbHVlLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjaWYgRU5BQkxFKElOVEwpCkBAIC03
NjEsMzYgKzc0MiwzMCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTnVtYmVyRm9ybWF0
UHJpdmF0ZU5hbWUoKSwgaW50bC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5OdW1i
ZXJGb3JtYXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjZW5kaWYgLy8g
RU5BQkxFKElOVEwpCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVjdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9iamVjdCwgSXNSZWdF
eHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5zcGVjaWVzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFNwZWNpZXNDb25zdHJ1Y3RvckNvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXND
b25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwg
U3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNSZWdFeHBPYmplY3RQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9i
amVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PnJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9GbGFnc0dldHRl
ck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJQ
cml2YXRlTmFtZSwgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPnJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQ
cm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4
cFByb3RvTXVsdGlsaW5lR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0
dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1NvdXJjZUdldHRl
clByaXZhdGVOYW1lLCByZWdFeHBQcm90b1NvdXJjZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+cmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJv
dG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3Rv
VW5pY29kZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3Qs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvRmxhZ3NH
ZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0ZsYWdzR2V0dGVyT2JqZWN0LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0dsb2JhbEdldHRlclBy
aXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJQcml2
YXRlTmFtZSgpLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyUHJp
dmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU291cmNlR2V0dGVyUHJpdmF0
ZU5hbWUoKSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyUHJpdmF0ZU5hbWUo
KSwgcmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVOYW1lKCksIHJl
Z0V4cFByb3RvVW5pY29kZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAogCiAgICAgICAgIC8vIFJlZ0V4cC5wcm90b3R5cGUgaGVscGVycy4KLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cEJ1aWx0aW5FeGVjUHJp
dmF0ZU5hbWUsIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdF
eHBDcmVhdGVQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJp
bmcoKSwgZXNTcGVjUmVnRXhwQ3JlYXRlLCBOb0ludHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1h
dGNoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBy
ZWdFeHBQcm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBNYXRjaENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4cFByb3RvdHlwZUhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hZHZhbmNlU3RyaW5nSW5k
ZXhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJl
Z0V4cFByb3RvdHlwZUFkdmFuY2VTdHJpbmdJbmRleENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwRXhlY1ByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90
eXBlUmVnRXhwRXhlY0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+cmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNwbGl0RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTcGxpdEZh
c3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNl
UHJpdmF0ZU5hbWUsIG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnJlcGxhY2VTeW1ib2wpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBUZXN0
RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygp
LCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCwgUmVnRXhwVGVzdEZhc3RJbnRyaW5zaWMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBCdWlsdGluRXhlY1ByaXZh
dGVOYW1lKCksIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDIsIFN0cmluZygpLCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5vSW50cmluc2ljKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwTWF0Y2hGYXN0UHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVn
RXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBTcGxpdEZhc3RQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90
b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0ZU5hbWUoKSwgbV9yZWdFeHBQcm90b3R5
cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5bWJvbCksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFRlc3RGYXN0UHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJv
dG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFN0cmluZy5wcm90b3R5cGUgaGVscGVy
cy4KLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0cmluZ1Byb3RvdHlw
ZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VDb2RlR2VuZXJhdG9yKHZt
KSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1ZGVzSW50ZXJuYWxQ
cml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgYnVp
bHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zdHJp
bmdTcGxpdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBT
dHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+c3RyaW5nU3Vic3RySW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSW5jbHVkZXNJbnRlcm5hbFBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIGJ1
aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuc3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3Vic3RySW50ZXJuYWxQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBi
dWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCiAgICAgfTsKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9B
UlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCmluZGV4IGEzMjQwNTUwYzAz
YTcxMTkwYTkyMDBkOGI2ZmY1NzQ0ZmU5ZGNjNTIuLmFiYTc1YWEyNTgzYzRjM2U1ZDMwZjkzYmYy
YWE2MDRhNjc5NTg2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCBmZWZkZWNkZjAz
YjY0ZTZkZjNiNDEwMGQ2MWI2YTQ0N2NmYWYyZDhiLi44YTI3ZDkxZTc1NTY5OThhNzI3OWVmODNm
ZTY2MDhkNDM0YmMwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAtNDYsNyArNDYsNyBA
QCBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKUwogCiAgICAgSlNWYWx1ZSBkZWZlcnJlZCA9IG5ld1By
b21pc2VDYXBhYmlsaXR5KGV4ZWMsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5h
bFByb21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVk
LmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJpdmF0ZU5hbWUpOworICAgIEpT
VmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgQVNTRVJUKHByb21pc2UuaW5o
ZXJpdHMoSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9
IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNv
bHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhl
Yywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAppbmRleCA1NmUy
ZjVhZWY5MjAxMzkwMmZiMmY3MTZjNzJkYjQ1NmZiYjYwMWM2Li4wMjAyZTE3OWNmNDczYzg3NzUz
NDE2ZGFlZWU0YTc1ODJkZGFkZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJKU1Byb21pc2UuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUg
IkVycm9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0Nl
bGxJbmxpbmVzLmgiCkBAIC01OCwxMCArNTksMTAgQEAgSlNQcm9taXNlOjpKU1Byb21pc2UoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgSlNQcm9taXNlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUsIGpzTnVtYmVy
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBlbmRpbmcpKSk7Ci0gICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1l
LCBqc1VuZGVmaW5lZCgpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b21pc2VSZWplY3RSZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQoKSk7Ci0gICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUsIGpz
VW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkucHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFN0YXR1czo6UGVuZGluZykpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VGdWxmaWxsUmVhY3Rpb25zUHJpdmF0ZU5h
bWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVqZWN0UmVhY3Rpb25zUHJpdmF0ZU5hbWUoKSwganNV
bmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CiB9CiAK
IHZvaWQgSlNQcm9taXNlOjppbml0aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGVjdXRvcikKQEAgLTc4LDE0ICs3OSwxNCBAQCB2
b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogCiBhdXRvIEpTUHJvbWlzZTo6c3RhdHVzKFZNJiB2bSkg
Y29uc3QgLT4gU3RhdHVzCiB7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGdldERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUpOworICAgIEpTVmFsdWUgdmFs
dWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VTdGF0ZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VSVCh2YWx1ZS5pc1VJbnQzMigpKTsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RhdHVzPih2YWx1ZS5hc1VJbnQzMigpKTsKIH0KIAogSlNW
YWx1ZSBKU1Byb21pc2U6OnJlc3VsdChWTSYgdm0pIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlc3VsdFByaXZhdGVOYW1lKTsKKyAg
ICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5w
cm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3Bw
CmluZGV4IDBhYWQzNzA3MTYxZDQ0YTVkNWFiMDgyY2Y1ZjMyMjc1YmIwOTcyOTIuLjY1ZDcyMzg3
NmEwN2NiNDE2MWNiNTljZTYyNGRiYWYyYWQwYjYzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDcgKzU5LDcgQEAg
SlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFsdWUgZGVmZXJyZWQgPSBuZXdQcm9t
aXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+cHJvbWlzZUNv
bnN0cnVjdG9yKCkpOwogCi0gICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMs
IHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7CisgICAgSlNWYWx1ZSBwcm9t
aXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQocHJvbWlzZS5pbmhlcml0cyhKU1By
b21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVj
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7
CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCmluZGV4IGM2ZmVkZTdh
ZGFmMTAwNWUxNmMxYjc0NGMyMjdlMDZlNjNkZmNiYzQuLjdiZmQ4YTlhNDdiMTVlNjg3Y2U5YzZh
NzM3YjRmYmJjYWU5MGY2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5O
YW1lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDZWxs
SW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKQEAgLTM4LDIzICs0MCwy
MyBAQCB2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lLCBpdGVyYXRlZFN0cmlu
Zyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVyYXRvck5l
eHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigwKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lKCks
IGl0ZXJhdGVkU3RyaW5nKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSwganNOdW1i
ZXIoMCkpOwogfQogCiBKU1ZhbHVlIEpTU3RyaW5nSXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBnZXREaXJlY3QoZXhlYy0+dm0oKSwg
ZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lKTsKKyAg
ICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsKIH0KIAogSlNTdHJp
bmdJdGVyYXRvciogSlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSlNWYWx1ZSBpdGVyYXRlZFN0cmluZyA9IGdl
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSk7
Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUpOworICAgIEpTVmFsdWUgaXRlcmF0
ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
Lml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUoKSk7CisgICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBn
ZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJh
dG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSk7CiAKICAgICBhdXRvIGNsb25lID0gSlNTdHJpbmdJ
dGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+c3Ry
aW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNTdHJpbmcoaXRlcmF0ZWRTdHJpbmcpKTsKLSAgICBj
bG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVyYXRvck5leHRJ
bmRleFByaXZhdGVOYW1lLCBuZXh0SW5kZXgpOworICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJp
dmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKICAgICByZXR1cm4gY2xvbmU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4IDRiNjMwYzJk
N2M5Y2QzNGFmYzZkZGE2ZmQ2ZjQyYzI0M2RjN2FhZGEuLmE3ZjUxMGJhYjQ1ZmExMmI3YTY3ZWMz
ZmZkZGY1MDM0Y2VmNTUxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwUHJvdG90eXBlLmNwcApAQCAtNzgsOCArNzgsOCBAQCB2b2lkIE1hcFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSwgbWFwUHJvdG9GdW5jVmFsdWVzLCBEb250
RW51bSwgMCk7CiAKICAgICAvLyBQcml2YXRlIGdldCAvIHNldCBvcGVyYXRpb25zLgotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdl
dFByaXZhdGVOYW1lLCBtYXBQcm90b0Z1bmNHZXQsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zZXRQcml2
YXRlTmFtZSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51bSwgMik7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZ2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51bSwgMSk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuc2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51
bSwgMik7CiAKICAgICBKU0Z1bmN0aW9uKiBlbnRyaWVzID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIDAsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJp
ZXNQdWJsaWNOYW1lKCkuc3RyaW5nKCksIG1hcFByb3RvRnVuY0VudHJpZXMpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5lbnRyaWVzUHVibGljTmFtZSgpLCBlbnRyaWVzLCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMDhk
YTFkYmZhZDIyM2Y1OTVkNTNkOTIxNWYxOTZjMTNhNTJmMTkzZS4uM2MyOTNmYmI2NjRmNTY2MDQ4
ZmI4OGNjMzVkZjY3MmViOWEwM2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAKKyNpbmNsdWRl
ICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKQEAgLTk5LDEwICsx
MDAsMTAgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmoKICAgICAvLyBuby4gb2YgYXJndW1lbnRz
IGZvciBjb25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwg
RG9udERlbGV0ZSk7CiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5jcmVhdGVQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JD
cmVhdGUsIERvbnRFbnVtLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lLCBvYmpl
Y3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCBEb250RW51bSwgMyk7Ci0gICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0UHJvdG90
eXBlT2ZQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgRG9udEVu
dW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmdldE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3Ry
dWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuY3JlYXRlUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIERvbnRFbnVt
LCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lKCksIG9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5nZXRQcm90b3R5cGVPZlByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yR2V0
UHJvdG90eXBlT2YsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9w
ZXJ0eU5hbWVzUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5h
bWVzLCBEb250RW51bSwgMSk7CiB9CiAKIEpTRnVuY3Rpb24qIE9iamVjdENvbnN0cnVjdG9yOjph
ZGREZWZpbmVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3Qu
Y3BwCmluZGV4IDBhYzMyMGYyZTg4Y2FkZGM5OTVkZGIyZTcwZTJhNjYyYmRiYWRjMTYuLjE3NTEy
MmY1YTAxZjMzYzVmYTI2NmE5NjhkNTNjZjg1NDUyZmVmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWZsZWN0T2JqZWN0LmgiCiAKKyNpbmNsdWRlICJC
dWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgi
CkBAIC04NSw4ICs4Niw4IEBAIHZvaWQgUmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5vd25LZXlzUHJp
dmF0ZU5hbWUsIHJlZmxlY3RPYmplY3RPd25LZXlzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yUHJpdmF0ZU5hbWUsIHJl
ZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25LZXlzUHJpdmF0ZU5hbWUo
KSwgcmVmbGVjdE9iamVjdE93bktleXMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JQcml2YXRl
TmFtZSgpLCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSwgMik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmlu
ZGV4IDQ2OTkxODI0NjhlOTNjOWIzMDVjM2JhNGM0MWQyNDQyNjk0YjBiODAuLmE3YmE3YzkzMWMz
MDhjZTM4NDBiN2RiY2UwY2ZhNTM1NTAyZTQwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgogCisjaW5jbHVk
ZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1
ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKQEAgLTEz
Nyw4ICsxMzgsOCBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cgogICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb25jYXQiLCBzdHJpbmdQcm90b0Z1bmNDb25jYXQs
IERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiaW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YsIERvbnRFbnVtLCAxKTsKICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibGFzdEluZGV4T2YiLCBzdHJp
bmdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfSU5U
UklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5yZXBs
YWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVn
RXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cEludHJpbnNpYyk7
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUsIHN0cmluZ1Byb3RvRnVu
Y1JlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCwgRG9udEVudW0sIDIpOworICAgIEpTQ19OQVRJVkVf
SU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90
b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAsIERvbnRFbnVtLCAyLCBTdHJpbmdQcm90b3R5cGVSZXBs
YWNlUmVnRXhwSW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBsYWNlVXNpbmdTdHJp
bmdTZWFyY2hQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdT
ZWFyY2gsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigic2xpY2UiLCBzdHJpbmdQcm90b0Z1bmNTbGljZSwgRG9udEVudW0sIDIpOwogICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHIiLCBzdHJpbmdQ
cm90b0Z1bmNTdWJzdHIsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigic3Vic3RyaW5nIiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nLCBE
b250RW51bSwgMik7CkBAIC0xNzUsNyArMTc2LDcgQEAgdm9pZCBTdHJpbmdQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHIK
ICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9ybWFsaXplIiwg
c3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1i
b2wsIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CiAKLSAgICBKU0NfTkFU
SVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+Y2hhckNvZGVBdFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBEb250
RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBE
b250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CiAKICAgICAvLyBUaGUgY29uc3RydWN0
b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgU3RyaW5nQ29uc3RydWN0b3IgaGFzIGJlZW4g
YnVpbHQKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVz
LmgKaW5kZXggN2FmMWY5ZmI4Njg4NWRjMDE0ZDMxMDEwMGUwMDQwNDkyMTUyNTM0YS4uZjNmYzMz
MzQ2YjM0OTQ5MzZlNTkxMGMxMGNkYThkNmZkMzU2NjVhMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5oCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3
SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmgiCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0Jv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3gu
Y3BwCmluZGV4IGMwOWNlMDIzNTc0Yzc2NzI3ZGMyNDQ1MGNiYjJiOTliYTBmZjk4Y2EuLjcxZTRl
MzI5Yjg4YjVlODNjMGFlM2UzMGRmMjNjZDcyMDg3NzdhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlw
ZWRBcnJheUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9EYXRhVmlldy5oPgo=
</data>
<flag name="review"
          id="305499"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="305505"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>281676</attachid>
            <date>2016-06-20 14:07:44 -0700</date>
            <delta_ts>2016-06-20 14:07:44 -0700</delta_ts>
            <desc>Benchmark results</desc>
            <filename>rV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Keiths-MacBook-Pro-5_20160620_1009_report.txt</filename>
            <type>text/plain</type>
            <size>80340</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IEtlaXRocy1NYWNCb29rLVByby01IChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVE9U
IiBhdCAvVm9sdW1lcy9EYXRhL2NsZWFuL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9q
c2MKIk1DIiBhdCAvVm9sdW1lcy9EYXRhL3dzMy9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVh
c2UvanNjCgpDb2xsZWN0ZWQgNCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggNCBWTSBp
bnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4g
c2FtcGxlIG1lYXN1cmVtZW50cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGlu
dm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgp
IGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9ydGluZyBiZW5j
aG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1p
bGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgICAgICAgTUMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42ODk2Ky0xLjAzMDMgICAgICAg
ICAgICA0LjYxNDUrLTAuMTMyNiAgICAgICAgICBtaWdodCBiZSAxLjAxNjN4IGZhc3RlcgogICAz
ZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYzMjAr
LTAuMDg1MiAgICAgPyAgICAgIDQuODQ4NCstMC40MzIyICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2
N3ggc2xvd2VyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUuMDczMCstMC41OTA2ICAgICAgICAgICAgNC43OTIxKy0wLjE0NTAgICAgICAgICAg
bWlnaHQgYmUgMS4wNTg2eCBmYXN0ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMS44Njk4Ky0wLjA0MTcgICAgID8gICAgICAxLjkxNTgrLTAu
MjU1OCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDZ4IHNsb3dlcgogICBhY2Nlc3MtZmFubmt1Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQ2MzcrLTAuMzAyNiAgICAgPyAg
ICAgIDUuNjkzNCstMC41NTU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQyMHggc2xvd2VyCiAgIGFj
Y2Vzcy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTY2NSst
MC41NzA5ICAgICAgICAgICAgMi4zMjc0Ky0wLjA5MzYgICAgICAgICAgbWlnaHQgYmUgMS4xMDI3
eCBmYXN0ZXIKICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi45Nzg4Ky0wLjIxMjUgICAgID8gICAgICAzLjA3ODQrLTAuMjk1NiAgICAgICAgPyBt
aWdodCBiZSAxLjAzMzV4IHNsb3dlcgogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxLjE4NTcrLTAuNTU1MyAgICAgICAgICAgIDEuMDMzMSstMC4x
MTUzICAgICAgICAgIG1pZ2h0IGJlIDEuMTQ3N3ggZmFzdGVyCiAgIGJpdG9wcy1iaXRzLWluLWJ5
dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTUwNistMC4yMDQ5ICAgICAgICAg
ICAgMi40NDc2Ky0wLjA4NDEgICAgICAgICAgbWlnaHQgYmUgMS4wNDIxeCBmYXN0ZXIKICAgYml0
b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS43ODE0Ky0w
LjAwMzggICAgID8gICAgICAxLjc5MDMrLTAuMDEyNCAgICAgICAgPwogICBiaXRvcHMtbnNpZXZl
LWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAwNDUrLTAuNDg5NSAgICAg
ICAgICAgIDIuODY4NCstMC4xOTY1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3NXggZmFzdGVyCiAg
IGNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTQy
MystMC4wMzIxICAgICA/ICAgICAgMi4yMzY1Ky0wLjMyMjEgICAgICAgID8gbWlnaHQgYmUgMS4w
NDM5eCBzbG93ZXIKICAgY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4wMjk1Ky0wLjI5NTUgICAgID8gICAgICA0LjA3NDMrLTAuMjE4MyAgICAgICAg
PyBtaWdodCBiZSAxLjAxMTF4IHNsb3dlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjI0NTErLTAuMTkxMCAgICAgPyAgICAgIDIuMjYyNSst
MC4yMzc1ICAgICAgICA/CiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMTYwMCstMC4wNDU5ICAgICAgICAgICAgMi4wOTA4Ky0wLjA4MDkgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzMxeCBmYXN0ZXIKICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4wODU4Ky0wLjU2OTUgICAgICAgICAgICA1Ljk3
NzArLTAuMjAyMiAgICAgICAgICBtaWdodCBiZSAxLjAxODJ4IGZhc3RlcgogICBkYXRlLWZvcm1h
dC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI4MDQrLTAuMjQ0OSAg
ICAgPyAgICAgIDQuNTE2NSstMC41MTIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1Mnggc2xvd2Vy
CiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NjE5MistMC4wMzQ1ICAgICA/ICAgICAgMi42MTk1Ky0wLjEzOTIgICAgICAgID8KICAgbWF0aC1w
YXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44NTAyKy0wLjI1
OTggICAgICAgICAgICAzLjczODIrLTAuMDY5MSAgICAgICAgICBtaWdodCBiZSAxLjAyOTl4IGZh
c3RlcgogICBtYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjkyNDcrLTAuMzI4MyAgICAgICAgICAgIDEuODE4MCstMC4wMzA3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDU4N3ggZmFzdGVyCiAgIHJlZ2V4cC1kbmEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUuOTQ5OCstMC4zMDUwICAgICA/ICAgICAgNy4wNjE0Ky0wLjkyMzgg
ICAgICAgID8gbWlnaHQgYmUgMS4xODY4eCBzbG93ZXIKICAgc3RyaW5nLWJhc2U2NCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41OTYwKy0wLjE5NDUgICAgICAgICAgICAz
LjU5NjArLTAuMTc5MyAgICAgICAgCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUuMTczOCstMC4wOTA0ICAgICA/ICAgICAgNS4zMjY3Ky0wLjQ3
NDAgICAgICAgID8gbWlnaHQgYmUgMS4wMjk2eCBzbG93ZXIKICAgc3RyaW5nLXRhZ2Nsb3VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43MzkwKy0wLjEyNTQgICAgID8gICAg
ICA3Ljk2MzYrLTAuNjQ2MiAgICAgICAgPyBtaWdodCBiZSAxLjAyOTB4IHNsb3dlcgogICBzdHJp
bmctdW5wYWNrLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjIxMTErLTEu
Mzg0OSAgICAgPyAgICAgMTcuOTI2MistMS4xMzEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxNngg
c2xvd2VyCiAgIHN0cmluZy12YWxpZGF0ZS1pbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuOTAyNSstMC4xODI4ICAgICA/ICAgICAgMy45NjIwKy0wLjI0MzMgICAgICAgID8gbWln
aHQgYmUgMS4wMTUyeCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuMTgxMCstMC4xMDYyICAgICA/ICAgICAgNC4yNTMwKy0wLjA3
ODYgICAgICAgID8gbWlnaHQgYmUgMS4wMTcyeCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAg
ICAgICAgICAgTUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkxvbmdT
cGlkZXI6CiAgIDNkLWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA3MjIuNzEyNistMTEuODYwOSAgICAgICAgIDcxNy4xNjM3Ky0xNi42NzMxICAgICAgIAogICAz
ZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTU2LjMyNzIr
LTE2LjU2NTggICAgPyAgICA1NjQuMTc4NSstNDAuMDM1NiAgICAgICA/IG1pZ2h0IGJlIDEuMDE0
MXggc2xvd2VyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0NDYuMDgwNistMy4yODYxICAgICA/ICAgIDQ0OS4wMTA5Ky0zLjg3MTUgICAgICAgID8K
ICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwNi4y
MDAzKy01MC4zOTA0ICAgICAgICAgNzgyLjMyNzgrLTE1Ljc1NzcgICAgICAgICBtaWdodCBiZSAx
LjAzMDV4IGZhc3RlcgogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjI4LjU4NDIrLTEyLjEzNzQgICAgPyAgICAyMzQuMTk3OCstMTQuNDIxMyAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI0Nnggc2xvd2VyCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MDcuNTk0MCstNS4xMzcwICAgICAgICAgIDUwNS41Njcw
Ky02LjMzNzIgICAgICAgIAogICBhY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjcyLjE0NjUrLTMuNzE1OCAgICAgPyAgICAyNzguNTUzMCstMjYuMjkxMCAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIzNXggc2xvd2VyCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgMzAuOTU0MCstMS4xNzc1ICAgICAgICAgICAzMC42
MTQ5Ky0wLjY1OTIgICAgICAgICAgbWlnaHQgYmUgMS4wMTExeCBmYXN0ZXIKICAgYml0b3BzLWJp
dHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ny45NDY1Ky0xLjE2MDIg
ICAgID8gICAgIDg4LjM1NTcrLTIuNTc3NiAgICAgICAgPwogICBiaXRvcHMtbnNpZXZlLWJpdHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzc1LjcyNjUrLTIxLjEwNDcgICAgICAgICAz
NjMuMzQwMystNS44NzA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0MXggZmFzdGVyCiAgIGNvbnRy
b2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MzQuNDQxOCstMTIu
MDAyMiAgICAgICAgIDQyOS41MjM5Ky02Ljg0NTQgICAgICAgICAgbWlnaHQgYmUgMS4wMTE0eCBm
YXN0ZXIKICAgY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDU0Mi45MjY1Ky05LjAwNjkgICAgID8gICAgNTUyLjIyMzMrLTM5Ljc0NTEgICAgICAgPyBtaWdo
dCBiZSAxLjAxNzF4IHNsb3dlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNDUwLjczNzUrLTcuMzU3MyAgICAgPyAgICA0NTIuNzYyMystNS42MDgy
ICAgICAgICA/CiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2MDYuNDYxOCstNy4yNDgyICAgICA/ICAgIDYxOC40NzYzKy0yMy43NTYxICAgICAgID8g
bWlnaHQgYmUgMS4wMTk4eCBzbG93ZXIKICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQ3NS45MjMwKy0xMi45NzU1ICAgID8gICAgNDg4LjczMzMrLTI4
LjUxMDcgICAgICAgPyBtaWdodCBiZSAxLjAyNjl4IHNsb3dlcgogICBkYXRlLWZvcm1hdC14cGFy
YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAzLjczNDgrLTQzLjUxNzkgICAgPyAg
ICA2MDQuODY5OSstMzguNTg5NCAgICAgICA/CiAgIGhhc2gtbWFwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMzQuNzc5MistNS4wMjc0ICAgICAgICAgIDEzMy40NTM0
Ky01LjQ4MzAgICAgICAgIAogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNDA3LjkxMzYrLTUuMDA5OSAgICAgPyAgICA0MjEuMzA5MCstMjQuNTc3NyAg
ICAgICA/IG1pZ2h0IGJlIDEuMDMyOHggc2xvd2VyCiAgIG1hdGgtcGFydGlhbC1zdW1zICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyNjYuOTQyMCstNC41OTc4ICAgICAgICAgIDI2Ni4w
NTE4Ky00LjcwMDkgICAgICAgIAogICBtYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNTEzLjc3NjQrLTEwLjA0MDQgICAgPyAgICA1MjMuMzQ3MistMjAuNTAw
MyAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Nnggc2xvd2VyCiAgIHN0cmluZy1iYXNlNjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjMuNTU5NystNS42OTk0ICAgICAgICAgIDMy
MS4yOTQ3Ky0yLjY3MTIgICAgICAgIAogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzEyLjgzODkrLTYuOTgyNSAgICAgICAgICAzMTIuMjY4NystMTIu
MjkxOCAgICAgICAKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE2MS41ODk3Ky0wLjk3MTUgICAgICAgICAgMTYwLjkxNjQrLTMuMjg3NSAgICAgICAg
CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzMz
LjM0OTQrLTAuMTg5NiAgICAgPyAgICAzMzQuMzEwNistMi4wNDYxICAgICAgICA/IG1pZ2h0IGJl
IDEuMDAyOXggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAgICAgIE1DICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApWOFNwaWRlcjoKICAgY3J5cHRvICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC4wNjYwKy0xLjI1OTMgICAg
ICAgICAgIDMzLjk1NjErLTIuMjcwMiAgICAgICAgCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuOTA4OCstMi45Mzk2ICAgICAgICAgICA0NS44
MzE5Ky0xLjAzOTIgICAgICAgICAgbWlnaHQgYmUgMS4wNDUzeCBmYXN0ZXIKICAgZWFybGV5LWJv
eWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNi42NTgwKy0wLjcwMDAg
ICAgICAgICAgIDM2LjQ4MjErLTAuMjkxOCAgICAgICAgCiAgIHJheXRyYWNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMDYwOSstMS4yNDkxICAgICA/ICAgICAx
OS41MTIwKy0xLjE0MTAgICAgICAgID8gbWlnaHQgYmUgMS4wMjM3eCBzbG93ZXIKICAgcmVnZXhw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4xMDQyKy0wLjcx
NjggICAgICAgICAgIDQ3Ljk2ODErLTAuNzA1NCAgICAgICAgCiAgIHJpY2hhcmRzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuNTk4NystMS4wOTc1ICAgICA/ICAg
ICAzNy45MzQ4Ky0yLjI3NjMgICAgICAgID8KICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyNy43MzM5Ky0wLjQxNzEgICAgICAgICAgIDI3LjU2ODAr
LTAuMjU2NiAgICAgICAgCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM0LjQwOTIrLTAuMjE2OSAgICAgICAgICAgMzQuMjY3OCstMC41NTc5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDA0MXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAg
ICAgIE1DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApPY3RhbmU6CiAg
IGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4xNDg3
MCstMC4wMDI0NSAgICAgICAgICAwLjE0ODcwKy0wLjAwMzc0ICAgICAgIAogICBkZWNyeXB0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjAwOTkrLTAuMTMyNDQg
ICAgPyAgICAgMi42MzM3MistMC4wNTQxNCAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2Vy
CiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC4x
MjE2NistMC4wMDQ3MiAgICA/ICAgICAwLjEyNDI1Ky0wLjAwNzI2ICAgICAgID8gbWlnaHQgYmUg
MS4wMjEzeCBzbG93ZXIKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjI2NTcxKy0wLjAwMjI5ICAgID8gICAgIDAuMjcxMDArLTAuMDAzNzggICAg
ICAgPyBtaWdodCBiZSAxLjAxOTl4IHNsb3dlcgogICBib3llciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzI4MjgrLTAuMDgxMTAgICAgICAgICAgNC41NTE4
NSstMC4yODU0OSAgICAgICAgIG1pZ2h0IGJlIDEuMDM4OHggZmFzdGVyCiAgIG5hdmllci1zdG9r
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgNC42Mjg5OSstMC4wNjY0OSAg
ICA/ICAgICA0LjY0NTAwKy0wLjA4Mzk1ICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjc0NDIxKy0wLjAwNTgzICAgID8gICAgIDAu
NzU4NTQrLTAuMDQxNTUgICAgICAgPyBtaWdodCBiZSAxLjAxOTN4IHNsb3dlcgogICByaWNoYXJk
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMDgwNTgrLTAuMDA0
OTUgICAgICAgICAgMC4wNzgxMCstMC4wMDEyNCAgICAgICAgIG1pZ2h0IGJlIDEuMDMxN3ggZmFz
dGVyCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAg
MC4zMjA5MistMC4wMDU1MSAgICAgICAgICAwLjMxODg3Ky0wLjAwODc5ICAgICAgIAogICByZWdl
eHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMTQuNDc1NzErLTAu
MzY0OTIgICAgPyAgICAxNC41MjI3NCstMC4yNzg2MiAgICAgICA/CiAgIHBkZmpzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAzNi4zNTI1NystMC4yOTg3OCAgICA/
ICAgIDM2LjU5NDA3Ky0wLjkyOTU2ICAgICAgID8KICAgbWFuZHJlZWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB4MiAgICAgIDM4Ljk1OTA3Ky0wLjU0MzMzICAgID8gICAgMzkuMTg4
NDQrLTEuMDQ5MTkgICAgICAgPwogICBnYmVtdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgMjYuNDA3MTgrLTAuNTM1MjMgICAgPyAgICAyNy4yNzIwMistNC4zNTc1
NiAgICAgICA/IG1pZ2h0IGJlIDEuMDMyN3ggc2xvd2VyCiAgIGNsb3N1cmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40NTgyNistMC4wMTIwMCAgICAgICAgICAw
LjQ1MzIxKy0wLjAwOTk2ICAgICAgICAgbWlnaHQgYmUgMS4wMTExeCBmYXN0ZXIKICAganF1ZXJ5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjIxNTk4Ky0wLjA5
NDc1ICAgID8gICAgIDYuMjMwNjArLTAuMDY3MjQgICAgICAgPwogICBib3gyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDguNzAwNTMrLTAuMTcxNDIgICAgPyAg
ICAgOC43MjMwMCstMC4xMTQ2MyAgICAgICA/CiAgIHpsaWIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgIDM0Mi42MjIxMSstNC4xMzU1OSAgICA/ICAgMzQyLjg1NDky
Ky0zLjQwNzM5ICAgICAgID8KICAgdHlwZXNjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB4MiAgICAgNTk0Ljg1Nzk3Ky04Ljk1MzEwICAgID8gICA1OTkuNTkyODMrLTE5LjEyMzI0
ICAgICAgPwoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjcwNDE0Ky0wLjAyMDc1ICAgID8gICAgIDQuNzIxMjUrLTAuMDg5MzIgICAgICAgPyBt
aWdodCBiZSAxLjAwMzZ4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUT1QgICAgICAgICAgICAgICAgICAgICAgICBNQyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3Rh
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4My45NjYrLTQuNjA4
ICAgICAgPyAgICAgIDg1Ljc2MCstOS41MzYgICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxNHggc2xv
d2VyCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDM1LjgwNistMC4xMTkgICAgICA/ICAgICAgMzUuODE4Ky0wLjE1MCAgICAgICAgID8KICAgYXVk
aW8tZGZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTIuOTM5Ky0z
LjExNCAgICAgID8gICAgICA5My43ODErLTMuOTcyICAgICAgICAgPwogICBhdWRpby1mZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS4xOTkrLTIuNTk2ICAgICAg
ICAgICAgIDI4LjUzMSstMC40ODUgICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzNHggZmFzdGVyCiAg
IGF1ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUzLjcy
NSstMy42NjEgICAgICA/ICAgICAgNTMuODgwKy0zLjc2MCAgICAgICAgID8KICAgaW1hZ2luZy1k
YXJrcm9vbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTYuNjk3Ky0wLjYxNiAg
ICAgICAgICAgICA1Ni42MzUrLTAuNTI1ICAgICAgICAgCiAgIGltYWdpbmctZGVzYXR1cmF0ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxLjkyNystMi4zODUgICAgICAgICAgICAg
NDEuMzU2Ky0wLjg0NSAgICAgICAgICAgbWlnaHQgYmUgMS4wMTM4eCBmYXN0ZXIKICAgaW1hZ2lu
Zy1nYXVzc2lhbi1ibHVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTguMjAzKy0zLjU5
OCAgICAgICAgICAgICA1Ni45NTErLTAuODY5ICAgICAgICAgICBtaWdodCBiZSAxLjAyMjB4IGZh
c3RlcgogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMi45NzcrLTIuMzAwICAgICAgICAgICAgIDMxLjU2NSstMS4wMDQgICAgICAgICAgIG1pZ2h0
IGJlIDEuMDQ0N3ggZmFzdGVyCiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIxLjY5NCstNC4yNDQgICAgICA/ICAgICAgMjIuNTM2Ky0xLjI4OCAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzg4eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLWFlcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuMjAyKy0wLjgyNCAgICAgID8gICAgICAz
Ni43NzMrLTIuMDczICAgICAgICAgPyBtaWdodCBiZSAxLjA0NDZ4IHNsb3dlcgogICBzdGFuZm9y
ZC1jcnlwdG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMS4yNzcrLTIuNjk1
ICAgICAgICAgICAgIDMwLjk1OSstMS45NjIgICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwM3ggZmFz
dGVyCiAgIHN0YW5mb3JkLWNyeXB0by1wYmtkZjIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkxLjk0MistMy4xODIgICAgICAgICAgICAgOTAuMDg3Ky0xLjQyMiAgICAgICAgICAgbWlnaHQg
YmUgMS4wMjA2eCBmYXN0ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAg
ICAgICAgICAgICAgICAgMjkuNDQxKy0xLjAxNiAgICAgICAgICAgICAyOS4zNzErLTAuMDkyICAg
ICAgICAgCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0OS42NDIrLTAuNzk1ICAgICAgICAgICAgIDQ5LjU3MistMC44MzYgICAgICAgICAgIG1p
Z2h0IGJlIDEuMDAxNHggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAgICAgIE1DICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFiYy1m
b3J3YXJkLWxvb3AtZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuMjE3MCstMy4y
NDk3ICAgICA/ICAgICAyNC4yMTE5Ky0zLjY5ODUgICAgICAgID8gbWlnaHQgYmUgMS4wNDI5eCBz
bG93ZXIKICAgYWJjLXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAg
ICAyOC4zODUzKy0xLjY5ODMgICAgID8gICAgIDMwLjI0NjIrLTIuNzA3MyAgICAgICAgPyBtaWdo
dCBiZSAxLjA2NTZ4IHNsb3dlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIyLjAyMjgrLTAuODg0MiAgICAgPyAgICAgMjMuMDQxNSstMy4yNDAw
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2M3ggc2xvd2VyCiAgIGFiYy1zaW1wbGUtZm9yd2FyZC1s
b29wICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNjczMCstMS4yNjE5ICAgICA/ICAgICAy
NC40ODQ4Ky0zLjA2OTkgICAgICAgID8gbWlnaHQgYmUgMS4wNzk5eCBzbG93ZXIKICAgYWJjLXNr
aXBweS1sb29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4xMjIyKy0xLjEy
MzQgICAgID8gICAgIDIwLjQwMjgrLTIuNjg4NyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzl4IHNs
b3dlcgogICBhYnMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjE2ODUrLTAuMTcyNiAgICAgICAgICAgIDIuMDc0MystMC4wNDkxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDQ1NHggZmFzdGVyCiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuMDEyNistMS40ODA4ICAgICA/ICAgICAxNC4wNzI1Ky0xLjc5NTEg
ICAgICAgID8KICAgYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAg
ICAgICAgMC45NjA3Ky0wLjAzODIgICAgICAgICAgICAwLjk1MTcrLTAuMDI3OSAgICAgICAgCiAg
IGFsbG9jYXRlLWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDU5
MSstMC4yMDE5ICAgICA/ICAgICAgMi4wNjU3Ky0wLjI5MTUgICAgICAgID8KICAgYXJndW1lbnRz
LW5hbWVkLWFuZC1yZWZsZWN0aXZlICAgICAgICAgICAgICAgICAgICAgNy4zNjk5Ky0wLjA3MTAg
ICAgID8gICAgICA3LjkyMTArLTEuNjg4MSAgICAgICAgPyBtaWdodCBiZSAxLjA3NDh4IHNsb3dl
cgogICBhcmd1bWVudHMtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
Ljk4NTcrLTAuMDgzNiAgICAgPyAgICAgIDkuMTY4OCstMC41NDM5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIwNHggc2xvd2VyCiAgIGFyZ3VtZW50cy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTguOTQ2MCstMS4xNDkxICAgICA/ICAgICAxOS40NTE1Ky0wLjk1MDQgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjY3eCBzbG93ZXIKICAgYXJndW1lbnRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4wNTYyKy0wLjIzMDEgICAgICAgICAgICA1Ljkx
MjkrLTAuMDg1NiAgICAgICAgICBtaWdodCBiZSAxLjAyNDJ4IGZhc3RlcgogICBhcml0eS1taXNt
YXRjaC1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc3OTIrLTAuMTM0MCAg
ICAgICAgICAgIDAuNzExNystMC4wMTI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDk0OHggZmFzdGVy
CiAgIGFycmF5LWFjY2Vzcy1wb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgIDMu
NDMyMSstMC4zNjM1ICAgICA/ICAgICAgMy41NDc1Ky0wLjM1MzYgICAgICAgID8gbWlnaHQgYmUg
MS4wMzM2eCBzbG93ZXIKICAgYXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMtYWNjZXNzICAgICAg
ICAgICAgICAgICAxOS40MjEwKy0wLjMzNDAgICAgID8gICAgIDE5LjY4NzQrLTEuMTU3NiAgICAg
ICAgPyBtaWdodCBiZSAxLjAxMzd4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtZXZlcnkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDY2LjYzNTUrLTQuMjYyOSAgICAgICAgICAgNjQuNTg1
OSstMC41MzI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxN3ggZmFzdGVyCiAgIGFycmF5LXByb3Rv
dHlwZS1mb3JFYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQuMTk5NystMC42NjI3ICAg
ICA/ICAgICA2NC41NzE1Ky0zLjU1MDAgICAgICAgID8KICAgYXJyYXktcHJvdG90eXBlLW1hcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ny4yMTgzKy0wLjI2MTMgICAgID8gICAgIDY5
LjU2MTUrLTMuMTA0MyAgICAgICAgPyBtaWdodCBiZSAxLjAzNDl4IHNsb3dlcgogICBhcnJheS1w
cm90b3R5cGUtcmVkdWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYyLjM5ODQrLTAuNzIw
NSAgICAgPyAgICAgNjIuNTcwMSstMS4xOTQxICAgICAgICA/CiAgIGFycmF5LXByb3RvdHlwZS1y
ZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAgICAgICAgODYuOTk0MSstMi40NTU2ICAgICA/ICAg
ICA4Ny4zOTI5Ky02LjE3MTggICAgICAgID8KICAgYXJyYXktcHJvdG90eXBlLXNvbWUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2NC4xOTgyKy0wLjI4NDMgICAgID8gICAgIDY0LjY4Nzcr
LTAuOTg1NSAgICAgICAgPwogICBhcnJheS1zcGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIyLjExNTUrLTIuODI5NyAgICAgICAgICAgMjEuMjMxMystMS45NTU4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQxNnggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjExMystMC41NTc5ICAgICAgICAgICAgMi45
MjkwKy0wLjA3MDYgICAgICAgICAgbWlnaHQgYmUgMS4wOTY0eCBmYXN0ZXIKICAgYXJyYXktd2l0
aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgMi42MDI1Ky0wLjE2NTUg
ICAgID8gICAgICAyLjY3MzArLTAuNTUzNyAgICAgICAgPyBtaWdodCBiZSAxLjAyNzF4IHNsb3dl
cgogICBhcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjM0MjUrLTAuMjE1NSAgICAgICAgICAgIDMuMzAwNystMC4xNDc5ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEyNnggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNDExOSstMC4wNzIzICAgICA/ICAgICAgMi41NjQ1Ky0wLjE5MjkgICAg
ICAgID8gbWlnaHQgYmUgMS4wNjMzeCBzbG93ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1hZGQtc3Vi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40OTU4Ky0wLjEzNzQgICAgICAgICAgICA0LjM4
MTgrLTAuMjk2NCAgICAgICAgICBtaWdodCBiZSAxLjAyNjB4IGZhc3RlcgogICBhcnJheS13aXRo
LWludDMyLW9yLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAgICAgICAyLjU2MDQrLTAuMDkyMCAg
ICAgPyAgICAgIDIuNjM1NystMC4wOTU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5NHggc2xvd2Vy
CiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNi40MjY3Ky0w
LjUxNzkgICAgICAgICAgIDM2LjMxNjcrLTAuMzE2MiAgICAgICAgCiAgIEFycmF5QnVmZmVyLURh
dGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgMTQuODI3NSstMi43MDY0ICAgICA/
ICAgICAxNC45MjM5Ky0yLjMzMzYgICAgICAgID8KICAgQXJyYXlCdWZmZXItSW50MzJBcnJheS1i
eXRlT2Zmc2V0ICAgICAgICAgICAgICAgICAgMy4zNzI5Ky0wLjExMzggICAgID8gICAgICAzLjQ2
ODMrLTAuMjgwMiAgICAgICAgPyBtaWdodCBiZSAxLjAyODN4IHNsb3dlcgogICBBcnJheUJ1ZmZl
ci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjQ2NDArLTEuMDIxMiAgICAgPyAg
ICAgMzYuOTAxNSstMi4xNTYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2VyCiAgIEFy
cmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLWJ1ZmZlciAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjAwMjcrLTAuNTA1
MyAgICAgPyAgICAgMjAuMDUxMSstMy42MTk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1Mnggc2xv
d2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAg
MTMuODUzNSstMC44NjQ0ICAgICA/ICAgICAxNC41MjE4Ky0yLjcyMjcgICAgICAgID8gbWlnaHQg
YmUgMS4wNDgyeCBzbG93ZXIKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jICAgICAgICAg
ICAgICAgICAgICAgICAxMS43NzYxKy0xLjA0MDkgICAgID8gICAgIDEyLjc4MDYrLTIuMDExNyAg
ICAgICAgPyBtaWdodCBiZSAxLjA4NTN4IHNsb3dlcgogICBhcnJvd2Z1bmN0aW9uLWNhbGwtaW4t
Y2xhc3MtY29uc3RydWN0b3IgICAgICAgICAgIDY0LjU5MTcrLTMuMzkyOSAgICAgICAgICAgNjMu
MjE5NSstMC40NjI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxN3ggZmFzdGVyCiAgIGFycm93ZnVu
Y3Rpb24tY2FsbC1pbi1jbGFzcy1tZXRob2QgICAgICAgICAgICAgICAgMTguMzI5MCstMi45MTA2
ICAgICAgICAgICAxNy45MzE4Ky0xLjU2NTMgICAgICAgICAgbWlnaHQgYmUgMS4wMjIyeCBmYXN0
ZXIKICAgYXJyb3dmdW5jdGlvbi1jYWxsLWluLWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAx
MS45MzQwKy0xLjE3NDAgICAgICAgICAgIDExLjE4MTgrLTAuNjk5NiAgICAgICAgICBtaWdodCBi
ZSAxLjA2NzN4IGZhc3RlcgogICBhcnJvd2Z1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4LjczMjQrLTAuMjA5MiAgICAgPyAgICAgIDguODY0MCstMC40NTc1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIGFzbWpzX2Jvb2xfYnVnICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNzM5OSstMS40NDM0ICAgICAgICAgICAgNy4x
NDk3Ky0wLjU2ODUgICAgICAgICAgbWlnaHQgYmUgMS4wODI1eCBmYXN0ZXIKICAgYXNzaWduLWN1
c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgMi4zMTY3Ky0wLjAwOTIg
ICAgID8gICAgICAyLjM0NDErLTAuMDI2MSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTh4IHNsb3dl
cgogICBhc3NpZ24tY3VzdG9tLXNldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjY3OTMrLTAuMTU4MiAgICAgPyAgICAgIDMuNzYzNSstMC4xOTIwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIyOXggc2xvd2VyCiAgIGJhc2ljLXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuNjgxNSstMC41MjY1ICAgICA/ICAgICAgNi43MDczKy0wLjMxNDggICAg
ICAgID8KICAgYmlnLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy4yMDI0Ky0wLjUxNzYgICAgICAgICAgICAyLjgxNjErLTAuMDQzMyAgICAgICAgICBtaWdo
dCBiZSAxLjEzNzJ4IGZhc3RlcgogICBib29sZWFuLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjUyOTcrLTAuMDkzNiAgICAgPyAgICAgIDIuNTk4MystMC4xNzQ2
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MXggc2xvd2VyCiAgIGJvdW5kLWZ1bmN0aW9uLWNhbGwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMzQ3NSstMC40MTM3ICAgICA/ICAgICAg
OS40ODM2Ky0wLjY3OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ2eCBzbG93ZXIKICAgYnJhbmNo
LWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40Mjk4Ky0wLjEw
NzcgICAgID8gICAgICAzLjgwNDcrLTAuNTkzMSAgICAgICAgPyBtaWdodCBiZSAxLjEwOTN4IHNs
b3dlcgogICBicmFuY2gtb24tc3RyaW5nLWFzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAg
ICA5LjcxMDkrLTAuOTI0MCAgICAgICAgICAgIDkuNTc5MistMC44MjU5ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzN3ggZmFzdGVyCiAgIGJ1Zy0xNTM0MzEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuODIxNSstMC4wNzQzICAgICAgICAgICAgMi43OTU0Ky0wLjEzMDgg
ICAgICAgIAogICBidWlsZC1sYXJnZS1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDI4LjU0MDUrLTAuMzAxNSAgICAgPyAgICAgMjkuMDY1MistMS40NDk3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE4NHggc2xvd2VyCiAgIGJ5LXZhbC1nZW5lcmljICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuOTYxNCstMC42MjQ3ICAgICA/ICAgICAgNC4xNjMwKy0wLjY4
NzUgICAgICAgID8gbWlnaHQgYmUgMS4wNTA5eCBzbG93ZXIKICAgY2FsbC1zcHJlYWQtYXBwbHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNC40Mzc3Ky0wLjcwMjQgICAgICAgICAg
IDI0LjIwNjMrLTAuNjE4NCAgICAgICAgCiAgIGNhbGwtc3ByZWFkLWNhbGwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjguMjc4MCstMS4xNzcwICAgICAgICAgICAyOC4xOTA3Ky0w
LjkwNjkgICAgICAgIAogICBjYXB0dXJlZC1hc3NpZ25tZW50cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjMxNTYrLTAuMDEzOSAgICAgPyAgICAgIDAuMzIzMSstMC4wMDcyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIzNnggc2xvd2VyCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzU2MistMC41ODg0ICAgICA/ICAgICAgNC45Nzk1
Ky0wLjY4NjAgICAgICAgID8gbWlnaHQgYmUgMS4wNDY5eCBzbG93ZXIKICAgY2VsbC1hcmd1bWVu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MTI0Ky0wLjEyNzEgICAg
ID8gICAgICAyLjUxMzkrLTAuMDUwOCAgICAgICAgPwogICBjZmctc2ltcGxpZnkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjYyNzMrLTAuMTcwMiAgICAgPyAgICAgIDIu
NjMyNSstMC4wODY2ICAgICAgICA/CiAgIGNoYWluLWdldHRlci1hY2Nlc3MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAuMDUwMCstMC4yNjk2ICAgICA/ICAgICAxMC40MTc1Ky0xLjYw
NTcgICAgICAgID8gbWlnaHQgYmUgMS4wMzY2eCBzbG93ZXIKICAgY21wZXEtb2JqLXRvLW9iai1v
dGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy42NDIxKy0wLjMzMDYgICAgID8gICAg
ICA3LjY3NTArLTAuMzE3MSAgICAgICAgPwogICBjb25zdGFudC10ZXN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjUwNjUrLTAuNzM5NSAgICAgICAgICAgIDQuMzgwNyst
MC4yMDM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4N3ggZmFzdGVyCiAgIGNyZWF0ZS1sb3RzLW9m
LWZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzgxMCstMC4yNzIyICAgICAg
ICAgICAgOC4zNDU1Ky0wLjgzNjAgICAgICAgIAogICBjc2UtbmV3LWFycmF5LWJ1ZmZlciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEyODIrLTAuMzEyNiAgICAgPyAgICAgIDIuMjAw
NystMC4yMTc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0MXggc2xvd2VyCiAgIGNzZS1uZXctYXJy
YXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTY2MistMC4zNjYyICAg
ICAgICAgICAgMS45ODY4Ky0wLjEyMTkgICAgICAgICAgbWlnaHQgYmUgMS4wOTAzeCBmYXN0ZXIK
ICAgY3VzdG9tLXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZCAgICAgICAgICAgICAgMC40
MDM1Ky0wLjA1MTcgICAgID8gICAgICAwLjQwNjIrLTAuMDQ0NSAgICAgICAgPwogICBEYXRhVmll
dy1jdXN0b20tcHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgIDQxLjI4MjQrLTEuODk2
NiAgICAgICAgICAgNDAuODk2NCstMS43MDI1ICAgICAgICAKICAgZGVsYXktdGVhci1vZmYtYXJn
dW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAgICAgICAgMy43MjgzKy0wLjA2MTAgICAgICAgICAg
ICAzLjY2ODMrLTAuMTI2MyAgICAgICAgICBtaWdodCBiZSAxLjAxNjN4IGZhc3RlcgogICBkZWx0
YWJsdWUtZm9yLW9mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjY5NTcrLTIu
NDAwMSAgICAgICAgICAgMzIuNDA1NSstMS4xNDM5ICAgICAgICAKICAgZGVsdGFibHVlLXZhcmFy
Z3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC4wNTg1Ky0zLjc2NDggICAgID8g
ICAgIDM1LjE1NzkrLTAuNjcxNyAgICAgICAgPyBtaWdodCBiZSAxLjAzMjN4IHNsb3dlcgogICBk
ZXN0cnVjdHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDc4LjI1OTgr
LTYuODE2MCAgICAgPyAgICAgNzkuMjUwMystNC4wOTkzICAgICAgICA/IG1pZ2h0IGJlIDEuMDEy
N3ggc2xvd2VyCiAgIGRlc3RydWN0dXJpbmctcGFyYW1ldGVycy1vdmVycmlkZGVuLWJ5LWZ1bmN0
aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuMzYzMCstMC4wMzI5ICAgICAgICAgICAgMC4zNDQ3Ky0wLjAxNTEgICAgICAgICAgbWln
aHQgYmUgMS4wNTMzeCBmYXN0ZXIKICAgZGVzdHJ1Y3R1cmluZy1zd2FwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC40MDQyKy0wLjY3NzIgICAgICAgICAgICA0LjMzNDArLTAuNTIz
NCAgICAgICAgICBtaWdodCBiZSAxLjAxNjJ4IGZhc3RlcgogICBkaXJlY3QtYXJndW1lbnRzLWdl
dGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAwLjk5NTArLTAuMTI3MiAgICAgICAgICAg
IDAuOTMxMistMC4wNTIzICAgICAgICAgIG1pZ2h0IGJlIDEuMDY4NnggZmFzdGVyCiAgIGRpcmVj
dC1hcmd1bWVudHMtbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMDIyMSstMC4z
OTM2ICAgICAgICAgICAgNS45OTIyKy0wLjM1NTggICAgICAgIAogICBkaXJlY3QtYXJndW1lbnRz
LW92ZXJyaWRkZW4tbGVuZ3RoICAgICAgICAgICAgICAgICA2LjI5NjQrLTAuNDk5NyAgICAgICAg
ICAgIDYuMDgyMistMC41NjQwICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1MnggZmFzdGVyCiAgIGRp
cmVjdC1hcmd1bWVudHMtcG9zc2libHktb3ZlcnJpZGRlbi1sZW5ndGggICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi44MzExKy0wLjc0OTQg
ICAgICAgICAgICA2LjQ0MzgrLTAuNTQ5NiAgICAgICAgICBtaWdodCBiZSAxLjA2MDF4IGZhc3Rl
cgogICBkaXYtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ljg4MDQrLTAuMTI5OCAgICAgPyAgICAgIDQuMDI0NystMC41MTYyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM3Mnggc2xvd2VyCiAgIGRpdi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuMTEwMystMC40NTQyICAgICAgICAgICAgNi45NzQ5Ky0wLjI1NDIgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTk0eCBmYXN0ZXIKICAgZG91YmxlLWdldC1ieS12YWwtb3V0LW9m
LWJvdW5kcyAgICAgICAgICAgICAgICAgICAgMy45MjYyKy0wLjA0NjMgICAgICAgICAgICAzLjg3
MTYrLTAuMTQwMCAgICAgICAgICBtaWdodCBiZSAxLjAxNDF4IGZhc3RlcgogICBkb3VibGUtcG9s
bHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU1MzMrLTAuMDk1MiAg
ICAgPyAgICAgIDcuNTk2NystMC4xNDgxICAgICAgICA/CiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0
YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgIDMuMjY4OCstMC4zNTA3ICAgICAgICAgICAg
My4yNDUyKy0wLjI0MDcgICAgICAgIAogICBkb3VibGUtcmVhbC11c2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIzLjU5OTUrLTEuOTk0NCAgICAgPyAgICAgMjMuNzY1MCstNC43
NDkyICAgICAgICA/CiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAg
ICAgICAgICAgIDIuMTE2OSstMC4wOTM3ICAgICA/ICAgICAgMi4zMTYzKy0wLjYyMTcgICAgICAg
ID8gbWlnaHQgYmUgMS4wOTQyeCBzbG93ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5
ICAgICAgICAgICAgICAgICAgICAgICAgMS45NzAwKy0wLjAzOTMgICAgID8gICAgICAxLjk5NDgr
LTAuMTExNCAgICAgICAgPyBtaWdodCBiZSAxLjAxMjZ4IHNsb3dlcgogICBkb3VibGUtdG8tdWlu
dDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAyLjMwOTArLTAuNDc5MCAgICAg
PyAgICAgIDIuNDY4NCstMC4zNjUyICAgICAgICA/IG1pZ2h0IGJlIDEuMDY5MXggc2xvd2VyCiAg
IGRvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMDgy
NystMC4wNDUwICAgICAgICAgICAgMi4wMDQ5Ky0wLjEwMTggICAgICAgICAgbWlnaHQgYmUgMS4w
Mzg4eCBmYXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxOS4zMzA2Ky0xLjQzMzUgICAgICAgICAgIDE5LjA1MzMrLTEuMTQ1NiAgICAgICAg
ICBtaWdodCBiZSAxLjAxNDZ4IGZhc3RlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0
ZXIgICAgICAgICAgICAgICAgICAgIDE4Ljg5OTcrLTAuNjg2NyAgICAgPyAgICAgMjEuOTA4OCst
OC43Mjg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTU5Mnggc2xvd2VyCiAgIGVsaWRhYmxlLW5ldy1v
YmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgMTcuMzc0MistMS41MDgyICAgICAg
ICAgICAxNi42NjM0Ky0wLjkxNzQgICAgICAgICAgbWlnaHQgYmUgMS4wNDI3eCBmYXN0ZXIKICAg
ZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAxOS4zNzk1
Ky0xLjI2MDMgICAgID8gICAgIDE5Ljg1MDArLTEuOTg2MCAgICAgICAgPyBtaWdodCBiZSAxLjAy
NDN4IHNsb3dlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjMwOTgrLTAuMzAyMSAgICAgICAgICAgIDQuMzA1MistMC4xNTAyICAgICAgICAK
ICAgZW1zY3JpcHRlbi1jdWJlMmhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS44
ODg3Ky0xLjA2NDggICAgID8gICAgIDIyLjEzMjgrLTAuODIxMyAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTF4IHNsb3dlcgogICBleGl0LWxlbmd0aC1vbi1wbGFpbi1vYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgICA3LjkyMTMrLTAuMzA3OSAgICAgPyAgICAgIDguNzE0NSstMS42OTAzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMTAwMXggc2xvd2VyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZh
bCAgICAgICAgICAgICAgICAgICAgICAgIDEuMDUyMystMC4wNDk0ICAgICA/ICAgICAgMS4wOTc3
Ky0wLjI5NjMgICAgICAgID8gbWlnaHQgYmUgMS4wNDMxeCBzbG93ZXIKICAgZXh0ZXJuYWwtYXJn
dW1lbnRzLXB1dGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgMi4wMjQ0Ky0wLjQ1MTMgICAg
ICAgICAgICAxLjk2MjUrLTAuMjg0OCAgICAgICAgICBtaWdodCBiZSAxLjAzMTV4IGZhc3Rlcgog
ICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLXZhci1pbmRleCAgICAgICAgICAgICAgICAxLjI0
NjArLTAuMDcyMiAgICAgICAgICAgIDEuMjMxNCstMC4wMTU3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDExOHggZmFzdGVyCiAgIGZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuMDAwMSstMC4wNTg0ICAgICAgICAgICAgMC45NjAwKy0wLjA0MDYgICAgICAg
ICAgbWlnaHQgYmUgMS4wNDE3eCBmYXN0ZXIKICAgRmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC4yMTMxKy0wLjEzOTMgICAgID8gICAgICA0LjI0NDgr
LTAuMjA4MCAgICAgICAgPwogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAg
ICAgICAgICAgICAgIDM3LjA2OTkrLTEuODc1NCAgICAgICAgICAgMzYuMDMzMSstMS4wNDE0ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI4OHggZmFzdGVyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25n
LWxpdmVkICAgICAgICAgICAgICAgICAgICAgNDkuNzc3MistMS43NTU2ICAgICAgICAgICA0OS42
MTA3Ky0xLjYzNzkgICAgICAgIAogICBGbG9hdDY0QXJyYXktdG8tSW50MTZBcnJheS1zZXQgICAg
ICAgICAgICAgICAgICAgIDQzLjM0NjYrLTAuMzYzNCAgICAgPyAgICAgNDMuNDYzNistMC40NjI0
ICAgICAgICA/CiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTEuNDU0MCstMC4yOTA4ICAgICA/ICAgICAxMi4yMjMzKy0xLjIwOTkgICAgICAgID8g
bWlnaHQgYmUgMS4wNjcyeCBzbG93ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5
LW9mZnNldC1yYXJlLWludCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA2LjUwNTcrLTAuMDcxNiAgICAgPyAgICAgIDYuNjkxMistMC4yNDI3
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI4NXggc2xvd2VyCiAgIGZvbGQtZ2V0LWJ5LWlkLXRvLW11
bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgIDYuMDM4NSstMC41MTc2ICAgICAgICAgICAg
NS43MzgyKy0wLjMwODAgICAgICAgICAgbWlnaHQgYmUgMS4wNTIzeCBmYXN0ZXIKICAgZm9sZC1t
dWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43NjkyKy0yLjY1NDQgICAgICAg
ICAgICAzLjk1NzMrLTAuMDg2NyAgICAgICAgICBtaWdodCBiZSAxLjIwNTF4IGZhc3RlcgogICBm
b2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tcG9seS1nZXQtYnktb2Zmc2V0ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTUzOSstMC4y
MjUwICAgICA/ICAgICAgMy45ODk0Ky0wLjA5OTEgICAgICAgID8KICAgZm9sZC1tdWx0aS1wdXQt
Ynktb2Zmc2V0LXRvLXBvbHktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjIxMzErLTAuNTMxNiAgICAgICAgICAg
IDQuMDc4OCstMC4zMDgyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyOXggZmFzdGVyCiAgIGZvbGQt
bXVsdGktcHV0LWJ5LW9mZnNldC10by1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDk5MystMi41NTAxICAgICAg
ICAgICAgMy42NTM5Ky0wLjI4MjIgICAgICAgICAgbWlnaHQgYmUgMS4yMzE0eCBmYXN0ZXIKICAg
Zm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXJlcGxhY2Utb3ItdHJhbnNpdGlvbi1wdXQtYnkt
b2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDYuMzgzMCstMC41MTIxICAgICA/ICAgICAgNi42NjkxKy0wLjQzNDUgICAgICAgID8g
bWlnaHQgYmUgMS4wNDQ4eCBzbG93ZXIKICAgZm9sZC1wdXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5
LW9mZnNldCAgICAgICAgICAgICAgNS45OTYxKy0wLjI5MDMgICAgICAgICAgICA1LjgzMjUrLTAu
Mjg0NSAgICAgICAgICBtaWdodCBiZSAxLjAyODF4IGZhc3RlcgogICBmb2xkLXB1dC1ieS12YWwt
d2l0aC1zdHJpbmctdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjE0MjArLTAuMTA2MCAgICAgICAg
ICAgIDYuMTM4MistMC4xMjEzICAgICAgICAKICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9s
LXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi4yMDQ3Ky0wLjI4NzAgICAgICAgICAgICA2LjEwNDYr
LTAuMTk0NiAgICAgICAgICBtaWdodCBiZSAxLjAxNjR4IGZhc3RlcgogICBmb2xkLXB1dC1zdHJ1
Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI3NDcrLTAuNjA0NiAgICAg
ICAgICAgIDMuMTA3NSstMC4wNjkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDUzOHggZmFzdGVyCiAg
IGZvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMgICAgICAgICAgICAgICAgICAgICAgIDkuODEy
MystMC4yNjg3ICAgICAgICAgICAgOS41NzgwKy0wLjc0MzkgICAgICAgICAgbWlnaHQgYmUgMS4w
MjQ1eCBmYXN0ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5cyAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4wODQwKy0wLjEyMDEgICAgID8gICAgICA0LjE3MTArLTAuMjQ2OSAgICAgICAg
PyBtaWdodCBiZSAxLjAyMTN4IHNsb3dlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMg
ICAgICAgICAgICAgICAgICAgICAgICA0LjA4NzUrLTAuMzEwNyAgICAgICAgICAgIDMuOTAwOSst
MC4xNDMyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3OHggZmFzdGVyCiAgIGZyb3VuZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTYxNystMC4xNzQ5ICAgICAg
ICAgICAgOS4xNTkxKy0wLjA5MzYgICAgICAgIAogICBmdGwtbGlicmFyeS1pbmxpbmluZy1kYXRh
dmlldyAgICAgICAgICAgICAgICAgICAgIDU1LjcwNDArLTAuMTM5NiAgICAgPyAgICAgNTYuNzMz
OSstMS4xNDIxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4NXggc2xvd2VyCiAgIGZ0bC1saWJyYXJ5
LWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuOTM3NSstMS4zNDU2ICAg
ICAgICAgICAyMS44ODEyKy0xLjgyNzkgICAgICAgIAogICBmdGwtcG9seW1vcnBoaWMtYml0YW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI3LjM4MDMrLTEwLjUyNTggICAgICAgICAxMjQu
MzU1NSstNC41NDg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0M3ggZmFzdGVyCiAgIGZ0bC1wb2x5
bW9ycGhpYy1iaXRvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjcuMTkxMCstNy45MjAx
ICAgICAgICAgIDEyNS40MTI0Ky00LjEyNjEgICAgICAgICAgbWlnaHQgYmUgMS4wMTQyeCBmYXN0
ZXIKICAgZnRsLXBvbHltb3JwaGljLWJpdHhvciAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
My44NjMyKy0xLjE3NzUgICAgICAgICAgMTIzLjc1NjUrLTEuNDMxNyAgICAgICAgCiAgIGZ0bC1w
b2x5bW9ycGhpYy1kaXYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MzEuNzczMSstMS4w
NTc0ICAgICA/ICAgIDQ0NC45MjAxKy0zMC4yODg0ICAgICAgID8gbWlnaHQgYmUgMS4wMzA0eCBz
bG93ZXIKICAgZnRsLXBvbHltb3JwaGljLWxzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE0OS42NzAwKy0wLjk1MTkgICAgID8gICAgMTUxLjQyNzErLTMuOTgyOCAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMTd4IHNsb3dlcgogICBmdGwtcG9seW1vcnBoaWMtbXVsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjIyLjY4MDkrLTYuNzE2MSAgICAgICAgICAyMjAuNDUxOSstMS40MjQz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwMXggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy1yc2hp
ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTAuNzkzOSstMy44MDEwICAgICAgICAgIDE0
OC4wOTA2Ky0wLjQzNzEgICAgICAgICAgbWlnaHQgYmUgMS4wMTgzeCBmYXN0ZXIKICAgZnRsLXBv
bHltb3JwaGljLVN0cmluZ0Zyb21DaGFyQ29kZSAgICAgICAgICAgICAgICA0MC41NTQ3Ky0zLjUy
MTggICAgICAgICAgIDM5LjcxMzErLTAuNDA5OCAgICAgICAgICBtaWdodCBiZSAxLjAyMTJ4IGZh
c3RlcgogICBmdGwtcG9seW1vcnBoaWMtc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTQ4LjczNDcrLTUuODc3NyAgICAgICAgICAxNDYuMzcxNSstMS44NDAwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDE2MXggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy11cnNoaWZ0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNjQuODYxNSstMTIuMDQwOSAgICAgICAgIDE2Mi41Mzg3Ky0zLjEwNTEg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTQzeCBmYXN0ZXIKICAgZnVuY3Rpb24tY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC40MDIzKy0wLjgzOTAgICAgICAgICAgIDEw
LjMwOTMrLTAuMzQ4MCAgICAgICAgCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEuNzU4MistMC4wNTA2ICAgICA/ICAgICAgMS43Njc5Ky0wLjA0
NTIgICAgICAgID8KICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi41MjY3Ky0wLjU0MDMgICAgICAgICAgICAyLjMyMTYrLTAuMDI3MiAgICAgICAg
ICBtaWdodCBiZSAxLjA4ODR4IGZhc3RlcgogICBmdW5jdGlvbi13aXRoLWV2YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDgzLjQxNzcrLTEuNzE5OCAgICAgICAgICAgODMuMzgzNyst
MS40NjA4ICAgICAgICAKICAgZ2NzZS1wb2x5LWdldC1sZXNzLW9idmlvdXMgICAgICAgICAgICAg
ICAgICAgICAgICAgNy44MDIyKy0wLjMyOTggICAgICAgICAgICA3Ljc5NTcrLTAuNDEyMyAgICAg
ICAgCiAgIGdjc2UtcG9seS1nZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDguMzI0MistMS4wMTI0ICAgICAgICAgICAgNy45NTYyKy0wLjQ0MzAgICAgICAgICAgbWlnaHQg
YmUgMS4wNDYzeCBmYXN0ZXIKICAgZ2NzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy4xOTU2Ky0wLjIxOTIgICAgICAgICAgICAzLjE1NjErLTAuMjA4MSAg
ICAgICAgICBtaWdodCBiZSAxLjAxMjV4IGZhc3RlcgogICBnZW5lcmF0b3ItY3JlYXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjYxNDQrLTAuMDE5MiAgICAgPyAgICAgIDAu
ODAwOCstMC40Nzk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMzAzM3ggc2xvd2VyCiAgIGdlbmVyYXRv
ci1maWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTEuOTkxMSstMi41NzI0
ICAgICA/ICAgICA5Ny4zMTc0Ky03LjAzMjUgICAgICAgID8gbWlnaHQgYmUgMS4wNTc5eCBzbG93
ZXIKICAgZ2VuZXJhdG9yLWZ1bmN0aW9uLWNyZWF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
My4yNzE3Ky0wLjE1ODIgICAgID8gICAgICAzLjQ3NjcrLTAuMTI2NiAgICAgICAgPyBtaWdodCBi
ZSAxLjA2MjZ4IHNsb3dlcgogICBnZW5lcmF0b3Itc3Vuc3BpZGVyLWFjY2Vzcy1uc2lldmUgICAg
ICAgICAgICAgICAgICA1LjMxODQrLTAuMTYyMyAgICAgPyAgICAgIDUuMzE4NystMC4xOTMxICAg
ICAgICA/CiAgIGdlbmVyYXRvci13aXRoLXNldmVyYWwtdHlwZXMgICAgICAgICAgICAgICAgICAg
ICAzMDIuMTg0NystMTcuNTQ4MiAgICAgICAgIDMwMS43MTg0Ky0xNS43NjQ4ICAgICAgIAogICBn
ZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4x
MzkwKy0wLjEwNTggICAgID8gICAgICAyLjE5ODUrLTAuMjYwMiAgICAgICAgPyBtaWdodCBiZSAx
LjAyNzh4IHNsb3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjE2NjUrLTAuMzA1NSAgICAgICAgICAgIDQuMTE0MystMC4wNTYwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEyN3ggZmFzdGVyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9j
ayAgICAgICAgICAgICAgICAgICAgIDEuNzYwMystMC4wOTM1ICAgICA/ICAgICAgMS43NzMxKy0w
LjA3MjUgICAgICAgID8KICAgZ2V0LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAg
ICAgICAgICAgICAgMi45MDIyKy0wLjQ5NzYgICAgICAgICAgICAyLjgzMTErLTAuMDgyMCAgICAg
ICAgICBtaWdodCBiZSAxLjAyNTF4IGZhc3RlcgogICBnZXQtYnktaWQtcHJvdG8tb3Itc2VsZiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5LjYzNTkrLTEuMDEzMSAgICAgICAgICAgIDkuNDAy
MistMC43MDExICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0OXggZmFzdGVyCiAgIGdldC1ieS1pZC1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjMyMistMC40
NzA3ICAgICAgICAgICAgMi41ODYyKy0wLjE5OTQgICAgICAgICAgbWlnaHQgYmUgMS4wMTc4eCBm
YXN0ZXIKICAgZ2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS4wMzM2Ky0wLjM5MzAgICAgID8gICAgIDEwLjA2OTYrLTEuNTYxMSAgICAgICAgPyBtaWdo
dCBiZSAxLjExNDd4IHNsb3dlcgogICBnZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjcyMDArLTAuMTAxNSAgICAgPyAgICAgIDMuODAwNistMC4xMDk1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxN3ggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJp
bmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMzAwKy0w
LjYyODMgICAgICAgICAgICAyLjg5MDkrLTAuMDQ1NCAgICAgICAgICBtaWdodCBiZSAxLjA4Mjd4
IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS42Nzc3Ky0wLjAyNTYgICAgID8gICAgICA1LjcwOTIrLTAuMTI3MiAg
ICAgICAgPwogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEu
ODMzMystMC4xNzY3ICAgICAgICAgICAgMS43NDMzKy0wLjAyMDQgICAgICAgICAgbWlnaHQgYmUg
MS4wNTE2eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNS4yNDUxKy0wLjU0NTMgICAgICAgICAgICA1LjA3NTUrLTAuMDM4NCAgICAg
ICAgICBtaWdodCBiZSAxLjAzMzR4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXBy
b3RvLW9yLXNlbGYgICAgICAgICAgICAgICA5LjI5MzQrLTEuOTY1MCAgICAgICAgICAgIDguNjg0
MystMi4xNjYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDcwMXggZmFzdGVyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjY3NDgrLTAuMDM3MCAgICAgPyAgICAgIDQuMTMwMistMC42MzM1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMTIzOXggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90
byAgICAgICAgICAgICAgIDguODcyNSstMS42MTk5ICAgICA/ICAgICAgOS4xMjYwKy0xLjM3NTYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjg2eCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY3MzUrLTAu
Mzk2MCAgICAgICAgICAgIDIuNjYzMCstMC41MzcwICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNzkwOCstMC43
MDI1ICAgICA/ICAgICAgOS4yMjUzKy0xLjMzOTYgICAgICAgID8gbWlnaHQgYmUgMS4wNDk0eCBz
bG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjc4
NTArLTAuMDMzNCAgICAgPyAgICAgIDEuNzk5MistMC4wODYwICAgICAgICA/CiAgIGdldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzY2MSstMC42MzA5
ICAgICAgICAgICAgNi41NzU3Ky0wLjEwOTMgICAgICAgICAgbWlnaHQgYmUgMS4wMjg5eCBmYXN0
ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmICAgICAgICAgICAgICAg
OS4yMzUwKy0xLjY4MjAgICAgICAgICAgICA4Ljg4MjgrLTEuOTE5NCAgICAgICAgICBtaWdodCBi
ZSAxLjAzOTd4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNTE0Ky0wLjc3MDAgICAgICAgICAg
ICAzLjA4NTQrLTAuMDIzMiAgICAgICAgICBtaWdodCBiZSAxLjA4NjJ4IGZhc3RlcgogICBnZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICA5LjQ1NjcrLTAu
Nzk4MiAgICAgICAgICAgIDguNTExNCstMS43NDcxICAgICAgICAgIG1pZ2h0IGJlIDEuMTExMXgg
ZmFzdGVyCiAgIGdldF9ieV92YWwtSW50MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuMDkyMistMC4wMTY2ICAgICA/ICAgICAgMS4xMTUxKy0wLjA0ODggICAgICAgID8gbWln
aHQgYmUgMS4wMjA5eCBzbG93ZXIKICAgZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMS45NDkzKy0wLjI4OTUgICAgID8gICAgICAxLjk1MDErLTAuMjI4
NCAgICAgICAgPwogICBnZXRfY2FsbGVlX3BvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjkzOTgrLTAuMjgzMSAgICAgICAgICAgIDIuNjgxMistMC4yNTk5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDk2NXggZmFzdGVyCiAgIGdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuNzkxMSstMC40MDc4ICAgICA/ICAgICAgMi45NjQxKy0w
LjU2MDkgICAgICAgID8gbWlnaHQgYmUgMS4wNjIweCBzbG93ZXIKICAgZ2V0dGVyLXByb3RvdHlw
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40MTk3Ky0wLjE1NDUgICAgID8g
ICAgICA0LjUxMDgrLTAuMjEzMyAgICAgICAgPyBtaWdodCBiZSAxLjAyMDZ4IHNsb3dlcgogICBn
ZXR0ZXItcmljaGFyZHMtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgODcwLjMzMDMr
LTMyLjg0NzUgICAgICAgICA4NDUuNzk4NystMTguMzU4OCAgICAgICAgIG1pZ2h0IGJlIDEuMDI5
MHggZmFzdGVyCiAgIGdldHRlci1yaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTUuMjUxOSstNy43NDMzICAgICA/ICAgICA2MC4xNDIyKy0yLjYzMDAgICAgICAgID8g
bWlnaHQgYmUgMS4wODg1eCBzbG93ZXIKICAgZ2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi44Nzk2Ky0wLjEzODUgICAgID8gICAgICAyLjk5NDUrLTAu
NTEyMiAgICAgICAgPyBtaWdodCBiZSAxLjAzOTl4IHNsb3dlcgogICBnbG9iYWwtb2JqZWN0LWFj
Y2Vzcy13aXRoLW11dGF0aW5nLXN0cnVjdHVyZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ2OTcrLTAuNzU1NCAgICAgPyAgICAgIDQu
NTE3MistMC42NDUxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNnggc2xvd2VyCiAgIGdsb2JhbC12
YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDAuNzUzMistMC4wNzUz
ICAgICAgICAgICAgMC42NzY1Ky0wLjEyOTkgICAgICAgICAgbWlnaHQgYmUgMS4xMTM1eCBmYXN0
ZXIKICAgZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC41MzUzKy0wLjAxMjEgICAgID8gICAgICAwLjUzODgrLTAuMDAzOSAgICAgICAgPwogICBoYXJk
LW92ZXJmbG93LWNoZWNrLWVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjE1NDArLTEu
NjIzOSAgICAgPyAgICAgMjQuMjcyMCstMy4xMzkwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4M3gg
c2xvd2VyCiAgIGhhcmQtb3ZlcmZsb3ctY2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjMuMDMyNSstMy40MzExICAgICAgICAgICAyMi44ODA2Ky0zLjY3NjMgICAgICAgIAogICBI
YXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAgICAgIDIxLjcxNjcr
LTEuODExNiAgICAgICAgICAgMjAuNzU2NystMS4xODg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2
M3ggZmFzdGVyCiAgIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjEuNjY0MistMC43Mjc1ICAgICAgICAgICAyMC44OTU2Ky0wLjcxNzYgICAgICAgICAg
bWlnaHQgYmUgMS4wMzY4eCBmYXN0ZXIKICAgSGFzaE1hcC1zdHJpbmctcHV0LWdldC1pdGVyYXRl
ICAgICAgICAgICAgICAgICAgICAyMy44ODE1Ky0zLjU1NDIgICAgICAgICAgIDIyLjI0NDkrLTAu
MTA4MCAgICAgICAgICBtaWdodCBiZSAxLjA3MzZ4IGZhc3RlcgogICBob2lzdC1tYWtlLXJvcGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc0OTErLTAuNDk5MSAgICAgPyAg
ICAgIDMuODEyMSstMC44MDkwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2OHggc2xvd2VyCiAgIGhv
aXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzU1MSstMC4wNzI0ICAg
ICAgICAgICAgMi43NDUwKy0wLjA2OTAgICAgICAgIAogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVj
dHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAxLjk3MTQrLTAuMjAxMyAgICAgICAgICAgIDEu
OTA1OSstMC4wMzMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0M3ggZmFzdGVyCiAgIGltdWwtZG91
YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTIyNSstMC4wNDU3
ICAgICAgICAgICAgMi44ODk1Ky0wLjE4NDUgICAgICAgICAgbWlnaHQgYmUgMS4wMTE0eCBmYXN0
ZXIKICAgaW11bC1pbnQtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC43MzM4Ky0wLjE2NzEgICAgID8gICAgICA0LjgzNzgrLTAuMTM3MSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMjB4IHNsb3dlcgogICBpbXVsLW1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjgwOTgrLTAuMTc5MiAgICAgPyAgICAgIDMuMDAzNystMC41ODU4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDY5MHggc2xvd2VyCiAgIGluLWZvdXItY2FzZXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuODUyNSstMS43ODY4ICAgICA/ICAgICAxNS4z
NTA2Ky0yLjEzNjcgICAgICAgID8gbWlnaHQgYmUgMS4wMzM1eCBzbG93ZXIKICAgaW4tb25lLWNh
c2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4zOTkwKy0wLjQ0OTMg
ICAgICAgICAgICA3LjM5MDArLTAuNTE5NSAgICAgICAgCiAgIGluLW9uZS1jYXNlLXRydWUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjMxOCstMC4xNDc5ICAgICA/ICAgICAg
Ny45ODkzKy0xLjAyMzggICAgICAgID8gbWlnaHQgYmUgMS4xMDQ4eCBzbG93ZXIKICAgaW4tdHdv
LWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy40NDc5Ky0wLjUw
NzQgICAgICAgICAgICA3LjQwNDgrLTAuNDEwNSAgICAgICAgCiAgIGluZGV4ZWQtcHJvcGVydGll
cy1pbi1vYmplY3RzICAgICAgICAgICAgICAgICAgICAgIDIuODg3MystMC43MTM0ICAgICAgICAg
ICAgMi40OTQ0Ky0wLjAxNjkgICAgICAgICAgbWlnaHQgYmUgMS4xNTc1eCBmYXN0ZXIKICAgaW5m
ZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdi1uby1pbmxpbmUgICAgICAgICAgICAgMi44MTgyKy0w
LjA2NjIgICAgID8gICAgICAyLjkwNzMrLTAuMTU0NyAgICAgICAgPyBtaWdodCBiZSAxLjAzMTZ4
IHNsb3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92ICAgICAgICAgICAgICAgICAg
ICAgICA2LjY2MTMrLTAuNTUzOSAgICAgICAgICAgIDYuNTMzNystMC4zNjg2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE5NXggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8t
c2NvcGUtbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTAuODIzOCstMi45NjYyICAgICAgICAgICAgOS44ODE5Ky0wLjA3Nzgg
ICAgICAgICAgbWlnaHQgYmUgMS4wOTUzeCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10
aGVuLXB1dC10by1zY29wZSAgICAgICAgICAgICAyMi4zMTg1Ky0xLjMxNTkgICAgICAgICAgIDIx
LjgzMjcrLTEuMDk0MyAgICAgICAgICBtaWdodCBiZSAxLjAyMjN4IGZhc3RlcgogICBpbmZlci1j
bG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlci1uby1pbmxpbmUgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC45MzMwKy0wLjcwMTIgICAgICAg
ICAgIDQ4LjY4MjkrLTAuNDE5NSAgICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1y
ZWVudGVyICAgICAgICAgICAgICAgICAgMjIuMzQ2NystMi4xMDQxICAgICA/ICAgICAyMy45NTE3
Ky0xLjcwODkgICAgICAgID8gbWlnaHQgYmUgMS4wNzE4eCBzbG93ZXIKICAgaW5mZXItY29uc3Rh
bnQtZ2xvYmFsLXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgMi4zNzY1Ky0wLjA2NjQgICAg
ID8gICAgICAyLjQ4NzUrLTAuMTcwNyAgICAgICAgPyBtaWdodCBiZSAxLjA0Njd4IHNsb3dlcgog
ICBpbmZlci1jb25zdGFudC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjE5
MTArLTAuNTY5MCAgICAgICAgICAgIDIuMTQwNCstMC40NjgyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDIzNnggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdGVuLXZhcnMgICAgICAgICAg
ICAgICAgICAgIDYuNTA4MistMC43MDI1ICAgICAgICAgICAgNi4wNjYyKy0wLjA4OTIgICAgICAg
ICAgbWlnaHQgYmUgMS4wNzI5eCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10d28t
dmFycyAgICAgICAgICAgICAgICAgICAgNS45OTcwKy0wLjQ4MzkgICAgICAgICAgICA1LjY2MTkr
LTAuMDgyNCAgICAgICAgICBtaWdodCBiZSAxLjA1OTJ4IGZhc3RlcgogICBpbmZlci1vbmUtdGlt
ZS1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjgyMzIrLTAuNjEyNyAgICAg
ICAgICAgIDUuNjU3MSstMC4xNjEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5NHggZmFzdGVyCiAg
IGluZmVyLW9uZS10aW1lLWRlZXAtY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgMTAuNTIy
NystMC4yODQ2ICAgICAgICAgICAxMC40ODAzKy0wLjQ1MTIgICAgICAgIAogICBpbmxpbmUtYXJn
dW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA1MTYrLTAuMjg2NiAg
ICAgPyAgICAgIDMuMjg4OSstMC41MjcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDc3OHggc2xvd2Vy
CiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3MgICAgICAgICAgICAgICAgICAgIDMu
Mjk2NistMC4zNzUyICAgICAgICAgICAgMy4yNDM3Ky0wLjM5MzYgICAgICAgICAgbWlnaHQgYmUg
MS4wMTYzeCBmYXN0ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1sb2NhbC1lc2NhcGUgICAgICAgICAg
ICAgICAgICAgICAgMy4zNjkzKy0wLjE5NTUgICAgID8gICAgICAzLjU3NzErLTAuNDEyNyAgICAg
ICAgPyBtaWdodCBiZSAxLjA2MTd4IHNsb3dlcgogICBpbmxpbmUtZ2V0LXNjb3BlZC12YXIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEyMDUrLTAuMDc5NiAgICAgICAgICAgIDIuMDc2
MystMC4wOTIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxM3ggZmFzdGVyCiAgIGlubGluZWQtcHV0
LWJ5LWlkLXRyYW5zaXRpb24gICAgICAgICAgICAgICAgICAgICAgIDcuMDY0MistMC4zNjUzICAg
ICA/ICAgICAgNy4yMTczKy0wLjI0NDIgICAgICAgID8gbWlnaHQgYmUgMS4wMjE3eCBzbG93ZXIK
ICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5nLXRyYW5zaXRpb24gICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS40MTcwKy0wLjQ3
NTggICAgID8gICAgIDM2LjcwNDUrLTIuOTk1OCAgICAgICAgPyBtaWdodCBiZSAxLjAzNjR4IHNs
b3dlcgogICBpbmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zeW1ib2wtdHJhbnNpdGlvbiAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjQyMzAr
LTAuMzAzMCAgICAgPyAgICAgMzUuNjkzMSstMS4yNzg0ICAgICAgICA/CiAgIGluc3RhbmNlb2Yt
Ym91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMzI5MistMC4yODIwICAg
ICA/ICAgICAyMC44MjYxKy0xLjQ1NzAgICAgICAgID8gbWlnaHQgYmUgMS4wNzc0eCBzbG93ZXIK
ICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgMy45
MjY4Ky0wLjMwNzYgICAgICAgICAgICAzLjgzMTUrLTAuMDg0NCAgICAgICAgICBtaWdodCBiZSAx
LjAyNDl4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAg
ICAgICAgICAgIDE1LjA0MjErLTAuNTEyMiAgICAgPyAgICAgMTUuMDYwOSstMC40ODkwICAgICAg
ICA/CiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAg
IDMuNzQyOCstMC4yMzc4ICAgICAgICAgICAgMy43Mjg3Ky0wLjE2NTEgICAgICAgIAogICBpbnQt
b3Itb3RoZXItYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYwMjErLTAu
NDQwNSAgICAgICAgICAgIDQuMzUyOCstMC4xMTQ4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU3M3gg
ZmFzdGVyCiAgIGludC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAg
ICAgIDMuMjgwMistMC4yMzE4ICAgICAgICAgICAgMy4yNDU1Ky0wLjE5MDggICAgICAgICAgbWln
aHQgYmUgMS4wMTA3eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwg
ICAgICAgICAgICAgICAgICAgMy40NDY0Ky0wLjAyOTcgICAgID8gICAgICAzLjQ2OTUrLTAuMDkw
NyAgICAgICAgPwogICBpbnQtb3Itb3RoZXItbWluLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICAzLjQ2MzUrLTAuNTMwNyAgICAgICAgICAgIDMuMjg3MistMC4xNzQ2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDUzNnggZmFzdGVyCiAgIGludC1vci1vdGhlci1tb2QtdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgIDMuMTE4MystMC4xNzA0ICAgICA/ICAgICAgMy4xNDUwKy0w
LjExMDYgICAgICAgID8KICAgaW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgNC44MDE1Ky0wLjEwMDQgICAgID8gICAgICA0Ljk1NTkrLTAuMzYyMCAgICAg
ICAgPyBtaWdodCBiZSAxLjAzMjJ4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjcxMTgrLTAuMTI2NCAgICAgPyAgICAgIDMuNzMy
NSstMC4xMDg0ICAgICAgICA/CiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgMTUuMjc2NSstMS4zNDcxICAgICAgICAgICAxNC42Nzg4Ky0xLjIzMjQg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDA3eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLXN1Yi10aGVu
LWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS43MzkzKy0wLjQzNjEgICAgID8gICAgICA1
Ljc5NjYrLTAuMzAwMSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjk0NDMrLTAuMTcxMyAgICAgPyAgICAgIDQuMDQ4NSstMC4z
MDcyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2NHggc2xvd2VyCiAgIGludC1vdmVyZmxvdy1sb2Nh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjE5MystMC4xNzQ5ICAgICAgICAg
ICAgMy41MzMzKy0wLjA1ODkgICAgICAgICAgbWlnaHQgYmUgMS4wMjQzeCBmYXN0ZXIKICAgSW50
MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAzOC41NDgzKy0y
LjIyMDUgICAgID8gICAgIDM4Ljk1NzkrLTAuNzYxMSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDZ4
IHNsb3dlcgogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAg
ICAgIDE0Ljc2NDArLTEuNTA5NiAgICAgPyAgICAgMTUuMjEyNCstMC45NDMwICAgICAgICA/IG1p
Z2h0IGJlIDEuMDMwNHggc2xvd2VyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTQuMzk4MystMS4wMTE4ICAgICA/ICAgICAxNC43Nzk4Ky0yLjAz
MjQgICAgICAgID8gbWlnaHQgYmUgMS4wMjY1eCBzbG93ZXIKICAgSW50MTZBcnJheS1sb2FkLWlu
dC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS41MTgwKy0wLjAxMDAgICAgID8gICAg
ICAxLjU4MTcrLTAuMjA2MSAgICAgICAgPyBtaWdodCBiZSAxLjA0MjB4IHNsb3dlcgogICBJbnQx
NkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDM1LjI2NTkrLTEu
MjI3NCAgICAgPyAgICAgMzUuODE4MCstMS4xOTMwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1N3gg
c2xvd2VyCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTEuNzQ1NistMC43ODYxICAgICA/ICAgICAxMS43NDg0Ky0wLjkwMzIgICAgICAgID8KICAg
SW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA0MS45NTgw
Ky0wLjc2NTAgICAgICAgICAgIDQxLjY2MDgrLTAuNDkzMCAgICAgICAgCiAgIEludDMyQXJyYXkt
YWxsb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTYwOSstMC4yODQ0ICAg
ICA/ICAgICAgMi43MzIxKy0wLjQyMzAgICAgICAgID8gbWlnaHQgYmUgMS4wNjY4eCBzbG93ZXIK
ICAgSW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAgICAgICAgICAgNi4w
OTA1Ky0wLjI5NTggICAgICAgICAgICA2LjAzNDErLTAuMjI5NSAgICAgICAgCiAgIGludDUyLXNw
aWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjkzMistMC40Mjg2
ICAgICAgICAgICAgNC41NDE5Ky0wLjEwODAgICAgICAgICAgbWlnaHQgYmUgMS4wMzMzeCBmYXN0
ZXIKICAgSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAz
NS4yNDU5Ky0wLjk5NTkgICAgICAgICAgIDM0Ljg0NTUrLTAuODYwNyAgICAgICAgICBtaWdodCBi
ZSAxLjAxMTV4IGZhc3RlcgogICBJbnQ4QXJyYXktbG9hZC13aXRoLWJ5dGVMZW5ndGggICAgICAg
ICAgICAgICAgICAgICAzLjI3OTYrLTAuMTg2NyAgICAgICAgICAgIDMuMjEwOSstMC4wNTc1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDIxNHggZmFzdGVyCiAgIEludDhBcnJheS1sb2FkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDYzNSstMC41OTcyICAgICAgICAgICAgMy4y
NTcwKy0wLjA4NTMgICAgICAgICAgbWlnaHQgYmUgMS4wNjM0eCBmYXN0ZXIKICAgaW50ZWdlci1k
aXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS43MzUzKy0wLjM1NTkg
ICAgICAgICAgICA5LjY3OTMrLTAuMzI2MCAgICAgICAgCiAgIGludGVnZXItbW9kdWxvICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNTAyMCstMC4wMzk1ICAgICBeICAgICAg
MS4zNzAxKy0wLjAyNjkgICAgICAgIF4gZGVmaW5pdGVseSAxLjA5NjN4IGZhc3RlcgogICBpcy1i
b29sZWFuLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0MzUrLTAu
MDIyMCAgICAgPyAgICAgIDIuNjEwOCstMC4yMjg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2NHgg
c2xvd2VyCiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuOTk0MystMC4xNDA1ICAgICAgICAgICAgMS45NTAxKy0wLjA3NzQgICAgICAgICAgbWln
aHQgYmUgMS4wMjI2eCBmYXN0ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlja3ktaW50ZXJuYWwt
ZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOS4zOTU1Ky0wLjc4MjcgICAgICAgICAgICA5LjA4MjkrLTAuMjQzNSAgICAgICAg
ICBtaWdodCBiZSAxLjAzNDR4IGZhc3RlcgogICBpcy1mdW5jdGlvbi1mb2xkLXRyaWNreSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjc0MTArLTAuMDg2NSAgICAgPyAgICAgIDIuOTg4NSst
MC41MDI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDkwM3ggc2xvd2VyCiAgIGlzLWZ1bmN0aW9uLWZv
bGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDE3NystMC4yNTE1ICAgICAg
ICAgICAgMS45OTI4Ky0wLjE0OTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTI1eCBmYXN0ZXIKICAg
aXMtbnVtYmVyLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43Njgz
Ky0wLjE3MDEgICAgICAgICAgICAyLjc0NDgrLTAuMTkyMyAgICAgICAgCiAgIGlzLW51bWJlci1m
b2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTc1MistMC4xNzUwICAg
ICA/ICAgICAgMi4wNjczKy0wLjMzMzIgICAgICAgID8gbWlnaHQgYmUgMS4wNDY2eCBzbG93ZXIK
ICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC1mdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgMS45
ODU0Ky0wLjA5NTYgICAgICAgICAgICAxLjk2NDMrLTAuMDE3MSAgICAgICAgICBtaWdodCBiZSAx
LjAxMDh4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkLWxlc3MtdHJpY2t5ICAgICAg
ICAgICAgICAgICAyLjc5NDIrLTAuMjQzOSAgICAgICAgICAgIDIuNzYzOSstMC4xOTAxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDExMHggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtdHJp
Y2t5ICAgICAgICAgICAgICAgICAgICAgIDMuMDM4OSstMC4yNDE0ICAgICA/ICAgICAgMy4yMDA3
Ky0wLjM0MDAgICAgICAgID8gbWlnaHQgYmUgMS4wNTMyeCBzbG93ZXIKICAgaXMtb2JqZWN0LW9y
LW51bGwtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45NTg0Ky0wLjAyNzQgICAg
ID8gICAgICAxLjk3MjArLTAuMTUwMCAgICAgICAgPwogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlj
a2llci1mdW5jdGlvbiAgICAgICAgICAgICAgICAzLjE1MTIrLTAuNjA5MiAgICAgICAgICAgIDIu
NzY0NystMC4xMTIyICAgICAgICAgIG1pZ2h0IGJlIDEuMTM5OHggZmFzdGVyCiAgIGlzLW9iamVj
dC1vci1udWxsLXRyaWNraWVyLWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMDI0NystMC41MDc4ICAgICAg
ICAgICAgOS4zNDY4Ky0wLjIxOTUgICAgICAgICAgbWlnaHQgYmUgMS4wNzI1eCBmYXN0ZXIKICAg
aXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgMi43Mjkz
Ky0wLjAxNjcgICAgID8gICAgICAyLjk0NDArLTAuNTgxNSAgICAgICAgPyBtaWdodCBiZSAxLjA3
ODd4IHNsb3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24g
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni40MDMwKy0wLjQyNDAgICAgID8gICAgICA2LjQzNTgrLTAuNDY3NiAgICAgICAgPwogICBpcy1z
dHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc3NzArLTAu
MTg3MCAgICAgICAgICAgIDIuNzIxOSstMC4xMzUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwMngg
ZmFzdGVyCiAgIGlzLXN0cmluZy1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuOTc2MCstMC4xMDQ2ICAgICAgICAgICAgMS45MTcyKy0wLjAyMzQgICAgICAgICAgbWln
aHQgYmUgMS4wMzA2eCBmYXN0ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi40MTk4Ky0wLjEzNzMgICAgICAgICAgICAyLjM1MTcrLTAuMDk0
NyAgICAgICAgICBtaWdodCBiZSAxLjAyOTB4IGZhc3RlcgogICBpcy11bmRlZmluZWQtZm9sZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkxODIrLTAuMDk1OSAgICAgPyAgICAg
IDEuOTYyOCstMC4wMjczICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzMnggc2xvd2VyCiAgIEpTT05Q
LW5lZ2F0aXZlLTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMTc5OCstMC4w
MTU5ICAgICAgICAgICAgMC4xNzgwKy0wLjAxMjEgICAgICAgIAogICBsYXJnZS1pbnQtY2FwdHVy
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMzMzUrLTAuMjE1NiAgICAgPyAg
ICAgIDMuNTA1MSstMC4yNTU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUxNXggc2xvd2VyCiAgIGxh
cmdlLWludC1uZWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMzYwNSst
MC42NjE2ICAgICA/ICAgICAxMi4zNzQxKy0wLjk1OTQgICAgICAgID8KICAgbGFyZ2UtaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4wMDAzKy0wLjYxNTcgICAg
ID8gICAgIDExLjU1MjcrLTEuMDEwNyAgICAgICAgPyBtaWdodCBiZSAxLjA1MDJ4IHNsb3dlcgog
ICBsaWNtLWRyYWdvbnMtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgIDMwLjY2
ODMrLTIuMjMyOSAgICAgICAgICAgMzAuNDc3NystMC43MjI3ICAgICAgICAKICAgbGljbS1kcmFn
b25zLW92ZXJmbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC42MDM3Ky0zLjE2Mzcg
ICAgICAgICAgIDE3Ljg5OTArLTEuMDExNCAgICAgICAgICBtaWdodCBiZSAxLjAzOTR4IGZhc3Rl
cgogICBsaWNtLWRyYWdvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0
LjUwODIrLTAuNjc4MCAgICAgPyAgICAgMzQuOTY1MCstMS4yODY2ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDEzMnggc2xvd2VyCiAgIGxvYWQtdmFyYXJncy1lbGltaW5hdGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTcuOTg4MistMS4wMDgxICAgICA/ICAgICAxOC4yMjI1Ky0yLjE3MzUgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTMweCBzbG93ZXIKICAgbG9jYWxlLWNvbXBhcmUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyMi4wNjIxKy0yLjc0NDkgICAgID8gICAgIDIyLjgx
MjArLTIuNzgzNyAgICAgICAgPyBtaWdodCBiZSAxLjAzNDB4IHNsb3dlcgogICBsb2dpY2FsLW5v
dC13ZWlyZC10eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM1NDUrLTAuMTg2NyAg
ICAgPyAgICAgIDIuNDk1NCstMC4yOTY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU5OXggc2xvd2Vy
CiAgIGxvZ2ljYWwtbm90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NDQzNCstMC4xMjc4ICAgICAgICAgICAgMy40MDczKy0wLjA3MDYgICAgICAgICAgbWlnaHQgYmUg
MS4wMTA2eCBmYXN0ZXIKICAgbG90cy1vZi1maWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOC41MTM1Ky0yLjEwODEgICAgICAgICAgICA3LjYxMTcrLTAuMzY1MSAgICAg
ICAgICBtaWdodCBiZSAxLjExODV4IGZhc3RlcgogICBtYWtlLWluZGV4ZWQtc3RvcmFnZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM2NjYrLTAuMDM5MiAgICAgICAgICAgIDIuMzMw
NystMC4zNDI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NHggZmFzdGVyCiAgIG1ha2Utcm9wZS1j
c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTA5MystMC4xNjc0ICAg
ICAgICAgICAgMy4wODYyKy0wLjA4MjcgICAgICAgIAogICBtYW55LWZvcmVhY2gtY2FsbHMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjU4NzMrLTAuNDM4MSAgICAgPyAgICAgMTMu
MTY5MystMS41MDI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2Mnggc2xvd2VyCiAgIG1hbnktcmVw
ZWF0LXN0b3JlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuOTYzMystMC40MjAx
ICAgICAgICAgICAxNC45MTQ5Ky0wLjY3MzQgICAgICAgIAogICBtYXAtZm9yLWVhY2ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI4MTQrLTAuMTI0MCAgICAgPyAgICAg
IDQuMzQ5NSstMC4zMzYwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1OXggc2xvd2VyCiAgIG1hcC1m
b3Itb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNTQyMCstMC4x
NTY3ICAgICA/ICAgICAxMy45MzM4Ky0wLjI5ODYgICAgICAgID8gbWlnaHQgYmUgMS4wMjg5eCBz
bG93ZXIKICAgbWFyc2FnbGlhLWxhcmdlci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2Mi44NjU1Ky01Ljg1OTcgICAgICAgICAgIDYxLjE5NjgrLTAuNDQ2MSAgICAgICAgICBtaWdo
dCBiZSAxLjAyNzN4IGZhc3RlcgogICBtYXJzYWdsaWEtb3NyLWVudHJ5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE3LjM5MTErLTMuMDMxMiAgICAgICAgICAgMTYuODQ0MCstMS4zMjU4
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyNXggZmFzdGVyCiAgIG1hdGgtcmFuZG9tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNjY0MistMC45ODk0ICAgICAgICAgICAx
My40NTQwKy0wLjcxMTMgICAgICAgICAgbWlnaHQgYmUgMS4wMTU2eCBmYXN0ZXIKICAgbWF0aC10
cnVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4yMDA3Ky0wLjA3
ODEgICAgID8gICAgICA1LjQ0MjcrLTAuNDY5MyAgICAgICAgPyBtaWdodCBiZSAxLjA0NjV4IHNs
b3dlcgogICBtYXRoLXdpdGgtb3V0LW9mLWJvdW5kcy1hcnJheS12YWx1ZXMgICAgICAgICAgICAg
IDI2Ljg0NTErLTEuNjM2NiAgICAgPyAgICAgMjcuMjgwNCstMS43OTk2ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE2Mnggc2xvd2VyCiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMDkxNistMC4yMDkwICAgICAgICAgICAgMi4wODQ4Ky0wLjA4MDcg
ICAgICAgIAogICBtZWdhbW9ycGhpYy1sb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDI5LjQ2MTUrLTMuNTIyMSAgICAgICAgICAgMjcuODE4OCstMS4wNDg3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDU5MXggZmFzdGVyCiAgIG1ldGhvZC1vbi1udW1iZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTYuNTM2NistMy4zMzY1ICAgICAgICAgICAxNi4zMDgwKy0xLjQ2
OTggICAgICAgICAgbWlnaHQgYmUgMS4wMTQweCBmYXN0ZXIKICAgbWluLWJvb2xlYW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yMDYyKy0wLjQzOTAgICAgICAgICAg
ICAyLjAxNTMrLTAuMDc2NSAgICAgICAgICBtaWdodCBiZSAxLjA5NDh4IGZhc3RlcgogICBtaW51
cy1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjA4OTUrLTAu
MDQ4MSAgICAgPyAgICAgIDIuMzEyNistMC40MTUzICAgICAgICA/IG1pZ2h0IGJlIDEuMTA2N3gg
c2xvd2VyCiAgIG1pbnVzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuODQzMSstMC4xMjM0ICAgICA/ICAgICAgMS44ODY0Ky0wLjI2NzQgICAgICAgID8gbWln
aHQgYmUgMS4wMjM1eCBzbG93ZXIKICAgbWlzYy1zdHJpY3QtZXEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxOC4yMTI2Ky0yLjM2MDggICAgID8gICAgIDE5LjM0NDgrLTIuNzA2
OSAgICAgICAgPyBtaWdodCBiZSAxLjA2MjJ4IHNsb3dlcgogICBtb2QtYm9vbGVhbi1kb3VibGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjU2NDMrLTAuMTAzNCAgICAgPyAgICAg
IDguNzI2NystMC4zNjM2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5MHggc2xvd2VyCiAgIG1vZC1i
b29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzM4NSstMC4z
NDQ2ICAgICAgICAgICAgNi43Mjc4Ky0wLjY4NzMgICAgICAgIAogICBtdWwtYm9vbGVhbi1kb3Vi
bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ4OTkrLTAuMDU2MCAgICAgPyAg
ICAgIDIuNTM4NSstMC4xNjM0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5NXggc2xvd2VyCiAgIG11
bC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDg2MCst
MC4wNDI4ICAgICA/ICAgICAgMi4yMDAwKy0wLjExMDkgICAgICAgID8gbWlnaHQgYmUgMS4wNTQ3
eCBzbG93ZXIKICAgbmVnLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4yMTAyKy0wLjA0OTUgICAgID8gICAgICAyLjMxMDErLTAuNDIxMyAgICAgICAgPyBt
aWdodCBiZSAxLjA0NTJ4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLWRpdmlkZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjI2MDMrLTAuMDExMyAgICAgPyAgICAgIDAuMjY3NCstMC4w
MTU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Mnggc2xvd2VyCiAgIG5lZ2F0aXZlLXplcm8tbW9k
dWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjY4MCstMC4wMjM2ICAgICA/ICAg
ICAgMC4yNzA1Ky0wLjAxNzcgICAgICAgID8KICAgbmVnYXRpdmUtemVyby1uZWdhdGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4yNzE1Ky0wLjAzMDQgICAgICAgICAgICAwLjI1MDQr
LTAuMDI0NSAgICAgICAgICBtaWdodCBiZSAxLjA4NDN4IGZhc3RlcgogICBuZXN0ZWQtZnVuY3Rp
b24tcGFyc2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjMzMTMrLTAuNTE2NSAgICAg
PyAgICAgMzAuOTIyMSstMS4zMjIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5NXggc2xvd2VyCiAg
IG5ldy1hcnJheS1idWZmZXItZGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzEuNjc5
NistMC4yNzY2ICAgICA/ICAgICA3Mi4wNzY5Ky0wLjk3MjggICAgICAgID8KICAgbmV3LWFycmF5
LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43NTQ0Ky0wLjIzMjEg
ICAgID8gICAgICA0Ljc1NzkrLTAuMjA3MiAgICAgICAgPwogICBuZXctYXJyYXktZGVhZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjMyOTgrLTAuMTM5OSAgICAgPyAgICAg
IDYuNTU4MistMC4zNzQzICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2MXggc2xvd2VyCiAgIG5ldy1h
cnJheS1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODkwMystMC4x
NzQyICAgICA/ICAgICAgMy4wNTI2Ky0wLjU5MzYgICAgICAgID8gbWlnaHQgYmUgMS4wNTYxeCBz
bG93ZXIKICAgbm8taW5saW5lLWNvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyNy44OTM3Ky0wLjEzODQgICAgID8gICAgIDI4Ljc3NTArLTEuMzc5MiAgICAgICAgPyBtaWdo
dCBiZSAxLjAzMTZ4IHNsb3dlcgogICBudW1iZXItdGVzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjUzMDUrLTAuMDU1NyAgICAgPyAgICAgIDIuNTgyNSstMC4zMDk4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwNXggc2xvd2VyCiAgIG9iamVjdC1hbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDg2NSstMC4wNTkxICAgICA/ICAgICAg
NC40OTA1Ky0wLjA0MzEgICAgICAgID8KICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4xOTMzKy0wLjAzMzYgICAgID8gICAgICA0LjYwMTQrLTAu
ODkwMyAgICAgICAgPyBtaWdodCBiZSAxLjA5NzN4IHNsb3dlcgogICBvYmplY3QtZ2V0LW93bi1w
cm9wZXJ0eS1zeW1ib2xzLW9uLWxhcmdlLWFycmF5ICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTAzMystMC4yNzYyICAgICAgICAgICAg
MS4wNDUyKy0wLjEwOTIgICAgICAgICAgbWlnaHQgYmUgMS4wNTU2eCBmYXN0ZXIKICAgb2JqZWN0
LWludC1hZGQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4zMTY1Ky0wLjUz
NjQgICAgICAgICAgIDEwLjAyODcrLTAuMTMzOSAgICAgICAgICBtaWdodCBiZSAxLjAyODd4IGZh
c3RlcgogICBvYmplY3QtaW50LWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEyLjI3MDArLTAuMzA3OSAgICAgICAgICAgMTIuMDM2NistMC4yODgxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDE5NHggZmFzdGVyCiAgIG9iamVjdC1pbnQtYW5kLWFycmF5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTAuMTc1MCstMC42MzM1ICAgICA/ICAgICAxMC40ODgyKy0wLjgwMTQg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzA4eCBzbG93ZXIKICAgb2JqZWN0LWludC1tdWwtYXJyYXkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC45ODU2Ky0xLjA5NzggICAgICAgICAgICA4
LjYwMDgrLTAuMTM5OSAgICAgICAgICBtaWdodCBiZSAxLjA0NDd4IGZhc3RlcgogICBvYmplY3Qt
aW50LXN1Yi1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjY0MzcrLTAuNTI4
NiAgICAgPyAgICAgIDcuNzk4NSstMC42MjA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwM3ggc2xv
d2VyCiAgIG9iamVjdC1pbnQtc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTIuNjU4MystMC42MzIyICAgICAgICAgICAxMi4yMDczKy0wLjU0MzEgICAgICAgICAgbWlnaHQg
YmUgMS4wMzY5eCBmYXN0ZXIKICAgb2JqZWN0LWxzaGlmdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC41NDU0Ky0wLjA4MjIgICAgID8gICAgICA0LjgwNDArLTAuNDkzOCAg
ICAgICAgPyBtaWdodCBiZSAxLjA1Njl4IHNsb3dlcgogICBvYmplY3Qtb3IgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc0NjUrLTAuNTYzOSAgICAgICAgICAgIDQu
NTUzNSstMC4yMTc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQyNHggZmFzdGVyCiAgIG9iamVjdC1y
c2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjIxNSstMC4xNDYx
ICAgICAgICAgICAgNC42MDk5Ky0wLjI2OTQgICAgICAgIAogICBvYmplY3QtdGVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM2MzYrLTAuMTMzOCAgICAgPyAgICAg
IDIuNDcyNSstMC4yNjgzICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2MXggc2xvd2VyCiAgIG9iamVj
dC11cnNoaWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjUxMistMC4x
NjA0ICAgICAgICAgICAgNC41MTI1Ky0wLjAzNjMgICAgICAgICAgbWlnaHQgYmUgMS4wMzA3eCBm
YXN0ZXIKICAgb2JqZWN0LXhvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC42MDYwKy0wLjI1NjggICAgICAgICAgICA0LjUwMDUrLTAuMDY5NyAgICAgICAgICBtaWdo
dCBiZSAxLjAyMzR4IGZhc3RlcgogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5LXRha2VuICAgICAg
ICAgICAgICAgICAgICAgMTA1LjgyMjgrLTIuODAxNyAgICAgPyAgICAxMDkuNDc3MystMTAuNTg0
MyAgICAgICA/IG1pZ2h0IGJlIDEuMDM0NXggc2xvd2VyCiAgIG9idmlvdXMtc2luay1wYXRob2xv
Z3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuMzQ2OSstMS4zNjQ1ICAgICA/ICAgICAx
Ny45MjYzKy0yLjk1NzQgICAgICAgID8gbWlnaHQgYmUgMS4wMzM0eCBzbG93ZXIKICAgb2J2aW91
c2x5LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAxNS40NzgxKy0yLjg2
NzIgICAgICAgICAgIDE0LjkyMTUrLTAuNjc4MSAgICAgICAgICBtaWdodCBiZSAxLjAzNzN4IGZh
c3RlcgogICBwbHVzLWJvb2xlYW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjg3MTUrLTAuMTA5NyAgICAgPyAgICAgIDEuOTE2NSstMC4xODIwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDI0MXggc2xvd2VyCiAgIHBsdXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMTQ5MistMC4xMDc4ICAgICA/ICAgICAgMi4xNTU2Ky0wLjE2NDgg
ICAgICAgID8KICAgcGx1cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS44NjM3Ky0wLjA4NDAgICAgICAgICAgICAxLjc5ODUrLTAuMDM2MSAgICAgICAgICBt
aWdodCBiZSAxLjAzNjJ4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJlbnQtcHJv
dG90eXBlcy1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4yMDEwKy0wLjA0MzIgICAgID8gICAgICAyLjQzNTErLTAuNDE5MSAg
ICAgICAgPyBtaWdodCBiZSAxLjEwNjR4IHNsb3dlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZm
ZXJlbnQtcHJvdG90eXBlcyAgICAgICAgICAgICAyLjE4MzUrLTAuMDQ2OSAgICAgPyAgICAgIDIu
MTkwMSstMC4wOTg3ICAgICAgICA/CiAgIHBvbHktY2hhaW4tYWNjZXNzLXNpbXBsZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuMjc4NistMC4xNTM1ICAgICAgICAgICAgMi4yMjI3Ky0wLjEy
MzggICAgICAgICAgbWlnaHQgYmUgMS4wMjUyeCBmYXN0ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3Mg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yNzQ1Ky0wLjE4NzAgICAgICAgICAg
ICAyLjE5NDIrLTAuMTA2NSAgICAgICAgICBtaWdodCBiZSAxLjAzNjZ4IGZhc3RlcgogICBwb2x5
LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5LjIwNzgrLTMu
Mzk3MSAgICAgICAgICAgNDguMjUyNSstMS4yNTg1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5OHgg
ZmFzdGVyCiAgIHBvbHltb3JwaGljLWFycmF5LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuMTU0OCstMC4zMDY4ICAgICA/ICAgICAgMS4zMDU1Ky0wLjQ2NjYgICAgICAgID8gbWln
aHQgYmUgMS4xMzA1eCBzbG93ZXIKICAgcG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMS43ODg3Ky0wLjA1MTMgICAgID8gICAgICAxLjkwMjMrLTAuMzk3
NyAgICAgICAgPyBtaWdodCBiZSAxLjA2MzV4IHNsb3dlcgogICBwb2x5bW9ycGhpYy1wdXQtYnkt
aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjcyNTgrLTIuMzMyNCAgICAgICAgICAg
MjUuMjEwNystMi40MjAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwNHggZmFzdGVyCiAgIHBvbHlt
b3JwaGljLXB1dC1ieS12YWwtd2l0aC1zdHJpbmcgICAgICAgICAgICAgICAgMjUuNTE0MSstMS45
MTk4ICAgICA/ICAgICAyNi4zOTA3Ky0zLjA1NTAgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ0eCBz
bG93ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAg
ICAyOC43NjQ1Ky04LjMyMDQgICAgICAgICAgIDI2Ljg1MjIrLTEuODM4NiAgICAgICAgICBtaWdo
dCBiZSAxLjA3MTJ4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDExLjU2NTUrLTAuNDc4NyAgICAgPyAgICAgMTIuOTc4NCstMi4wMDA4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTIyMnggc2xvd2VyCiAgIHBvbHl2YXJpYW50LW1vbm9tb3Jw
aGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgIDMuMTY4NSstMC4wNjUzICAgICA/ICAgICAg
My4xODAyKy0wLjA1MDEgICAgICAgID8KICAgcHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMC4xNDA2Ky0wLjI1NTQgICAgICAgICAgIDEwLjEzMjQrLTAu
MzU4NSAgICAgICAgCiAgIHByb3RvdHlwZS1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1wcm90b3R5cGUg
ICAgICAgICAgIDQuMjc3MystMC43NDg1ICAgICAgICAgICAgMy45MTkzKy0wLjAyMjcgICAgICAg
ICAgbWlnaHQgYmUgMS4wOTE0eCBmYXN0ZXIKICAgcHV0LWJ5LWlkLXJlcGxhY2UtYW5kLXRyYW5z
aXRpb24gICAgICAgICAgICAgICAgICAgNi4zNjcyKy0xLjA2ODggICAgICAgICAgICA2LjMxNjAr
LTAuOTIyNCAgICAgICAgCiAgIHB1dC1ieS1pZC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgICAgICAg
ICAgICAgICAgICAgIDIuMTQxMCstMC4wNDg4ICAgICA/ICAgICAgMi4zNDE2Ky0wLjQ1OTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wOTM3eCBzbG93ZXIKICAgcHV0LWJ5LWlkLXRyYW5zaXRpb24td2l0
aC1pbmRleGluZy1oZWFkZXIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMC40OTI3Ky0wLjgyNjAgICAgICAgICAgIDEwLjE5MTUrLTAuNzM5
NyAgICAgICAgICBtaWdodCBiZSAxLjAyOTZ4IGZhc3RlcgogICBwdXQtYnktaWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjUzNzUrLTAuNTY3NyAgICAgPyAgICAg
IDguNjIxNystMC4yODAzICAgICAgICA/CiAgIHB1dC1ieS12YWwtZGlyZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAuMjk4NSstMC4wMjcyICAgICA/ICAgICAgMC4zMTIyKy0w
LjAxNzAgICAgICAgID8gbWlnaHQgYmUgMS4wNDU4eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC1sYXJn
ZS1pbmRleC1ibGFuay1pbmRleGluZy10eXBlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTI2MistMC4wOTgzICAgICA/ICAgICAgNC4x
NjIyKy0wLjM4NDQgICAgICAgID8KICAgcHV0LWJ5LXZhbC1tYWNoaW5lLWludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi42OTAwKy0wLjQ4MTAgICAgICAgICAgICAyLjQyODUrLTAuMDc2
MiAgICAgICAgICBtaWdodCBiZSAxLjEwNzd4IGZhc3RlcgogICBwdXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOS44MzIwKy0wLjk2MzcgICAgICAgICAgICA5LjU5
NzgrLTAuNjc0NiAgICAgICAgICBtaWdodCBiZSAxLjAyNDR4IGZhc3RlcgogICBwdXQtYnktdmFs
LXdpdGgtc3RyaW5nLXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODY5OSstMC4xMjAwICAgICA/ICAg
ICAgMi44ODAxKy0wLjAyOTQgICAgICAgID8KICAgcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOC43Nzk1Ky0wLjEzODEgICAgID8gICAgICA5LjA1ODAr
LTAuMzc4NCAgICAgICAgPyBtaWdodCBiZSAxLjAzMTd4IHNsb3dlcgogICBwdXQtYnktdmFsLXdp
dGgtc3ltYm9sLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yNTUxKy0wLjU2NjQgICAgICAgICAg
ICA5LjAwMTUrLTAuMTM3NCAgICAgICAgICBtaWdodCBiZSAxLjAyODJ4IGZhc3RlcgogICBwdXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDk4NSstMC4xNDM4ICAg
ICA/ICAgICAgMi41NDE2Ky0wLjI0OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTczeCBzbG93ZXIK
ICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4w
NTU3Ky0wLjQ0NTQgICAgID8gICAgICA5LjA1NjArLTAuNTc2MyAgICAgICAgPwogICByYXJlLW9z
ci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjQyNDgrLTAuODc5
MyAgICAgICAgICAgMTEuMjE1MystMC44MjU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4N3ggZmFz
dGVyCiAgIHJheXRyYWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAg
IDUuNDE0NSstMC42MDA5ICAgICAgICAgICAgNS4zMTcyKy0wLjczNjggICAgICAgICAgbWlnaHQg
YmUgMS4wMTgzeCBmYXN0ZXIKICAgcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOC4xMDk4Ky0wLjMzNzQgICAgICAgICAgICA3Ljg5ODcrLTAuMDk1MiAg
ICAgICAgICBtaWdodCBiZSAxLjAyNjd4IGZhc3RlcgogICByZWdleHAtZXhlYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjEwODgrLTAuNTc5NyAgICAgPyAgICAgMzEu
MTEyMistMC45NjE3ICAgICAgICA/CiAgIHJlZ2V4cC1sYXN0LWluZGV4ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDguMTI0NistMC4xMDE2ICAgICA/ICAgICAgOC41OTI0Ky0wLjgz
NTggICAgICAgID8gbWlnaHQgYmUgMS4wNTc2eCBzbG93ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1p
cy1ub3QtaW5zdGFuY2UgICAgICAgICAgICAgICAgICAgMC4zMzQ1Ky0wLjA3MjkgICAgICAgICAg
ICAwLjMyMTErLTAuMDExOSAgICAgICAgICBtaWdodCBiZSAxLjA0MTh4IGZhc3RlcgogICByZWdl
eHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjY3NDcrLTAuMDU4
MCAgICAgPyAgICAgIDAuNzI0NystMC4xODYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDc0MXggc2xv
d2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMiAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LjIyMjkrLTAuMDI1OSAgICAgPyAgICAgIDAuMjI4MCstMC4wMDIzICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIyN3ggc2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMS4zMjg3Ky0wLjA0MDAgICAgID8gICAgICAxLjM0OTgrLTAuMDIwOCAgICAgICAg
PyBtaWdodCBiZSAxLjAxNTh4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzMiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjIzMzMrLTAuMDE3MyAgICAgPyAgICAgIDAuMjUwMSstMC4w
MTc2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxOXggc2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjQwMistMC4wMDQxICAgICA/
ICAgICAgMC4yNDQ0Ky0wLjAxNDYgICAgICAgID8gbWlnaHQgYmUgMS4wMTc1eCBzbG93ZXIKICAg
cmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MjUxNSstMC4wMTQ4ICAgICAgICAgICAgMC4yNDc0Ky0wLjAyMDYgICAgICAgICAgbWlnaHQgYmUg
MS4wMTY1eCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtaWdub3JlQ2FzZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjI2MTgrLTAuMDU3MSAgICAgICAgICAgIDAuMjUyMistMC4w
MTcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4MHggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZSAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI2OTgrLTAuMDY1OCAg
ICAgICAgICAgIDAuMjU0OSstMC4wNDkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDU4N3ggZmFzdGVy
CiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNr
eSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLjI2MjMrLTAuMDQ3NSAgICAgPyAgICAgIDAuMjczMistMC4wNDM3ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDQxNHggc2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMzLXVuaWNvZGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC4yNDQxKy0wLjAwOTEgICAgID8gICAgICAwLjI0OTgrLTAu
MDE3MiAgICAgICAgPyBtaWdodCBiZSAxLjAyMzN4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI1MzUrLTAuMDA0MyAgICAgPyAgICAg
IDAuMjczOCstMC4wMTg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgwMnggc2xvd2VyCiAgIHJlZ2V4
cC1wcm90b3R5cGUtdGVzdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU5NTQrLTAuMDM0MSAg
ICAgPyAgICAgIDAuNjE0MistMC4wNDg1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxNnggc2xvd2Vy
CiAgIHJlZ2V4cC1wcm90b3R5cGUtdGVzdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yMzk4
Ky0wLjAzNjkgICAgICAgICAgICAwLjIyNzArLTAuMDA0MyAgICAgICAgICBtaWdodCBiZSAxLjA1
NjV4IGZhc3RlcgogICByZWdleHAtc2V0LWxhc3QtaW5kZXggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4Ljc5MjQrLTAuNDQ4MiAgICAgPyAgICAgIDguODU4MCstMC42MTQ5ICAgICAgICA/
CiAgIHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAgICAgICAgICAgICAgICAgMTQu
NzMxNCstMS4zMzIyICAgICA/ICAgICAxNC43NzIzKy0yLjM3MDAgICAgICAgID8KICAgcmVwZWF0
LW11bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAxOC4zODUxKy0xLjY0
NjMgICAgICAgICAgIDE4LjMwMzgrLTAuOTEyOSAgICAgICAgCiAgIHJpY2hhcmRzLWVtcHR5LXRy
eS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgNDIuODgzNSstMS40Nzg2ICAgICAgICAg
ICA0Mi44Mzg1Ky0xLjc4NTcgICAgICAgIAogICByaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjAyLjM2MjQrLTIuNjAxMCAgICAgPyAgICAyMDMuMDk4OSst
NS41ODMzICAgICAgICA/CiAgIHNjb3BlZC1hcmd1bWVudHMtbGVuZ3RoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuMDg4MSstMC4zMDA2ICAgICAgICAgICAgNS44ODQ1Ky0wLjA5NzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzQ2eCBmYXN0ZXIKICAgc2NvcGVkLWFyZ3VtZW50cy1vdmVycmlk
ZGVuLWxlbmd0aCAgICAgICAgICAgICAgICAgNi4yMTI5Ky0wLjMwODkgICAgICAgICAgICA2LjAy
NDArLTAuMzQ4OCAgICAgICAgICBtaWdodCBiZSAxLjAzMTN4IGZhc3RlcgogICBzY29wZWQtYXJn
dW1lbnRzLXBvc3NpYmx5LW92ZXJyaWRkZW4tbGVuZ3RoICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzYxOCstMC4xMTkyICAgICA/ICAg
ICAgNi40Nzg5Ky0wLjA5NTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTg0eCBzbG93ZXIKICAgc2V0
LWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40OTAyKy0w
LjI0MjQgICAgID8gICAgICAzLjQ5MjMrLTAuMjMwMyAgICAgICAgPwogICBzZXQtZm9yLW9mICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjY3ODcrLTEuMTc1MSAgICAg
ICAgICAgIDYuMjgyNSstMC4zODUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDYzMXggZmFzdGVyCiAg
IHNldHRlci1wcm90b3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTc5
NSstMC4wMDUwICAgICA/ICAgICAgNC4yMTc1Ky0wLjA5MzggICAgICAgID8KICAgc2V0dGVyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44NDQwKy0wLjIxMTUg
ICAgID8gICAgICAyLjkwNzQrLTAuMTMwMiAgICAgICAgPyBtaWdodCBiZSAxLjAyMjN4IHNsb3dl
cgogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIx
LjEwNzErLTEuMzE3OSAgICAgPyAgICAgMjIuMDcwMistMi42NjY1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQ1Nnggc2xvd2VyCiAgIHNpbXBsZS1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTYuNDkyNystMS40MTY0ICAgICA/ICAgICAxNy40OTA1Ky00LjQ2NjQgICAg
ICAgID8gbWlnaHQgYmUgMS4wNjA1eCBzbG93ZXIKICAgc2ltcGxlLXBvbHktY2FsbC1uZXN0ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45NzAyKy0xLjE2NDMgICAgICAgICAgICAzLjYz
ODUrLTAuMDcwMyAgICAgICAgICBtaWdodCBiZSAxLjA5MTJ4IGZhc3RlcgogICBzaW1wbGUtcG9s
eS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA3NTUrLTAuMDIxMSAg
ICAgPyAgICAgIDEuMDgyMystMC4wNDkwICAgICAgICA/CiAgIHNpbXBsZS1yZWdleHAtZXhlYy1m
b2xkaW5nLWZhaWwgICAgICAgICAgICAgICAgICAgIDIuNzc0NSstMC4xMzI1ICAgICAgICAgICAg
Mi43MjE3Ky0wLjI0NzAgICAgICAgICAgbWlnaHQgYmUgMS4wMTk0eCBmYXN0ZXIKICAgc2ltcGxl
LXJlZ2V4cC1leGVjLWZvbGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAxNS43Mjg3Ky0wLjg0
MzkgICAgID8gICAgIDE1Ljg5MjMrLTEuMjczMyAgICAgICAgPyBtaWdodCBiZSAxLjAxMDR4IHNs
b3dlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy1mYWlsLXdpdGgtaG9pc3RlZC1yZWdl
eHAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOC4wNzIyKy0wLjIyOTkgICAgID8gICAgICA4LjIyNTgrLTAuMzE5OSAgICAgICAgPyBtaWdo
dCBiZSAxLjAxOTB4IHNsb3dlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy1mYWlsICAg
ICAgICAgICAgICAgICAgIDE0LjI5OTQrLTEuMzczNCAgICAgPyAgICAgMTQuNDQzNystMC43OTA5
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMXggc2xvd2VyCiAgIHNpbXBsZS1yZWdleHAtdGVzdC1m
b2xkaW5nLXdpdGgtaG9pc3RlZC1yZWdleHAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOC45MzgyKy0wLjA2NTIgICAgID8gICAgICA5LjEz
MTcrLTAuNTgxNiAgICAgICAgPyBtaWdodCBiZSAxLjAyMTZ4IHNsb3dlcgogICBzaW1wbGUtcmVn
ZXhwLXRlc3QtZm9sZGluZyAgICAgICAgICAgICAgICAgICAgICAgIDE1LjE5NTErLTAuNjAwOCAg
ICAgPyAgICAgMTUuNzAzNystMC43NzI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzNXggc2xvd2Vy
CiAgIHNpbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYu
MTA2MCstMC42MDA4ICAgICAgICAgICAgNi4wMDg3Ky0wLjM2MDggICAgICAgICAgbWlnaHQgYmUg
MS4wMTYyeCBmYXN0ZXIKICAgc2luZ2xldG9uLXNjb3BlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1Ni45ODMwKy0zLjExMzQgICAgICAgICAgIDU2Ljk0NzArLTEuNzY1NSAgICAg
ICAgCiAgIHNpbmstZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuOTU2NistMC40ODc0ICAgICAgICAgICAgNC44MTE4Ky0wLjU3MzggICAgICAgICAgbWlnaHQg
YmUgMS4wMzAxeCBmYXN0ZXIKICAgc2luay1odWdlLWFjdGl2YXRpb24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMS41MzU1Ky0wLjYxNzEgICAgID8gICAgIDEyLjIzNzErLTAuNjc3NyAg
ICAgICAgPyBtaWdodCBiZSAxLjA2MDh4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LWRh
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjExNDQrLTAuMjUyOSAgICAgPyAgICAgMzYu
MTU5MystMC4yNTgyICAgICAgICA/CiAgIHNpbmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAg
ICAgICAgICAgICAgICAgICAgMzEuMTQ1NSstMC4xMzk5ICAgICA/ICAgICAzMi4xMTY3Ky0yLjA2
MzcgICAgICAgID8gbWlnaHQgYmUgMS4wMzEyeCBzbG93ZXIKICAgc2lua2FibGUtbmV3LW9iamVj
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4xNDc5Ky0wLjk2MDUgICAgICAgICAg
IDE2Ljk5NDYrLTAuODkxNSAgICAgICAgCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJnZW5j
ZSAgICAgICAgICAgICAgICAgICAgIDIuMzU0OSstMC4xNjE1ICAgICAgICAgICAgMi4yMzQyKy0w
LjAxMzcgICAgICAgICAgbWlnaHQgYmUgMS4wNTQweCBmYXN0ZXIKICAgc2xvdy1jb252ZXJnZW5j
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4zODM1Ky0wLjQzNTMgICAgICAg
ICAgICAyLjMwNDUrLTAuMzMyOCAgICAgICAgICBtaWdodCBiZSAxLjAzNDN4IGZhc3RlcgogICBz
bG93LXRlcm5hcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjY4NTMr
LTAuMzQxNiAgICAgPyAgICAgMTEuNzI3MCstMC41ODI4ICAgICAgICA/CiAgIHNvcnRpbmctYmVu
Y2htYXJrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNzgxMistMS4yNjMyICAg
ICA/ICAgICAxNy43NjQ1Ky0yLjY4NDUgICAgICAgID8gbWlnaHQgYmUgMS4wNTg2eCBzbG93ZXIK
ICAgc3BhcnNlLWNvbmRpdGlvbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4w
MDU0Ky0wLjA2MTEgICAgID8gICAgICAxLjA3ODMrLTAuMjQ2MSAgICAgICAgPyBtaWdodCBiZSAx
LjA3MjV4IHNsb3dlcgogICBzcGxpY2UtdG8tcmVtb3ZlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEyLjc4MTUrLTAuMjk2OCAgICAgPyAgICAgMTQuMjI1MystMS40NjM4ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMTEzMHggc2xvd2VyCiAgIHN0cmNhdC1jb25zdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuODQ3OCstMC4zNzcxICAgICAgICAgICAgNC44MTE0
Ky0wLjI1OTcgICAgICAgIAogICBzdHJjYXQtbGVuZ3RoLWNvbnN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjkxNjErLTAuNDc0OSAgICAgICAgICAgIDQuODc1MystMC41NjA1ICAg
ICAgICAKICAgc3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMS43MzUwKy0wLjUxNDkgICAgICAgICAgIDExLjQ1NTQrLTAuMjkyNyAgICAgICAgICBtaWdo
dCBiZSAxLjAyNDR4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LW9iamVjdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLjkwODIrLTAuMTEzNiAgICAgICAgICAgIDEuODIzNystMC4xMTU5
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2M3ggZmFzdGVyCiAgIHN0cmluZy1jb25jYXQtcGFpci1v
YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODg1OSstMC4xOTkzICAgICAgICAgICAg
MS44NTM1Ky0wLjE2OTggICAgICAgICAgbWlnaHQgYmUgMS4wMTc1eCBmYXN0ZXIKICAgc3RyaW5n
LWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NTk4Ky0wLjEw
MDQgICAgID8gICAgICAyLjYwMDgrLTAuMTYxMyAgICAgICAgPyBtaWdodCBiZSAxLjAxNjB4IHNs
b3dlcgogICBzdHJpbmctY29uY2F0LXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4LjM5MTIrLTAuNjM0OSAgICAgICAgICAgIDguMTk1MystMC4yNTQ5ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDIzOXggZmFzdGVyCiAgIHN0cmluZy1jb25zLXJlcGVhdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuMzMxOCstMS4zNDQ3ICAgICAgICAgICAgNS42NzQ3Ky0wLjEwNjkg
ICAgICAgICAgbWlnaHQgYmUgMS4xMTU4eCBmYXN0ZXIKICAgc3RyaW5nLWNvbnMtdG93ZXIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44MTY4Ky0wLjE2NjkgICAgID8gICAgICA1
Ljk5NTgrLTAuMzA0OSAgICAgICAgPyBtaWdodCBiZSAxLjAzMDh4IHNsb3dlcgogICBzdHJpbmct
ZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjE4NzgrLTEuMTc0
NiAgICAgPyAgICAgMTQuMzUzOCstMS4yMTI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDExN3ggc2xv
d2VyCiAgIHN0cmluZy1mcm9tLWNoYXItY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNTgyMCstMC40MDE3ICAgICAgICAgICAgNS41NjUxKy0wLjA4NDYgICAgICAgIAogICBzdHJp
bmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAgICAgICAgICAgICAgICAgICA0LjA1NDUrLTAu
MjA5NyAgICAgICAgICAgIDMuOTU5MystMC4wNzAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MHgg
ZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMtaW5zYW5lICAgICAgICAg
ICAgIDMuMjk3NCstMC4yMzY4ICAgICAgICAgICAgMy4yNjUwKy0wLjEzNzAgICAgICAgIAogICBz
dHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICA0LjA0MzAr
LTAuNDgwMSAgICAgICAgICAgIDMuNzc4MCstMC4wMzk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcw
MXggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuNzQ2MCstMC4wODgxICAgICA/ICAgICAgMS43NzUwKy0wLjA2ODggICAgICAgID8g
bWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMS45MTE1Ky0wLjQ4NjAgICAgICAgICAgICAxLjc5OTIrLTAu
MDYzOSAgICAgICAgICBtaWdodCBiZSAxLjA2MjR4IGZhc3RlcgogICBzdHJpbmctbG9uZy1pZGVu
dC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgIDExLjUzNDQrLTAuMjU2OCAgICAgPyAg
ICAgMTEuNjY4MCstMC42NDAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCiAgIHN0
cmluZy1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDIyOSst
MC43MjIzICAgICAgICAgICAgOS4yOTMyKy0wLjUzNjkgICAgICAgICAgbWlnaHQgYmUgMS4wMTM5
eCBmYXN0ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVj
dHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC43OTczKy0wLjA3MjcgICAgID8gICAgICAwLjc5OTkrLTAuMDYzMiAgICAgICAgPwogICBz
dHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yOTQ1Ky0w
LjAyODAgICAgID8gICAgICAwLjI5NjIrLTAuMDM1MSAgICAgICAgPwogICBzdHJpbmctcHJvdG90
eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNzAwKy0wLjAxNzkgICAgID8g
ICAgICAwLjMxMjMrLTAuMDQxMSAgICAgICAgPyBtaWdodCBiZSAxLjE1Njl4IHNsb3dlcgogICBz
dHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODM0Ky0w
LjAyNDEgICAgID8gICAgICAwLjI4NDMrLTAuMDE2NSAgICAgICAgPwogICBzdHJpbmctcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNTg5NSstMC4xMjQ0ICAgICA/ICAg
ICAgMS42MjA1Ky0wLjIzMTUgICAgICAgID8gbWlnaHQgYmUgMS4wMTk1eCBzbG93ZXIKICAgc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODc4Ky0wLjAx
MDIgICAgID8gICAgICAwLjI5NzgrLTAuMDA3NiAgICAgICAgPyBtaWdodCBiZSAxLjAzNDZ4IHNs
b3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1m
bGFncyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjM5MTErLTAuMTgxNSAgICAgICAgICAgIDAuMzE3MCstMC4wNDc3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMjMzOHggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHMzLWdsb2JhbCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjMyNDgrLTAuMDczNiAgICAgICAgICAgIDAuMzA1Mist
MC4wMTEzICAgICAgICAgIG1pZ2h0IGJlIDEuMDY0NHggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMjE4Ky0wLjA1
NDMgICAgICAgICAgICAwLjMwODMrLTAuMDQ1MCAgICAgICAgICBtaWdodCBiZSAxLjA0MzV4IGZh
c3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1t
dWx0aWxpbmUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4zMTk4Ky0wLjA0NzYgICAgID8gICAgICAwLjMzMjIrLTAuMDIyMyAgICAgICAg
PyBtaWdodCBiZSAxLjAzODd4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzMy1zdGlja3kgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zNTI4Ky0wLjE1MjggICAgICAgICAgICAwLjI5
OTMrLTAuMDA5NCAgICAgICAgICBtaWdodCBiZSAxLjE3OTF4IGZhc3RlcgogICBzdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzA0MistMC4w
MTkxICAgICA/ICAgICAgMC4zMTUxKy0wLjAxMDYgICAgICAgID8gbWlnaHQgYmUgMS4wMzU3eCBz
bG93ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4zNzA3Ky0wLjExNjUgICAgICAgICAgICAwLjMyNDIrLTAuMDQxNCAgICAgICAgICBtaWdodCBi
ZSAxLjE0MzR4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE5LjQ3MDIrLTAuODA5NCAgICAgICAgICAgMTkuMjcwNCstMC45MTU3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDEwNHggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtbm90LXJlc29s
dmluZy1maXhlZCAgICAgICAgICAgICAgICAgIDIuNTgzOSstMC4zMTYzICAgICA/ICAgICAgMi44
MjUxKy0wLjcyOTMgICAgICAgID8gbWlnaHQgYmUgMS4wOTM0eCBzbG93ZXIKICAgc3RyaW5nLXJl
cGVhdC1ub3QtcmVzb2x2aW5nLW5vLWlubGluZSAgICAgICAgICAgICAgMy43OTAzKy0wLjUxNTgg
ICAgICAgICAgICAzLjQ4NzUrLTAuMTM0NSAgICAgICAgICBtaWdodCBiZSAxLjA4Njh4IGZhc3Rl
cgogICBzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAgICAgICAz
LjUyODErLTAuMjEwNyAgICAgPyAgICAgIDMuNjEwMCstMC40MjYwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIzMnggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLWZpeGVkICAgICAgICAg
ICAgICAgICAgICAgMTguMDg1NSstMy4wMTc1ICAgICA/ICAgICAxOC4xOTE3Ky0yLjE0NDQgICAg
ICAgID8KICAgc3RyaW5nLXJlcGVhdC1yZXNvbHZpbmctbm8taW5saW5lICAgICAgICAgICAgICAg
ICAyNS4xMzExKy0yLjMxMTIgICAgICAgICAgIDI0LjcyNTUrLTEuOTYyOCAgICAgICAgICBtaWdo
dCBiZSAxLjAxNjR4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LXJlc29sdmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIzLjc1MDArLTAuNzcwOSAgICAgPyAgICAgMjQuNDc5NystMS43Mzk4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwN3ggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtc2luZ2xl
LW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgIDYuMzc1NSstMS4wMjMxICAgICAgICAgICAg
Ni4wMDU3Ky0xLjIwNzQgICAgICAgICAgbWlnaHQgYmUgMS4wNjE2eCBmYXN0ZXIKICAgc3RyaW5n
LXJlcGVhdC1zaW5nbGUtcmVzb2x2aW5nICAgICAgICAgICAgICAgICAgICAgNS45NTg3Ky0xLjAy
MzUgICAgID8gICAgICA3LjY3MDIrLTUuODQxNSAgICAgICAgPyBtaWdodCBiZSAxLjI4NzJ4IHNs
b3dlcgogICBzdHJpbmctcmVwZWF0LXNtYWxsLW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAg
ICAyLjgxODIrLTAuMjg4MiAgICAgPyAgICAgIDMuMTE0OSstMC4yNzc4ICAgICAgICA/IG1pZ2h0
IGJlIDEuMTA1M3ggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtc21hbGwtcmVzb2x2aW5nICAgICAg
ICAgICAgICAgICAgICAgMjQuNzU4MCstMS4yMTQ2ICAgICA/ICAgICAyNi4yNjMyKy0yLjczNTQg
ICAgICAgID8gbWlnaHQgYmUgMS4wNjA4eCBzbG93ZXIKICAgc3RyaW5nLXJlcGxhY2UtZW1wdHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy44OTQ2Ky0wLjY1NDkgICAgICAgICAgICA3
LjcxMzIrLTAuMTYyMSAgICAgICAgICBtaWdodCBiZSAxLjAyMzV4IGZhc3RlcgogICBzdHJpbmct
cmVwbGFjZS1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjI3NDArLTAuODAz
OSAgICAgICAgICAgNDkuNjM4NCstMC43NDA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOHggZmFz
dGVyCiAgIHN0cmluZy1yZXBsYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDguMzk4NystMS45MzI1ICAgICAgICAgICAgOC4wNjQwKy0wLjQyODUgICAgICAgICAgbWlnaHQg
YmUgMS4wNDE1eCBmYXN0ZXIKICAgc3RyaW5nLXJvcGUtd2l0aC1vYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNS42MjI0Ky0xLjQzODUgICAgICAgICAgIDE1LjUyNzArLTAuNzA3OSAg
ICAgICAgCiAgIHN0cmluZy1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzMuNTI0OCstMS42MzI5ICAgICA/ICAgICAzNS41MTQ2Ky0xMi43MTE0ICAgICAgID8gbWln
aHQgYmUgMS4wNTk0eCBzbG93ZXIKICAgc3RyaW5nLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi40MTQxKy0wLjAxNjMgICAgICAgICAgICAyLjQxMDArLTAuMDgz
OSAgICAgICAgCiAgIHN0cmluZy10cmFuc2NvZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTMuOTA2MystMS42NTkwICAgICAgICAgICAxMy4yMzcyKy0xLjE2MzEgICAgICAgICAg
bWlnaHQgYmUgMS4wNTA1eCBmYXN0ZXIKICAgc3RyaW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMy4xNjM4Ky0wLjM5NzcgICAgID8gICAgIDI0LjQyMjUrLTIu
MDc5NiAgICAgICAgPyBtaWdodCBiZSAxLjA1NDN4IHNsb3dlcgogICBzdHJ1Y3R1cmUtaG9pc3Qt
b3Zlci10cmFuc2l0aW9ucyAgICAgICAgICAgICAgICAgICAyLjAyOTQrLTAuMTYyNiAgICAgICAg
ICAgIDIuMDIxMCstMC4xMzUyICAgICAgICAKICAgc3Vic3RyaW5nLWNvbmNhdC13ZWlyZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMS45NTI4Ky0wLjQ4MjMgICAgID8gICAgIDMyLjc5NDYr
LTIuOTI5OSAgICAgICAgPyBtaWdodCBiZSAxLjAyNjN4IHNsb3dlcgogICBzdWJzdHJpbmctY29u
Y2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LjgyMzArLTAuOTQwMSAgICAg
PyAgICAgMzUuMzQyMystMC42ODg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0OXggc2xvd2VyCiAg
IHN1YnN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAuNzIx
NSstMS43MjA4ICAgICA/ICAgICA0MS40MzQzKy0xLjg2MzQgICAgICAgID8gbWlnaHQgYmUgMS4w
MTc1eCBzbG93ZXIKICAgc3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMS44MzM2Ky0wLjA3OTcgICAgID8gICAgICAxLjk4ODIrLTAuMTQ5NiAgICAgICAg
PyBtaWdodCBiZSAxLjA4NDR4IHNsb3dlcgogICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjI1OTYrLTAuMjAyNSAgICAgPyAgICAgIDQuNDE4Myst
MC42NDYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3Mnggc2xvd2VyCiAgIHN3aXRjaC1jb25zdGFu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDg0MistMC4zNDc2ICAgICA/
ICAgICAgMy4zMDM1Ky0wLjQ4ODMgICAgICAgID8gbWlnaHQgYmUgMS4wNzExeCBzbG93ZXIKICAg
c3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAgICAxMy4wNDAw
Ky0wLjUyNTAgICAgID8gICAgIDEzLjYxNDErLTEuMjYwMSAgICAgICAgPyBtaWdodCBiZSAxLjA0
NDB4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEyLjE5ODkrLTAuOTM0MSAgICAgICAgICAgMTIuMDIxMSstMC4yODI4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE0OHggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTIuNjgxMCstMC4zMTAzICAgICA/ICAgICAxMy4zOTI0Ky0x
LjU0MTEgICAgICAgID8gbWlnaHQgYmUgMS4wNTYxeCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1i
YXNpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4xNTY2Ky0wLjU4NDIgICAgID8g
ICAgIDEyLjAxMjcrLTIuNzQ1NyAgICAgICAgPyBtaWdodCBiZSAxLjA3Njd4IHNsb3dlcgogICBz
d2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgIDE3Ljk5NzEr
LTEuNzY5MiAgICAgPyAgICAgMTguODkyMCstMy4wMzIyICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5
N3ggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAg
ICAgICAgMTMuNTQwMistMC45NTUzICAgICAgICAgICAxMy40ODk3Ky0xLjU5ODkgICAgICAgIAog
ICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlciAgICAgICAgICAgICAgICAgICAgICAgIDEwLjcy
MjkrLTAuNDYzNSAgICAgPyAgICAgMTAuNzk5MCstMC41MDg5ICAgICAgICA/CiAgIHN3aXRjaC1z
dHJpbmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNjAyNSstMC4yNjEw
ICAgICAgICAgICAxMC41NjcyKy0wLjA0ODggICAgICAgIAogICBzd2l0Y2ggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA3OTYrLTAuMjU3MyAgICAgPyAgICAg
IDYuNjg3NCstMS40ODU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTAwMHggc2xvd2VyCiAgIHN5bWJv
bC10b3N0cmluZ3RhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzE5MSstMC4w
NTk0ICAgICA/ICAgICAgMi44NTQ1Ky0wLjIzNzQgICAgICAgID8gbWlnaHQgYmUgMS4wNDk4eCBz
bG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi41MDMxKy0wLjczMDkgICAgID8gICAgICAyLjYwNzErLTAuMzM1MyAgICAgICAgPyBtaWdo
dCBiZSAxLjA0MTV4IHNsb3dlcgogICB0ZWFyLW9mZi1hcmd1bWVudHMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjkxNTArLTAuMzExMiAgICAgICAgICAgIDIuODgyNistMC4xODkz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExM3ggZmFzdGVyCiAgIHRlbXBvcmFsLXN0cnVjdHVyZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTAyMCstMC4yODEzICAgICA/ICAgICAx
MS42Mjg4Ky0xLjI1MDEgICAgICAgID8gbWlnaHQgYmUgMS4xMDczeCBzbG93ZXIKICAgdG8taW50
MzItYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4xOTgxKy0yLjEy
ODYgICAgICAgICAgIDExLjcwMTMrLTAuNTUyMyAgICAgICAgICBtaWdodCBiZSAxLjA0MjV4IGZh
c3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1jbG9uZWQtYXJndW1lbnRzICAgICAgICAgICAg
ICAyLjg5NjUrLTAuMjI4OSAgICAgPyAgICAgIDMuMDA5MCstMC4yNjQwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDM4OHggc2xvd2VyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLWRpcmVjdC1hcmd1bWVu
dHMgICAgICAgICAgICAgIDEuOTc0NystMC4yNTcwICAgICAgICAgICAgMS44MjE1Ky0wLjIzMjYg
ICAgICAgICAgbWlnaHQgYmUgMS4wODQxeCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwt
c2NvcGVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgMy43NjY1Ky0wLjM4NTkgICAgID8gICAgICAz
LjgwNTgrLTAuMTI1MSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDR4IHNsb3dlcgogICB0eXBlZC1h
cnJheS1nZXQtc2V0LWJ5LXZhbC1wcm9maWxpbmcgICAgICAgICAgICAgIDE5LjM1MDErLTIuMDYz
MCAgICAgPyAgICAgMTkuNzg1MistMS41MzI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyNXggc2xv
d2VyCiAgIHVuZGVmaW5lZC1wcm9wZXJ0eS1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAy
NTguMTU2NystMy42MDY0ICAgICA/ICAgIDI2MC4yODIyKy02LjA3MDYgICAgICAgID8KICAgdW5k
ZWZpbmVkLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NzQwKy0w
LjMzNTYgICAgICAgICAgICAyLjY3MjUrLTAuMjIwNSAgICAgICAgCiAgIHVucHJvZmlsZWQtbGlj
bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzgzMSstMC4xMDA1ICAgICA/
ICAgICAgNS41MTE2Ky0wLjI4NTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjM5eCBzbG93ZXIKICAg
dW50eXBlZC1zdHJpbmctZnJvbS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgOC40Nzg4
Ky0wLjE5ODUgICAgICAgICAgICA4LjQzMzArLTAuMDg1MyAgICAgICAgCiAgIHY4LXJheXRyYWNl
LXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgMjUuMzkzNSstMS4zNTczICAg
ICA/ICAgICAyNS43MDM2Ky0xLjIzODEgICAgICAgID8gbWlnaHQgYmUgMS4wMTIyeCBzbG93ZXIK
ICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2gtaGlnaC1mcmVxdWVuY3ktdGhyb3dzICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyODUuMzUw
NystOC44NDYxICAgICAgICAgIDI4MS40ODUyKy0xMi41NzYyICAgICAgICAgbWlnaHQgYmUgMS4w
MTM3eCBmYXN0ZXIKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAg
ICAgICAgICA1My40MjUwKy0yLjgxNTkgICAgICAgICAgIDUyLjA5OTcrLTEuMTMzNyAgICAgICAg
ICBtaWdodCBiZSAxLjAyNTR4IGZhc3RlcgogICB2OC1yZWdleHAtc2VhcmNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQ1LjcyMzErLTAuODAxNSAgICAgPyAgICAgNDcuMzYwNSst
My4yNjI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1OHggc2xvd2VyCiAgIHZhcmFyZ3MtY2FsbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNjE3NCstMC43MDQ0ICAgICA/
ICAgICAxMy4zNzI1Ky0xLjQ3OTcgICAgICAgID8gbWlnaHQgYmUgMS4wNTk4eCBzbG93ZXIKICAg
dmFyYXJncy1jb25zdHJ1Y3QtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4xNzc2
Ky0wLjIxMzYgICAgICAgICAgIDE3Ljc4MjArLTAuMjU0NiAgICAgICAgICBtaWdodCBiZSAxLjAy
MjJ4IGZhc3RlcgogICB2YXJhcmdzLWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE2LjM3MTIrLTAuOTI4NCAgICAgICAgICAgMTUuNDIzMystMC41Mjc4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDYxNXggZmFzdGVyCiAgIHZhcmFyZ3MtaW5saW5lICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuNjU1OCstMC4zNjA3ICAgICAgICAgICAgNy42NDYxKy0w
LjMxNjAgICAgICAgIAogICB2YXJhcmdzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4LjY2NDgrLTAuMjcxOCAgICAgPyAgICAgIDguNzg5MSstMC40MTA2ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE0M3ggc2xvd2VyCiAgIHZhcmFyZ3MgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDguNjEzNSstMC4xMTgzICAgICA/ICAgICAgOS4xOTg1
Ky0xLjYxMTMgICAgICAgID8gbWlnaHQgYmUgMS4wNjc5eCBzbG93ZXIKICAgd2VpcmQtaW5saW5p
bmctY29uc3QtcHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgMS45ODg1Ky0wLjEzODEgICAg
ICAgICAgICAxLjg4MjkrLTAuMTU3NyAgICAgICAgICBtaWdodCBiZSAxLjA1NjF4IGZhc3RlcgoK
ICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4x
ODE5Ky0wLjAzNjMgICAgID8gICAgICA2LjE5NTMrLTAuMDI2MSAgICAgICAgPyBtaWdodCBiZSAx
LjAwMjJ4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUT1QgICAgICAgICAgICAgICAgICAgICAgICBNQyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQXNtQmVuY2g6CiAgIGJpZ2ZpYi5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MTIuNzQ1MistOS4yNzg4ICAgICAg
ICAgIDQxMi4wNTkyKy0yMS4wMTc3ICAgICAgIAogICBjcmF5LmMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzQyLjcyMjMrLTcuODM1NCAgICAgPyAgICAzNDYuNjc1
NistMTEuODg0NyAgICAgICA/IG1pZ2h0IGJlIDEuMDExNXggc2xvd2VyCiAgIGRyeS5jICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzODcuNTQ0NistMTEuNjQzMSAg
ICA/ICAgIDM4OS44MDc1Ky0xNy4yODgzICAgICAgID8KICAgRmxvYXRNTS5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY3Ny4xMjEzKy0xNC44MjY5ICAgICAgICAgNjcw
Ljg0ODUrLTYuMDUwOCAgICAgICAgCiAgIGdjYy1sb29wcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDM0NzAuOTc1MCstNDMuMzcyNiAgICAgICAgMzQxNS4xODc0Ky0zMy40
NTc1ICAgICAgICAgbWlnaHQgYmUgMS4wMTYzeCBmYXN0ZXIKICAgbi1ib2R5LmMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2My4wNzI5Ky0xOC45NTk5ICAgICAgICAg
NzU2LjgzOTcrLTE3LjM2NDcgICAgICAgCiAgIFF1aWNrc29ydC5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzNzIuNjY3MistMjkuOTM5NiAgICA/ICAgIDM4Mi42ODIzKy0z
Ny40MjM1ICAgICAgID8gbWlnaHQgYmUgMS4wMjY5eCBzbG93ZXIKICAgc3RlcGFub3ZfY29udGFp
bmVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgMzE0NS42NTIzKy02OS45ODYxICAgICAg
ICAzMDY0LjY5MDUrLTQ0LjIyMjIgICAgICAgICBtaWdodCBiZSAxLjAyNjR4IGZhc3RlcgogICBU
b3dlcnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU4LjY2NzQr
LTMuNDI3NyAgICAgICAgICAyNTUuNTgzNystNC40NzQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEy
MXggZmFzdGVyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjc2LjczNzgrLTQuODE3OSAgICAgICAgICA2NzQuNDQ5OCstNy42ODQ2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDAzNHggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAgICAgIE1D
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApDb21wcmVzc2lvbkJlbmNo
OgogICBodWZmbWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMy
LjkyNDMrLTIuMDE5NyAgICAgPyAgICAgMzMuNzU4NystMC45MTgxICAgICAgICA/IG1pZ2h0IGJl
IDEuMDI1M3ggc2xvd2VyCiAgIGFyaXRobWV0aWMtc2ltcGxlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyNDEuNTYyNystMi45MTgzICAgICAgICAgIDI0MS4zMDA1Ky0xLjgzMTQgICAg
ICAgIAogICBhcml0aG1ldGljLXByZWNpc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjI3LjY0MzErLTEuNDM1NyAgICAgPyAgICAyMzUuMjg1OSstMTEuNDQ3NiAgICAgICA/IG1pZ2h0
IGJlIDEuMDMzNnggc2xvd2VyCiAgIGFyaXRobWV0aWMtY29tcGxleC1wcmVjaXNlICAgICAgICAg
ICAgICAgICAgICAgICAyMjQuNjU5NSstMS44MjkxICAgICAgICAgIDIyNC4zMDU1Ky0zLjAxMDYg
ICAgICAgIAogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMCAgICAgICAgICAgICAgICAgICAg
ICAgMjQ1LjE3MDUrLTMuMjg4OSAgICAgPyAgICAyNTAuMjUwOSstOC4xOTM2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIwN3ggc2xvd2VyCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0xICAgICAg
ICAgICAgICAgICAgICAgICAyNzQuMTkyOCstMC45OTA5ICAgICAgICAgIDI3My4wNDYzKy0yLjY5
ODMgICAgICAgIAogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAgICAgICAgICAgICAg
ICAgICAgMzI0LjYzODIrLTI1LjQyMDEgICAgICAgICAzMTguNzMyNistMTQuMTQ0MSAgICAgICAg
IG1pZ2h0IGJlIDEuMDE4NXggZmFzdGVyCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTEgICAg
ICAgICAgICAgICAgICAgICAgICAyOTIuMDY0NistOS4xNjc4ICAgICAgICAgIDI4OC44NjkwKy0x
LjYxNTQgICAgICAgICAgbWlnaHQgYmUgMS4wMTExeCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1zaW1w
bGUtb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgIDM0MS44MDU3Ky04LjU0OTYgICAgICAg
ICAgMzM1LjUxNDIrLTIuODU5NiAgICAgICAgICBtaWdodCBiZSAxLjAxODh4IGZhc3RlcgogICBs
ei1zdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjgwLjA3Mjkr
LTIxLjYxNDkgICAgPyAgICAyODMuNjQxNSstMjguMDQxMCAgICAgICA/IG1pZ2h0IGJlIDEuMDEy
N3ggc2xvd2VyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjE4LjQ1ODYrLTIuMDU4MyAgICAgPyAgICAyMTkuMjYzMistMi41Nzc2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDAzN3ggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAgICAgIE1D
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW9tZWFuIG9mIHByZWZl
cnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0Mi4yOTE3Ky0wLjIzNjMgICAgID8gICAgIDQyLjM5OTgrLTAuMTc5MCAgICAgICAg
PyBtaWdodCBiZSAxLjAwMjZ4IHNsb3dlcgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281680</attachid>
            <date>2016-06-20 15:10:09 -0700</date>
            <delta_ts>2016-06-21 10:24:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>changes.patch</filename>
            <type>text/plain</type>
            <size>162203</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2MzY1NmQyLi4yMDc1MWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02ODUsNyArNjg1LDYgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvci5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwCiAgICAgcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKLSAgICBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5j
cHAKICAgICBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKICAgICBydW50aW1lL0pTQ0pTVmFs
dWUuY3BwCiAgICAgcnVudGltZS9KU0NhbGxlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDdmMWVhNDMuLjMxZGYyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzMCBAQAorMjAxNi0wNi0yMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBJdCBzaG91bGQgYmUgZWFzeSB0byBhZGQgYSBwcml2YXRlIGdsb2JhbCBo
ZWxwZXIgZnVuY3Rpb24gZm9yIGJ1aWx0aW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTMKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExh
bS4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgdHdvIHRoaW5ncy4gRmlyc3QgaXQgbW92ZXMg
YWxsIHRoZSBidWlsdGluIG5hbWVzCisgICAgICAgIG91dCBvZiBDb21tb25JZGVudGlmaWVycyBh
bmQgaW50byBCdWlsdGluTmFtZXMuIFRoaXMgbWVhbnMgdGhhdAorICAgICAgICBhZGRpbmcgYSBu
ZXcgZnVuY3Rpb24gdG8gdGhlIEJ1aWx0aW5zIGRvZXMgbm90IHJlcXVpcmUgcmVidWlsZGluZwor
ICAgICAgICBhbGwgb2YgSmF2YVNjcmlwdENvcmUuIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3
IGRlY29yYXRvciB0byBvdXIKKyAgICAgICAgYnVpbHRpbnMgQHByaXZhdGVHbG9iYWwgdGhhdCB3
aWxsIGF1dG9tYXRpY2FsbHkgcHV0IHRoZSBmdW5jdGlvbgorICAgICAgICBvbiB0aGUgZ2xvYmFs
IG9iamVjdC4gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAg
ICAgICAgdGhlIHByaXZhdGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgVGhpcyBw
YXRjaCwgYWxzbywgcmVtb3ZlcyB0aGUgSlNBcnJheUl0ZXJhdG9yLmgvLmNwcCBmaWxlcworICAg
ICAgICBhcyB0aGV5IG5vIGxvbmdlciBhcHBlYXIgdG8gYmUgdXNlZCBpbiBhbnkgcmVhbCB3YXku
IEZpbmFsbHksCisgICAgICAgIHRoZSBidWlsdGlucyB0ZXN0cyBoYXZlIGJlZW4gcmViYXNlbGlu
ZWQuIEl0IGFwcGVhcnMgdGhpcyBoYXMKKyAgICAgICAgbm90IGJlZW4gZG9uZSBmb3IgYSB3aGls
ZSBzbyB0aGUgZXhwZWN0ZWQgZmlsZXMgY29udGFpbiBvdGhlcgorICAgICAgICBjaGFuZ2VzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weToKKyAgICAgICAgKEJ1aWx0aW5zQ29tYmlu
ZWRIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKGdlbmVyYXRlX3Nl
Y3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyk6CisgICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zv
cl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAqIFNjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfbW9kZWwucHk6CisgICAgICAgIChCdWlsdGluRnVuY3Rpb24uX19pbml0
X18pOgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLmZyb21TdHJpbmcpOgorICAgICAgICAqIFNj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9t
aXNlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAgICogU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3Rv
dHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMt
cmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFs
Q2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2Vw
YXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICog
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoK
KyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2Fz
aW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogYnVpbHRpbnMvQXJyYXlJdGVy
YXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9BcnJheVByb3RvdHlwZS5qczoK
KyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9H
ZW5lcmF0b3JQcm90b3R5cGUuanM6CisgICAgICAgICogYnVpbHRpbnMvR2xvYmFsT2JqZWN0Lmpz
OgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzOgorICAgICAgICAqIGJ1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9TdHJpbmdQcm90
b3R5cGUuanM6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5j
cHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVBcnJvd0Z1bmN0aW9uQ29udGV4
dFNjb3BlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0
ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWREZXJpdmVkQ29uc3Ry
dWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4
dFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVk
Q29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlQ2hhbmdlKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdEhvbWVPYmpl
Y3RGb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0UHV0SG9tZU9iamVjdCk6CisgICAgICAg
IChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZHT3Bl
cmF0aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUpOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9w
ZXJ0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAo
SlNDOjpMZXhlcjxMQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkxleGVy
PFVDaGFyPjo6cGFyc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAg
ICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlw
ZT46OmNyZWF0ZUdlbmVyYXRvclBhcmFtZXRlcnMpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNsYXJhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5SXRlcmF0b3JQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tbW9u
SWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlR2V0dGVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdFByb3Rv
dHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5
cGVGdW5jUmVzb2x2ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3RJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJvdW5k
Rm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVy
YXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6ZmluaXNo
Q3JlYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmtpbmQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmg6IFJlbW92ZWQu
CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZp
ZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURlZmVy
cmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6CisgICAg
ICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU1N0cmluZ0l0ZXJh
dG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6Y2xv
bmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5oOgorCiAy
MDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
IHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1vcmUgdHlwZXMgb2YgSUNzIGlubGluZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4Li45MWI3YWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcxMCw3ICsxNzEwLDcgQEAKIAkJQTc0REVGOTUxODJE
OTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEYxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFw
SXRlcmF0b3IuY3BwICovOyB9OwogCQlBNzRERUY5NjE4MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc0REVGOTAxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzU3MDZERTExOEEyQkNGMDA1
N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0
aG1ldGljMzJfNjQuY3BwICovOyB9OwotCQlBNzVFRTlCMjE4QUFCN0UyMDBBQUQwNDMgLyogQnVp
bHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi87IH07CisJCUE3
NUVFOUIyMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAv
KiBCdWlsdGluTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhE
QjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzY3QjVCNTE3QTBCOTY1MDA2
M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2N0I1QjMxN0EwQjk2NTAwNjNEOTQw
IC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcCAqLzsgfTsKIAkJQTc2N0I1QjYx
N0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY3QjVCNDE3QTBCOTY1
MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLzsgfTsKQEAgLTE3
NjYsOCArMTc2Niw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENv
ZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCREFFQzgxN0Y0RUEx
NDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzIxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9OwogCQlBN0JEQUVDOTE3RjRFQTE0MDBG
NjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8q
IEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNw
cCAqLzsgfTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzUx
N0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovOyB9OwogCQlBN0JGRjNDMDE3
OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYzQkYxNzk4Njg5NDAwMDJGNDYyIC8q
IERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFE
IC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQTE2N0MwOENEMDAxNzAx
MUQgLyogSlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMzk4Niw4ICszOTg0LDYgQEAKIAkJQTdC
NEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBh
dGggPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
eGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJ
CUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8q
IEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7
IH07Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0
cmF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0ZpbHRy
YXRpb25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1Njcmlw
dFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFJl
Zi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFCMTY3QzA4Q0QwMDE3
MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01NzE3LDggKzU3MTMsNiBAQAogCQkJCTBGMkI2NkJBMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Fy
cmF5QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2QkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNjU3Q0Y0NTYxOUJGNjY2MjAwNEFDQkYyIC8q
IEpTQ2FsbGVlLmNwcCAqLywKQEAgLTc2NjAsNyArNzY1NCw2IEBACiAJCQkJMEYyQjY2RTcxN0I2
QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJW
aWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBD
IC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTgwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3RDcwRThBRDRB
OTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RkE5RTky
MTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAt
OTEwNyw3ICs5MTAwLDYgQEAKIAkJCQkwRjJCNjZFNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJh
eUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZFODE3QjZCNUFC
MDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUz
MTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0Jv
dW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUwOEQyMDAwMDVG
MDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVy
YXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQppbmRleCA4OTFiZDNj
Li42MGVlYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWls
dGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRf
aGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENv
cHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoYykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIEJ1aWx0
aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgogICAgICAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KG9iamVj
dCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2Nv
ZGVfdGFibGVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChz
ZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9wcml2YXRlX2NvZGVfbmFtZV9tYWNybygp
KQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSGVh
ZGVyU3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQogICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkK
ICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRl
R3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCkBAIC0xNTAsMyArMTUxLDIyIEBAIGV4dGVy
biBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXNDb25zdHJ1Y3RBYmls
aXR5OyIiIiAlIGZ1bmN0aW9uCiAKICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3Jv
KCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKICAgICAgICAgcmV0dXJuICdcbicu
am9pbihsaW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0
ZV9jb2RlX25hbWVfbWFjcm8oc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAn
bWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZp
eCcpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBl
bmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklW
QVRFX0dMT0JBTF9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQorICAgICAgICBmdW5jdGlvbnMgPSBm
aWx0ZXIobGFtYmRhIGZ1bmN0aW9uOiBmdW5jdGlvbi5pc19nbG9iYWxfcHJpdmF0ZSwgc2VsZi5t
b2RlbCgpLmFsbF9mdW5jdGlvbnMoKSkKKyAgICAgICAgZnVuY3Rpb25zLnNvcnQoa2V5PWxhbWJk
YSB4OiB4LmZ1bmN0aW9uX25hbWUpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6
CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAgICdmdW5jTmFt
ZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgJ2NvZGVOYW1lJzog
QnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbiksCisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05h
bWUpcywgJShjb2RlTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQorCisgICAgICAgIHJldHVy
biAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9idWlsdGlucy9idWlsdGluc19tb2RlbC5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CmluZGV4IDAyMmE5OGIuLjc3YjJiODgg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX21vZGVsLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5z
L2J1aWx0aW5zX21vZGVsLnB5CkBAIC00MSw4ICs0MSw5IEBAIF9GUkFNRVdPUktfQ09ORklHX01B
UCA9IHsKIH0KIAogZnVuY3Rpb25IZWFkUmVnRXhwID0gcmUuY29tcGlsZShyIig/OkBbXHd8PV0r
XHMqXG4pKmZ1bmN0aW9uXHMrXHcrXHMqXCguKj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFM
TCkKLWZ1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShyIl5AaW50cmluc2ljPShc
dyspXHMqXG4iLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCi1mdW5jdGlvbklzQ29uc3RydWN0
b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXkBjb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJl
LkRPVEFMTCkKK2Z1bmN0aW9uR2xvYmFsUHJpdmF0ZVJlZ0V4cCA9IHJlLmNvbXBpbGUociIuKl5A
Z2xvYmFsUHJpdmF0ZSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uSW50cmlu
c2ljUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBpbnRyaW5zaWM9KFx3KykiLCByZS5NVUxUSUxJ
TkUgfCByZS5ET1RBTEwpCitmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxl
KHIiLipeQGNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxMKQogZnVuY3Rpb25O
YW1lUmVnRXhwID0gcmUuY29tcGlsZShyImZ1bmN0aW9uXHMrKFx3KylccypcKCIsIHJlLk1VTFRJ
TElORSB8IHJlLkRPVEFMTCkKIGZ1bmN0aW9uUGFyYW1ldGVyRmluZGVyID0gcmUuY29tcGlsZShy
Il5mdW5jdGlvblxzKyg/Olx3KylccypcKCgoPzpccypcdyspP1xzKig/OlxzKixccypcdyspKik/
XHMqXCkiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCiAKQEAgLTk0LDExICs5NSwxMiBAQCBj
bGFzcyBCdWlsdGluT2JqZWN0OgogCiAKIGNsYXNzIEJ1aWx0aW5GdW5jdGlvbjoKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1
Y3RvciwgcGFyYW1ldGVycywgaW50cmluc2ljKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVu
Y3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBwYXJhbWV0ZXJzLCBpc19jb25zdHJ1Y3Rvciwg
aXNfZ2xvYmFsX3ByaXZhdGUsIGludHJpbnNpYyk6CiAgICAgICAgIHNlbGYuZnVuY3Rpb25fbmFt
ZSA9IGZ1bmN0aW9uX25hbWUKICAgICAgICAgc2VsZi5mdW5jdGlvbl9zb3VyY2UgPSBmdW5jdGlv
bl9zb3VyY2UKLSAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCiAg
ICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBhcmFtZXRlcnMKKyAgICAgICAgc2VsZi5pc19jb25z
dHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYuaXNfZ2xvYmFsX3ByaXZhdGUg
PSBpc19nbG9iYWxfcHJpdmF0ZQogICAgICAgICBzZWxmLmludHJpbnNpYyA9IGludHJpbnNpYwog
ICAgICAgICBzZWxmLm9iamVjdCA9IE5vbmUgICMgU2V0IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9i
amVjdAogCkBAIC0xMTksMTEgKzEyMSwxMiBAQCBjbGFzcyBCdWlsdGluRnVuY3Rpb246CiAKICAg
ICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9u
X3NvdXJjZSlbMF0KICAgICAgICAgaXNfY29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0
b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25fc291cmNlKSAhPSBOb25lCisgICAgICAgIGlzX2dsb2Jh
bF9wcml2YXRlID0gZnVuY3Rpb25HbG9iYWxQcml2YXRlUmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3Nv
dXJjZSkgIT0gTm9uZQogICAgICAgICBwYXJhbWV0ZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBm
dW5jdGlvblBhcmFtZXRlckZpbmRlci5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQo
JywnKV0KICAgICAgICAgaWYgbGVuKHBhcmFtZXRlcnNbMF0pID09IDA6CiAgICAgICAgICAgICBw
YXJhbWV0ZXJzID0gW10KIAotICAgICAgICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9u
X25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwgaXNfY29uc3RydWN0b3IsIHBhcmFtZXRlcnMsIGludHJp
bnNpYykKKyAgICAgICAgcmV0dXJuIEJ1aWx0aW5GdW5jdGlvbihmdW5jdGlvbl9uYW1lLCBmdW5j
dGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2NvbnN0cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0
ZSwgaW50cmluc2ljKQogCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIGludGVyZmFj
ZSA9ICIlcyglcykiICUgKHNlbGYuZnVuY3Rpb25fbmFtZSwgJywgJy5qb2luKHNlbGYucGFyYW1l
dGVycykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQu
anMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3Vs
dAppbmRleCBkYmQzZTEyLi5hZjM5ODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
LlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJv
bWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYwLDYgKzYwLDggQEAgZXh0ZXJuIGNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29u
c3RydWN0QWIKICAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFBy
b21pc2UpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVf
R0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwNyw0
NSArMTA5LDQyIEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGlu
ZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVj
dEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0
IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTM7Citjb25z
dCBpbnQgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlTGVuZ3RoID0gNDEwOworc3Rh
dGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29k
ZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9t
aXNlUmVqZWN0UHJvbWlzZUNvZGUgPQogICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHJlYXNvbilc
biIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0
aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIg
XAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7
XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmlu
ZWQ7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0
ZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
cHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAgICJc
biIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29u
KTtcbiIgXAogICAgICJ9KVxuIiBcCiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBz
X2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6
Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblBy
b21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGggPSA0MTI7Citjb25zdCBpbnQgc19idWlsdGlu
UHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCA9IDQwOTsKK3N0YXRpYyBjb25zdCBKU0M6
OkludHJpbnNpYyBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlSW50cmluc2ljID0g
SlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJv
bWlzZUNvZGUgPQogICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHZhbHVlKVxuIiBcCiAgICAgIntc
biIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAg
IHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucztcbiIgXAog
ICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHZhbHVlO1xuIiBcCiAgICAgIiAgICBw
cm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIg
ICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAg
ICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7XG4iIFwKLSAg
ICAiXG4iIFwKICAgICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZp
bGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAogICAgICIg
ICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xuIiBcCiAgICAg
In0pXG4iIFwKIDsKQEAgLTE1NCw3ICsxNTMsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9t
aXNlRnVsZmlsbFByb21pc2VDb2RlID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAotICAgIHJl
dHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KKyAg
ICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCkt
Pmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51
bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9D
T0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRl
LmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1
bHQKaW5kZXggMWIxZDVlMS4uMGRmZTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlBy
b21pc2UtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xMDksNDUgKzEwOSw0MiBAQCBKU0NfRk9SRUFD
SF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1Ip
CiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxl
LmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgog
I2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVj
dEFiaWxpdHkgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0
eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNf
YnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCA9IDQxMzsKK2NvbnN0IGludCBz
X2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTA7CitzdGF0aWMgY29u
c3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlSW50cmlu
c2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VSZWpl
Y3RQcm9taXNlQ29kZSA9CiAgICAgIihmdW5jdGlvbiAocHJvbWlzZSwgcmVhc29uKVxuIiBcCiAg
ICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAg
ICAiICAgIHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zO1xu
IiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCiAgICAg
IiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAog
ICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIg
XAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIg
XAotICAgICJcbiIgXAogICAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNl
UmVqZWN0ZWQocHJvbWlzZSwgcmVhc29uLCByZWFjdGlvbnMpO1xuIiBcCi0gICAgIlxuIiBcCiAg
ICAgIiAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pO1xuIiBc
CiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRp
blByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1
bGZpbGxQcm9taXNlQ29kZUxlbmd0aCA9IDQxMjsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNl
RnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoID0gNDA5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmlu
c2ljIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5v
SW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29k
ZSA9CiAgICAgIihmdW5jdGlvbiAocHJvbWlzZSwgdmFsdWUpXG4iIFwKICAgICAie1xuIiBcCiAg
ICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIHJl
YWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zO1xuIiBcCiAgICAgIiAg
ICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gdmFsdWU7XG4iIFwKICAgICAiICAgIHByb21pc2Uu
QHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9t
aXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBw
cm9taXNlLkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDtcbiIgXAotICAgICJcbiIg
XAogICAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHBy
b21pc2UsIHZhbHVlLCByZWFjdGlvbnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJp
Z2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7XG4iIFwKICAgICAifSlcbiIg
XAogOwpAQCAtMTU2LDcgKzE1Myw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxm
aWxsUHJvbWlzZUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5h
bWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFi
bGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZt
LmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2
bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVy
biB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2
bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwg
c18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0Vf
QlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJ
TFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5
cGUtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29t
YmluZWQuanMtcmVzdWx0CmluZGV4IDJiYjRjYmMuLjBiYTFkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYxLDYgKzYxLDgg
QEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVG
b3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkKICAgICBtYWNybyhldmVyeSkgXAogICAgIG1hY3Jv
KGZvckVhY2gpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZB
VEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJB
VE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEw
OSwxOCArMTExLDE5IEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5f
R0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAi
RXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElu
bGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlND
OjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUNvbnN0cnVjdEFi
aWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGlu
dCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjI7Citjb25zdCBpbnQgc19i
dWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoID0gNzYwOworc3RhdGljIGNvbnN0IEpTQzo6
SW50cmluc2ljIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9J
bnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogICAg
ICIoZnVuY3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNl
IHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClc
biIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBl
LmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsXCIpO1xuIiBcCiAgICAgIiAg
ICBcbiIgXApAQCAtMTI5LDcgKzEzMiw2IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlw
ZUV2ZXJ5Q29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVj
dCh0aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5n
dGgpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBc
ImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFy
cmF5LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwK
ICAgICAiICAgIFxuIiBcCkBAIC0xNDcsMTIgKzE0OSwxMiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0
aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvdG90
eXBlRm9yRWFjaENvZGVMZW5ndGggPSA2OTQ7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBl
Rm9yRWFjaENvZGVMZW5ndGggPSA2OTI7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19i
dWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwog
Y29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAgICIoZnVuY3Rp
b24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAogICAg
ICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVhY2gg
cmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxuIiBc
CkBAIC0xNjEsNyArMTYzLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFj
aENvZGUgPQogICAgICIgICAgXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhp
cyk7XG4iIFwKICAgICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtc
biIgXAotICAgICJcbiIgXAogICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5j
dGlvblwiKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5w
cm90b3R5cGUuZm9yRWFjaCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAg
ICAiICAgIFxuIiBcCkBAIC0xNzgsNyArMTc5LDcgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJv
dG90eXBlRm9yRWFjaENvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJu
IHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZt
LCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJl
dHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9w
dCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUo
REVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRP
UgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5q
cy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1
bHQKaW5kZXggMzE1ZTAwZS4uM2NjZTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4u
cHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTExLDE4ICsxMTEsMTkgQEAgSlNDX0ZP
UkVBQ0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5F
UkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVj
dXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5l
cy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29uc3RydWN0QWJpbGl0
eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNf
YnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MjsKK2NvbnN0IGludCBzX2J1aWx0
aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRy
aW5zaWMgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJp
bnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiAgICAgIihm
dW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3Ry
aWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBc
CiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZXZl
cnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxu
IiBcCkBAIC0xMzEsNyArMTMyLDYgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRXZl
cnlDb2RlID0KICAgICAiICAgIFxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRo
aXMpO1xuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVu
Y3Rpb25cIilcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXku
cHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAogICAg
ICIgICAgXG4iIFwKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblBy
b3RvdHlwZUV2ZXJ5Q29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1
aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVj
dEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVG
b3JFYWNoQ29kZUxlbmd0aCA9IDY5NDsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JF
YWNoQ29kZUxlbmd0aCA9IDY5MjsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0
aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25z
dCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAgICAgIihmdW5jdGlvbiAo
Y2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCiAgICAgIiAg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1
aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAogICAgICIgICAgXG4iIFwKQEAg
LTE2Myw3ICsxNjMsNiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29k
ZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTtc
biIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpO1xuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9u
XCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3Rv
dHlwZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAogICAgICIg
ICAgXG4iIFwKQEAgLTE4MCw3ICsxNzksNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5
cGVGb3JFYWNoQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFt
ZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJs
ZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1cm4gdm0u
YnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZt
LmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAgcmV0dXJu
IHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZt
LCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBz
XyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPVE9UWVBF
X0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1
Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3It
Q29tYmluZWQuanMtcmVzdWx0CmluZGV4IDAzOTFkZTIuLmRmZTZhM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJlc3VsdApAQCAtNjAsNiAr
NjAsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0
cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RBYmlsaXR5OwogICAgIG1hY3JvKGZyb20pIFwKICAgICBt
YWNybyhvZikgXAogCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFU
RV9HTE9CQUxfTkFNRShtYWNybykgXAorCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFU
T1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogICAgIEpTQzo6RnVu
Y3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIApAQCAtMTA3
LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9H
RU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJF
eGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5s
aW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVDb25zdHJ1Y3RBYmls
aXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQg
c19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyOTQ7Citjb25zdCBpbnQgc19idWls
dGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyODY7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRy
aW5zaWMgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmlu
c2ljOwogY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGUgPQogICAgICIoZnVu
Y3Rpb24gKClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiIg
XAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gdHlwZW9mIHRoaXMgPT09
ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3IEBBcnJheShsZW5ndGgpO1xuIiBc
CiAgICAgIiAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbmd0aDsgKytrKVxuIiBcCiAgICAgIiAg
ICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1bWVudHNba10pO1xuIiBcCkBAIC0x
MzAsNDkgKzEzMiwzNSBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZSA9
CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1Y3RvckZy
b21Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29u
c3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGggPSAy
MDQ2OworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGggPSAxOTc5
Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNv
ZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluQ29u
c3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoaXRlbXMgKVxuIiBcCiAgICAgIntc
biIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAg
IHZhciB0aGlzT2JqID0gdGhpcztcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIG1hcEZu
ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4iIFwK
LSAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzQXJnO1xuIiBcCi0gICAgIlxuIiBcCiAgICAg
IiAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkge1xuIiBcCiAgICAgIiAgICAgICAgaWYgKHR5
cGVvZiBtYXBGbiAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCiAgICAgIiAgICAgICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyB0aGF0IHRoZSBzZWNvbmQgYXJn
dW1lbnQsIHdoZW4gcHJvdmlkZWQsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAiXG4iIFwK
ICAgICAiICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpXG4iIFwKICAgICAiICAgICAg
ICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTtcbiIgXAogICAgICIgICAgfVxuIiBcCi0gICAg
IlxuIiBcCiAgICAgIiAgICBpZiAoaXRlbXMgPT0gbnVsbClcbiIgXAogICAgICIgICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJlcyBhbiBhcnJheS1saWtlIG9i
amVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiIgXAotICAgICJcbiIgXAogICAgICIg
ICAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gaXRlbXNbQHN5bWJvbEl0ZXJhdG9yXTtcbiIgXAogICAg
ICIgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHtcbiIgXAogICAgICIgICAgICAgIGlm
ICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAg
ICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0
aGUgcHJvcGVydHkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LCBpdGVtc1tTeW1ib2wuaXRlcmF0b3Jd
LCB3aGVuIGV4aXN0cywgYmUgYSBmdW5jdGlvblwiKTtcbiIgXAotICAgICJcbiIgXAotICAgICIg
ICAgICAgIC8vXG4iIFwKICAgICAiICAgICAgICB2YXIgcmVzdWx0ID0gKHR5cGVvZiB0aGlzT2Jq
ID09PSBcImZ1bmN0aW9uXCIpID8gQE9iamVjdChuZXcgdGhpc09iaigpKSA6IFtdO1xuIiBcCi0g
ICAgIlxuIiBcCiAgICAgIiAgICAgICAgdmFyIGsgPSAwO1xuIiBcCiAgICAgIiAgICAgICAgdmFy
IGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRlbXMpO1xuIiBcCi0gICAgIlxuIiBc
Ci0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAiICAgICAg
ICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHdyYXBwZXIgPSB7XG4iIFwKICAgICAiICAgICAg
ICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7XG4iIFwKICAgICAiICAgICAgICAgICAgICAgIHJl
dHVybiBpdGVyYXRvcjtcbiIgXAogICAgICIgICAgICAgICAgICB9XG4iIFwKICAgICAiICAgICAg
ICB9O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgZm9yICh2YXIgdmFsdWUgb2Ygd3Jh
cHBlcikge1xuIiBcCiAgICAgIiAgICAgICAgICAgIGlmIChtYXBGbilcbiIgXAogICAgICIgICAg
ICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdGhpc0FyZyA9PT0gdW5kZWZp
bmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwodGhpc0FyZywgdmFsdWUsIGspKTtc
biIgXApAQCAtMTgwLDE3ICsxNjgsMTIgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0
b3JGcm9tQ29kZSA9CiAgICAgIiAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0
LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICAgICAgayArPSAxO1xuIiBcCiAgICAgIiAg
ICAgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7
XG4iIFwKICAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xuIiBcCiAgICAgIiAgICB9XG4iIFwK
LSAgICAiXG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1zKTtcbiIg
XAogICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0b0xlbmd0aChhcnJheUxpa2UubGVu
Z3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFyIHJl
c3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRo
aXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0aCk7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBrID0gMDtcbiIgXAogICAgICIgICAgd2hpbGUg
KGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAogICAgICIgICAgICAgIHZhciB2YWx1ZSA9IGFy
cmF5TGlrZVtrXTtcbiIgXApAQCAtMjAwLDcgKzE4Myw2IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRp
bkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3Qo
cmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICBrICs9IDE7XG4iIFwKICAgICAi
ICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmVzdWx0Lmxlbmd0aCA9IGFycmF5TGlr
ZUxlbmd0aDtcbiIgXAogICAgICIgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAgICJ9KVxuIiBc
CkBAIC0yMTAsNyArMTkyLDcgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JGcm9t
Q29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rp
b25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5h
bWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CisgICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBzXyMjY29kZU5h
bWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZh
U2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDJk
MjZlNDkuLmVkMTg0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rv
ci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9y
LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTA5LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJ
TFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQog
CiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNp
bmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6
Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNv
bnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjk0OworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVj
dG9yT2ZDb2RlTGVuZ3RoID0gMjg2Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVp
bHRpbkNvbnN0cnVjdG9yT2ZDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0
IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlID0KICAgICAiKGZ1bmN0aW9uICgpXG4i
IFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIg
XAogICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4iIFwKLSAgICAiICAg
IC8vXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24n
ID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXkobGVuZ3RoKTtcbiIgXAogICAgICIgICAg
Zm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylcbiIgXAogICAgICIgICAgICAgIEBwdXRC
eVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTtcbiIgXApAQCAtMTMyLDQ5ICsxMzIs
MzUgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGUgPQogOwogCiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZUNvbnN0
cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNv
bnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoID0gMjA0NjsKK2NvbnN0
IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoID0gMTk3OTsKK3N0YXRpYyBj
b25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlSW50cmluc2lj
ID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJv
bUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGl0ZW1zIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc09i
aiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50
cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBc
CiAgICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgaWYgKG1h
cEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAogICAgICIgICAgICAgIGlmICh0eXBlb2YgbWFwRm4g
IT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVu
IHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAg
ICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxuIiBcCiAgICAgIiAgICAgICAgICAgIHRoaXNB
cmcgPSBhcmd1bWVudHNbMl07XG4iIFwKICAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAogICAg
ICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5
cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3Qg
bnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBpdGVy
YXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRvcl07XG4iIFwKICAgICAiICAgIGlmIChp
dGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwKICAgICAiICAgICAgICBpZiAodHlwZW9mIGl0
ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICAgICAgdGhy
b3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5
IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlz
dHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgICAgICAvL1xu
IiBcCiAgICAgIiAgICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5j
dGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooKSkgOiBbXTtcbiIgXAotICAgICJcbiIgXAog
ICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAogICAgICIgICAgICAgIHZhciBpdGVyYXRvciA9
IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAg
ICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAog
ICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xuIiBcCiAgICAgIiAgICAgICAgICAgIFtAc3lt
Ym9sSXRlcmF0b3JdKCkge1xuIiBcCiAgICAgIiAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3I7XG4iIFwKICAgICAiICAgICAgICAgICAgfVxuIiBcCiAgICAgIiAgICAgICAgfTtcbiIgXAot
ICAgICJcbiIgXAogICAgICIgICAgICAgIGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIg
XAogICAgICIgICAgICAgICAgICBpZiAobWFwRm4pXG4iIFwKICAgICAiICAgICAgICAgICAgICAg
IEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZu
KHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBrKSk7XG4iIFwKQEAgLTE4
MiwxNyArMTY4LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUg
PQogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUp
O1xuIiBcCiAgICAgIiAgICAgICAgICAgIGsgKz0gMTtcbiIgXAogICAgICIgICAgICAgIH1cbiIg
XAotICAgICJcbiIgXAogICAgICIgICAgICAgIHJlc3VsdC5sZW5ndGggPSBrO1xuIiBcCiAgICAg
IiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAgICIgICAgfVxuIiBcCi0gICAgIlxuIiBc
CiAgICAgIiAgICB2YXIgYXJyYXlMaWtlID0gQE9iamVjdChpdGVtcyk7XG4iIFwKICAgICAiICAg
IHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9MZW5ndGgoYXJyYXlMaWtlLmxlbmd0aCk7XG4iIFwK
LSAgICAiXG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZhciByZXN1bHQgPSAodHlw
ZW9mIHRoaXNPYmogPT09IFwiZnVuY3Rpb25cIikgPyBAT2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5
TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShhcnJheUxpa2VMZW5ndGgpO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICB2YXIgayA9IDA7XG4iIFwKICAgICAiICAgIHdoaWxlIChrIDwgYXJyYXlM
aWtlTGVuZ3RoKSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgdmFsdWUgPSBhcnJheUxpa2Vba107
XG4iIFwKQEAgLTIwMiw3ICsxODMsNiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rv
ckZyb21Db2RlID0KICAgICAiICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywg
dmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgayArPSAxO1xuIiBcCiAgICAgIiAgICB9XG4iIFwK
LSAgICAiXG4iIFwKICAgICAiICAgIHJlc3VsdC5sZW5ndGggPSBhcnJheUxpa2VMZW5ndGg7XG4i
IFwKICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iIFwKICAgICAifSlcbiIgXApAQCAtMjEyLDcg
KzE5Miw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogI2Rl
ZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJn
dW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0
b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygp
LT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMo
KS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJs
ZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFi
bGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5z
aWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOQ09OU1RSVUNUT1JfQlVJTFRJTl9DT0RFKERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpz
LXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1y
ZXN1bHQKaW5kZXggZDU2OWFjNS4uMjcwNzJkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50
ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1J
bnRlcm5hbENsYXNoaW5nTmFtZXMtQ29tYmluZWQuanMtcmVzdWx0CkBAIC01OSw2ICs1OSw4IEBA
IGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19pbnRlcm5hbENsYXNoaW5nTmFt
ZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVO
Q1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3JvKGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwK
IAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05B
TUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1l
LCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0
YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwNiwyOSArMTA4LDMw
IEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQog
CiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNp
bmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVD
b25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7
Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2Vk
Q29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJp
bnNpYyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50
cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGlu
Z05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVh
bSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4i
IFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05h
bWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNo
aW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50
IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGgg
PSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2ludGVybmFsQ2xhc2hpbmdOYW1l
c0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsK
IGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAi
ICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0
cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTEzNyw3ICsxNDAsNyBAQCBj
b25zdCBjaGFyKiBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlv
bk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFt
ZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhl
Y3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRp
bkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFt
ZSMjSW50cmluc2ljKTsgfQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElO
X0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNv
cmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggNWI2
MWQyZi4uNGUyNTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJk
LVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQt
U2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xNjIsNiArMTYyLDcgQEAgaW5saW5lIHZvaWQgQXJiaXRy
YXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogCiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJs
ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTcwLDEyICsxNzEsMTIg
QEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6
ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNvbnN0cnVj
dEFiaWxpdHkgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25z
dHJ1Y3Q7Ci1jb25zdCBpbnQgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0
cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MTsKK2NvbnN0IGludCBzX2FyYml0cmFyeUNvbmRpdGlv
bmFsR3VhcmRJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNv
bnN0IEpTQzo6SW50cmluc2ljIHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIq
IHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0K
ICAgICAiKGZ1bmN0aW9uIChzdHJlYW0pXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgIFwidXNl
IHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICByZXR1cm4gISFzdHJlYW0uQHJl
YWRlcjtcbiIgXAogICAgICJ9KVxuIiBcCiA7CkBAIC0xODUsNyArMTg2LDcgQEAgY29uc3QgY2hh
ciogc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUg
PQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYg
dm0pIFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxK
U1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEt
PmJ1aWx0aW5GdW5jdGlvbnMoKS5hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkQnVpbHRpbnMoKS5j
b2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rp
b25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJj
ZSgpKTsgXAorICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRy
YXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmFyYml0cmFyeUNvbmRpdGlvbmFs
R3VhcmRCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1l
IyNJbnRyaW5zaWMpOyBcCiB9CiBXRUJDT1JFX0ZPUkVBQ0hfQVJCSVRSQVJZQ09ORElUSU9OQUxH
VUFSRF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBh
cmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApp
bmRleCA1YjE1NDRjLi44M2RlYzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNl
cGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJl
c3VsdApAQCAtMTYyLDYgKzE2Miw3IEBAIGlubGluZSB2b2lkIEd1YXJkZWRCdWlsdGluQnVpbHRp
bnNXcmFwcGVyOjpleHBvcnROYW1lcygpCiAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FeGVjdXRhYmxlLmg+CisjaW5jbHVkZSA8cnVudGltZS9J
bnRyaW5zaWMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmg+CkBAIC0xNzAsMTIgKzE3MSwxMiBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkQnVp
bHRpbkJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1Jl
YWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50
cmluc2ljIHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNp
YyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAg
ICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAi
ICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE4
NSw3ICsxODYsNyBAQCBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0
b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJu
IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCku
Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0
aW9ucygpLmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcCisg
ICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1
aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVp
bHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNl
KCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JF
QUNIX0dVQVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1Ip
CiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJu
YWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1M2I1NTUyLi4xYzYxYWFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTE5
NCw2ICsxOTQsNyBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbkZ1
bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaQogCiAjaW5jbHVkZSAiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjAyLDEyICsyMDMsMTIgQEAgaW5saW5lIHZv
aWQgR3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xv
dFZpc2l0b3ImIHZpc2kKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3Ry
dWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc19ndWFyZGVkSW50ZXJuYWxCdWlsdGlu
SXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6
OkludHJpbnNpYyBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2Vk
Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRJ
bnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlv
biAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIg
XAotICAgICJcbiIgXAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAg
ICAifSlcbiIgXAogOwpAQCAtMjE3LDcgKzIxOCw3IEBAIGNvbnN0IGNoYXIqIHNfZ3VhcmRlZElu
dGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpT
Vk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25z
KCkuZ3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUo
KS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5h
bEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4gY2xp
ZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5CdWlsdGlu
cygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5G
dW5jdGlvbnMoKS5ndWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291
cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9G
T1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElO
X0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRl
ZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDdjOTZiOWYuLmNlZGY4ZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29y
ZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTU2LDYgKzE1Niw3IEBA
IGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dyYXBwZXI6OmV4cG9ydE5hbWVz
KCkKIAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxydW50aW1l
L0V4ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0ludHJpbnNpYy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ2VsbElu
bGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4KQEAgLTE2NCwx
MiArMTY1LDEyIEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dyYXBwZXI6
OmV4cG9ydE5hbWVzKCkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlQ29u
c3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0Owot
Y29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVu
Z3RoID0gNzE7Citjb25zdCBpbnQgc191bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxv
Y2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX3VuZ3Vh
cmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9J
bnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFt
TG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIgXAog
ICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmV0dXJu
ICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMTc5LDcgKzE4MCw3
IEBAIGNvbnN0IGNoYXIqIHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnRE
YXRhLT5idWlsdGluRnVuY3Rpb25zKCkudW5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygp
LnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICBy
ZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWls
dGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0
aW5GdW5jdGlvbnMoKS51bmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNl
KCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JF
QUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRP
UikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1s
Q2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJh
dGUuanMtcmVzdWx0CmluZGV4IDcyNmIyODEuLjE1NDRkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1s
Q2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNpbmdUZXN0LVNl
cGFyYXRlLmpzLXJlc3VsdApAQCAtMjA4LDYgKzIwOCw3IEBAIGlubGluZSB2b2lkIHhtbENhc2lu
Z1Rlc3RCdWlsdGluRnVuY3Rpb25zOjp2aXNpdChKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
CiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhl
Y3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjE2LDIzICsy
MTcsMjMgQEAgaW5saW5lIHZvaWQgeG1sQ2FzaW5nVGVzdEJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0
KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX3htbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUNv
bnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsK
LWNvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUxlbmd0aCA9IDcxOwor
Y29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rlc3RDb2RlTGVuZ3RoID0gNzA7Citz
dGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENv
ZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc194bWxDYXNpbmdU
ZXN0WE1MQ2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAg
ICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAi
ICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29u
c3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlTGVuZ3RoID0gNDAy
OworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlTGVuZ3RoID0gNDAx
Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rl
c3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfeG1sQ2Fz
aW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlID0KICAgICAiKGZ1bmN0aW9uIChzdHJlYW0sIHJlYXNv
bilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAg
IlxuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFtQ2xv
c2VkKVxuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuIiBcCiAg
ICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFtRXJyb3JlZClcbiIg
XApAQCAtMjQ0LDEyICsyNDUsMTIgQEAgY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0Q3NzQ2Fz
aW5nVGVzdENvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc194bWxDYXNp
bmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc194bWxDYXNpbmdUZXN0VXJsQ2Fz
aW5nVGVzdENvZGVMZW5ndGggPSAzMzg7Citjb25zdCBpbnQgc194bWxDYXNpbmdUZXN0VXJsQ2Fz
aW5nVGVzdENvZGVMZW5ndGggPSAzMzc7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194
bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2lj
OwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGUgPQogICAgICIo
ZnVuY3Rpb24gKG9iamVjdCwga2V5LCBhcmdzKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAg
XCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHRyeSB7XG4iIFwKICAg
ICAiICAgICAgICB2YXIgbWV0aG9kID0gb2JqZWN0W2tleV07XG4iIFwKICAgICAiICAgICAgICBp
ZiAodHlwZW9mIG1ldGhvZCA9PT0gXCJ1bmRlZmluZWRcIilcbiIgXApAQCAtMjY4LDcgKzI2OSw3
IEBAIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdFVybENhc2luZ1Rlc3RDb2RlID0KIEpTQzo6
RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7
XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVu
dERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGlu
RnVuY3Rpb25zKCkueG1sQ2FzaW5nVGVzdEJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUo
KS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RC
dWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+
YnVpbHRpbkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RCdWlsdGlucygpLmNvZGVOYW1lIyNFeGVj
dXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS54bWxDYXNp
bmdUZXN0QnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFt
ZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX1hNTENBU0lOR1RFU1RfQlVJTFRJ
Tl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Fy
cmF5SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNTY1OTVmNy4uY2JhZmNiOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUu
anMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuanMKQEAgLTQxLDYgKzQxLDcgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgcmV0dXJuIG5l
eHQuQGNhbGwodGhpcyk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJh
dG9yVmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC02Myw2ICs2NCw3IEBAIGZ1
bmN0aW9uIGFycmF5SXRlcmF0b3JWYWx1ZU5leHQoKQogICAgIHJldHVybiB7IGRvbmUsIHZhbHVl
IH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgp
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODUsNiArODcsNyBAQCBmdW5jdGlvbiBhcnJheUl0
ZXJhdG9yS2V5TmV4dCgpCiAgICAgcmV0dXJuIHsgZG9uZSwgdmFsdWUgfTsKIH0KIAorQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHQoKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9B
cnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVBy
b3RvdHlwZS5qcwppbmRleCAwMzMzYzcxLi5iNWQzMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCkBAIC0yNSw2ICsyNSw3IEBACiAg
Ki8KIAogQGNvbnN0cnVjdG9yCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gY3JlYXRlQXJyYXlJ
dGVyYXRvcihpdGVyYXRlZE9iamVjdCwga2luZCwgaXRlcmF0aW9uRnVuY3Rpb24pCiB7CiAgICAg
dGhpcy5AaXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRlZE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAppbmRleCBiNmY0ZTM4Li4wYmJhMTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywx
MSArMjcsMTM5IEBACiAjZGVmaW5lIEJ1aWx0aW5OYW1lc19oCiAKICNpbmNsdWRlICJCdWlsdGlu
VXRpbHMuaCIKKyNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVk
ZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAorI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFD
SF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCisgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5T
SUNfRlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNPREVf
SU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBtYWNybyhpdGVyYXRl
ZE9iamVjdCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNy
byhhcnJheUl0ZXJhdGlvbktpbmQpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dCkgXAor
ICAgIG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdG9y
S2luZCkgXAorICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwKKyAgICBtYWNybyhpdGVyYXRlZFN0cmlu
ZykgXAorICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBcCisgICAgbWFjcm8ocHJv
bWlzZSkgXAorICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFuZGxlcikgXAorICAgIG1hY3JvKHJlamVj
dGlvbkhhbmRsZXIpIFwKKyAgICBtYWNybyhpbmRleCkgXAorICAgIG1hY3JvKGRlZmVycmVkKSBc
CisgICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCisgICAgbWFjcm8oT2JqZWN0KSBcCisgICAg
bWFjcm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykgXAorICAgIG1hY3JvKE51bWJlcikgXAor
ICAgIG1hY3JvKEFycmF5KSBcCisgICAgbWFjcm8oU3RyaW5nKSBcCisgICAgbWFjcm8oUmVnRXhw
KSBcCisgICAgbWFjcm8oTWFwKSBcCisgICAgbWFjcm8oUHJvbWlzZSkgXAorICAgIG1hY3JvKFJl
ZmxlY3QpIFwKKyAgICBtYWNybyhJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhhYnMpIFwK
KyAgICBtYWNybyhmbG9vcikgXAorICAgIG1hY3JvKHRydW5jKSBcCisgICAgbWFjcm8oaXNGaW5p
dGUpIFwKKyAgICBtYWNybyhpc05hTikgXAorICAgIG1hY3JvKGNyZWF0ZSkgXAorICAgIG1hY3Jv
KGRlZmluZVByb3BlcnR5KSBcCisgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKKyAgICBtYWNy
byhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5h
bWVzKSBcCisgICAgbWFjcm8ob3duS2V5cykgXAorICAgIG1hY3JvKEVycm9yKSBcCisgICAgbWFj
cm8oUmFuZ2VFcnJvcikgXAorICAgIG1hY3JvKFR5cGVFcnJvcikgXAorICAgIG1hY3JvKHR5cGVk
QXJyYXlMZW5ndGgpIFwKKyAgICBtYWNybyh0eXBlZEFycmF5U29ydCkgXAorICAgIG1hY3JvKHR5
cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oQnVpbHRpbkxvZykg
XAorICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKKyAgICBtYWNybyhnZXRUZW1wbGF0ZU9iamVjdCkg
XAorICAgIG1hY3JvKGVucXVldWVKb2IpIFwKKyAgICBtYWNybyhoYW5kbGVyKSBcCisgICAgbWFj
cm8ocHJvbWlzZVN0YXRlKSBcCisgICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwK
KyAgICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25zKSBcCisgICAgbWFjcm8ocHJvbWlzZVJl
c3VsdCkgXAorICAgIG1hY3JvKHB1c2gpIFwKKyAgICBtYWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwK
KyAgICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKKyAgICBtYWNybyhzdGFyRGVmYXVsdCkgXAorICAg
IG1hY3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikgXAorICAgIG1hY3JvKGdldCkgXAorICAg
IG1hY3JvKHNldCkgXAorICAgIG1hY3JvKHNoaWZ0KSBcCisgICAgbWFjcm8oYWxsb2NhdGVUeXBl
ZEFycmF5KSBcCisgICAgbWFjcm8oSW50OEFycmF5KSBcCisgICAgbWFjcm8oSW50MTZBcnJheSkg
XAorICAgIG1hY3JvKEludDMyQXJyYXkpIFwKKyAgICBtYWNybyhVaW50OEFycmF5KSBcCisgICAg
bWFjcm8oVWludDhDbGFtcGVkQXJyYXkpIFwKKyAgICBtYWNybyhVaW50MTZBcnJheSkgXAorICAg
IG1hY3JvKFVpbnQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCisgICAgbWFj
cm8oRmxvYXQ2NEFycmF5KSBcCisgICAgbWFjcm8oZXhlYykgXAorICAgIG1hY3JvKGdlbmVyYXRv
cikgXAorICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JTdGF0
ZSkgXAorICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yVmFs
dWUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yUmVz
dW1lTW9kZSkgXAorICAgIG1hY3JvKENvbGxhdG9yKSBcCisgICAgbWFjcm8oRGF0ZVRpbWVGb3Jt
YXQpIFwKKyAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKKyAgICBtYWNybyhpbnRsU3Vic3RpdHV0
ZVZhbHVlKSBcCisgICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAorICAgIG1hY3JvKHRoaXNOdW1i
ZXJWYWx1ZSkgXAorICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCisgICAgbWFjcm8oZGVyaXZl
ZENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8o
aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikgXAorICAg
IG1hY3JvKGlzQXJyYXkpIFwKKyAgICBtYWNybyhpc0FycmF5Q29uc3RydWN0b3IpIFwKKyAgICBt
YWNybyhpc0NvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKKyAgICBt
YWNybyhjb25jYXRNZW1jcHkpIFwKKyAgICBtYWNybyhhcHBlbmRNZW1jcHkpIFwKKyAgICBtYWNy
byhwcmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRzKSBcCisgICAgbWFjcm8ocHJpbnQpIFwK
KyAgICBtYWNybyhpc1NldCkgXAorICAgIG1hY3JvKGlzTWFwKSBcCisgICAgbWFjcm8ocmVnRXhw
Q3JlYXRlKSBcCisgICAgbWFjcm8oU2V0SXRlcmF0b3IpIFwKKyAgICBtYWNybyhzZXRJdGVyYXRv
ck5leHQpIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdSZWdFeHApIFwKKyAgICBtYWNybyhyZXBs
YWNlVXNpbmdTdHJpbmdTZWFyY2gpIFwKKyAgICBtYWNybyhNYXBJdGVyYXRvcikgXAorICAgIG1h
Y3JvKG1hcEl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCisg
ICAgbWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dl
dHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyKSBcCisgICAgbWFjcm8o
cmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0
aWxpbmVHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b1NvdXJjZUdldHRlcikgXAorICAg
IG1hY3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9V
bmljb2RlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSkg
XAorICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwU2VhcmNo
RmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFRl
c3RGYXN0KSBcCisgICAgbWFjcm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5hbCkgXAorICAgIG1hY3Jv
KHN0cmluZ1NwbGl0RmFzdCkgXAorICAgIG1hY3JvKHN0cmluZ1N1YnN0ckludGVybmFsKQorCisK
ICNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3ByaXZh
dGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNuYW1l
KTsKICNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBtX3B1
YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZhdGVO
YW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVy
YXRvclByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0
b3JQcm90b3R5cGUuanMKaW5kZXggNjk0NjNjMy4uM2MxNDA2OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSw2ICsyNiw3IEBACiAKIC8vIDI1LjMuMy4zIEdlbmVyYXRvclJlc3VtZSAoIGdlbmVyYXRvciwg
dmFsdWUgKQogLy8gMjUuMy4zLjQgR2VuZXJhdG9yUmVzdW1lQWJydXB0KGdlbmVyYXRvciwgYWJy
dXB0Q29tcGxldGlvbikKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUo
Z2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKaW5kZXgg
OGJhMzQ5MC4uNTc3NmEyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
R2xvYmFsT2JqZWN0LmpzCkBAIC0yNiw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9JbnRlZ2VyKHRhcmdldCkKIHsKICAgICAidXNlIHN0cmlj
dCI7CkBAIC0zOCw2ICszOSw3IEBAIGZ1bmN0aW9uIHRvSW50ZWdlcih0YXJnZXQpCiAgICAgcmV0
dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0
b0xlbmd0aCh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDgsNiArNTAsNyBAQCBm
dW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAgICAgcmV0dXJuIGxlbmd0aCA+IDAgPyAobGVuZ3Ro
IDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGggOiBtYXhTYWZlSW50ZWdlcikgOiAwOwogfQogCitA
Z2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC01NywxMSArNjAsMTMgQEAgZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVj
dCkKIAogLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5hbWUgY2hhbmdlZCB0byAi
Z2V0IFtTeW1ib2wuc3BlY2llc10iLgogLy8gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gc3BlY2llc0dl
dHRlcigpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3IpCiB7CiAgICAgdmFy
IGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4IGM0ZTU5YmIuLjE5MWRi
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3Bl
cmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9w
ZXJhdGlvbnMuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1
c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIEBpbnRlcm5hbAogCitAZ2xvYmFsUHJp
dmF0ZQogZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2UpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpA
QCAtMzIsNiArMzQsNyBAQCBmdW5jdGlvbiBpc1Byb21pc2UocHJvbWlzZSkKICAgICByZXR1cm4g
QGlzT2JqZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5AcHJvbWlzZVN0YXRlOwogfQogCitAZ2xv
YmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJlYWN0aW9uKGNhcGFiaWxpdHksIGhhbmRs
ZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDIsNiArNDUsNyBAQCBmdW5jdGlvbiBuZXdQ
cm9taXNlUmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxlcikKICAgICB9OwogfQogCitAZ2xvYmFs
UHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHkoY29uc3RydWN0b3IpCiB7CiAg
ICAgInVzZSBzdHJpY3QiOwpAQCAtODAsNiArODQsNyBAQCBmdW5jdGlvbiBuZXdQcm9taXNlQ2Fw
YWJpbGl0eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHk7CiB9CiAK
K0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlv
bnMsIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTg4LDYgKzkzLDcgQEAgZnVu
Y3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCBhcmd1bWVudCkKICAgICAg
ICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgW3JlYWN0aW9uc1tpbmRleF0sIGFy
Z3VtZW50XSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiByZWplY3RQcm9taXNlKHBy
b21pc2UsIHJlYXNvbikKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xMDMsNiArMTA5LDcgQEAg
ZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCiAgICAgQHRyaWdnZXJQcm9t
aXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1
bmN0aW9uIGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZhbHVlKQogewogICAgICJ1c2Ugc3RyaWN0
IjsKQEAgLTExOCw2ICsxMjUsNyBAQCBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNlLCB2
YWx1ZSkKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7CiB9
CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMocHJv
bWlzZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0xNjQsNiArMTcyLDcgQEAgZnVuY3Rpb24g
Y3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2UpCiAgICAgfTsKIH0KIAorQGdsb2JhbFBy
aXZhdGUKIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiB7
CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTgwLDYgKzE4OSw3IEBAIGZ1bmN0aW9uIHByb21pc2VS
ZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgcmV0dXJuIHByb21pc2VDYXBhYmls
aXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJlc3VsdCk7CiB9CiAKK0BnbG9iYWxQcml2
YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VUb1Jlc29sdmUs
IHRoZW5hYmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTE5Myw2ICsyMDMsNyBA
QCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKHByb21pc2VUb1Jlc29sdmUsIHRo
ZW5hYmxlLCB0aGVuKQogICAgIH0KIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGluaXRp
YWxpemVQcm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4IDI5NTdm
MTQuLjlkOTQ1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9S
ZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Jl
Z0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFkdmFuY2VTdHJpbmdJbmRleChzdHJpbmcsIGlu
ZGV4LCB1bmljb2RlKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBBZHZhbmNl
U3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAyMS4yLjUuMi4zLgpAQCAtNDUsNiArNDYsNyBA
QCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBpbmRleCwgdW5pY29kZSkKICAg
ICByZXR1cm4gaW5kZXggKyAyOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVnRXhw
RXhlYyhyZWdleHAsIHN0cikKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC02MCw2ICs2Miw3IEBA
IGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBzdHIpCiAgICAgcmV0dXJuIGJ1aWx0aW5FeGVj
LkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoKHJlZ2V4cCkgewogICAgIC8vIFRoaXMg
aXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50ZXJuYWwgZnVuY3Rpb24uCiAgICAgbGV0
IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAsICJleGVjIik7CkBAIC0zMjYsNiArMzI5
LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAgICByZXR1cm4gcmVzdWx0LmluZGV4Owog
fQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9y
UmVnRXhwU3BsaXQocmVnZXhwKSB7CiAgICAgLy8gVGhpcyBpcyBhY2Nlc3NlZCBieSB0aGUgUmVn
RXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlvbi4KICAgICBsZXQgcmVnZXhwRXhlYyA9IEB0cnlHZXRC
eUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDg5NjUxMGMuLmVmYjg1N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtNDYs
NiArNDYsNyBAQCBmdW5jdGlvbiBtYXRjaChyZWdleHApCiAgICAgcmV0dXJuIGNyZWF0ZWRSZWdF
eHAuQG1hdGNoU3ltYm9sKHRoaXNTdHJpbmcpOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rp
b24gcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBA
IC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpCiAg
ICAgfQogfQogCi0KK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xv
d1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0yMDIsNiArMjAz
LDcgQEAgZnVuY3Rpb24gcGFkRW5kKG1heExlbmd0aC8qLCBmaWxsU3RyaW5nKi8pCiAgICAgcmV0
dXJuIHN0cmluZyArIHRydW5jYXRlZFN0cmluZ0ZpbGxlcjsKIH0KIAorQGdsb2JhbFByaXZhdGUK
IGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UocmVnZXhw
LCByZXBsYWNlcikgewogICAgIGlmIChyZXBsYWNlciAhPT0gQHJlZ0V4cFByb3RvdHlwZVN5bWJv
bFJlcGxhY2UpCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCmlu
ZGV4IDQ5YmZmNDAuLjE5M2QyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAgLTI2LDgg
KzI2LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgiCisj
aW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIK
LSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21p
c2UuaCIKQEAgLTM2LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNkZWZpbmUgSU5J
VElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJ
bnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMtPm5hbWUjI1ByaXZhdGVOYW1lLmltcGwo
KSwgJkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfIyNuYW1lKTsKKyNkZWZp
bmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0
ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5h
bWUjI1ByaXZhdGVOYW1lKCkuaW1wbCgpLCAmQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2lu
dHJpbnNpY18jI25hbWUpOwogCiBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpCeXRlY29kZUlu
dHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICA6IG1fdm0odm0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmlu
ZGV4IDM5OWMyZTguLjkxZjVjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC05MTAsMTIgKzkxMCwx
MiBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRl
eHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogCiAgICAgICAgIGlmIChtX2NvZGVUeXBlID09
IEZ1bmN0aW9uQ29kZSAmJiBpc05ld1RhcmdldFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7
CiAgICAgICAgICAgICBvZmZzZXQgPSBmdW5jdGlvblN5bWJvbFRhYmxlLT50YWtlTmV4dFNjb3Bl
T2Zmc2V0KCk7Ci0gICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5n
TmVjZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZS5pbXBs
KCksIFN5bWJvbFRhYmxlRW50cnkoVmFyT2Zmc2V0KG9mZnNldCkpKTsKKyAgICAgICAgICAgIGZ1
bmN0aW9uU3ltYm9sVGFibGUtPnNldChOb0xvY2tpbmdOZWNlc3NhcnksIHByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1i
b2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3Ry
dWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkg
ewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJsZS0+dGFrZU5leHRTY29w
ZU9mZnNldChOb0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xU
YWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25z
dHJ1Y3RvclByaXZhdGVOYW1lLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zm
c2V0KSkpOworICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05l
Y2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3Rv
clByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQp
KSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm47CkBAIC05MzAsMTMgKzkzMCwxMyBAQCB2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29w
ZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogICAgIH0KICAgICAKICAgICBpZiAobV9jb2RlVHlwZSA9
PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkg
ewotICAgICAgICBhdXRvIGFkZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVz
KCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7CisgICAgICAgIGF1dG8gYWRkVGFyZ2V0ID0g
ZW52aXJvbm1lbnQuYWRkKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRM
b2NhbFByaXZhdGVOYW1lKCkpOwogICAgICAgICBhZGRUYXJnZXQuaXRlcmF0b3ItPnZhbHVlLnNl
dElzQ2FwdHVyZWQoKTsKICAgICAgICAgYWRkVGFyZ2V0Lml0ZXJhdG9yLT52YWx1ZS5zZXRJc0xl
dCgpOwogICAgIH0KIAogICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5k
KCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93
RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25t
ZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOwor
ICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0
eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7
CiAgICAgICAgIGRlcml2ZWRDb25zdHJ1Y3Rvci5pdGVyYXRvci0+dmFsdWUuc2V0SXNDYXB0dXJl
ZCgpOwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNldElzTGV0
KCk7CiAgICAgfQpAQCAtMjk3Nyw5ICsyOTc3LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDYWxsRXZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEMK
IAogRXhwZWN0ZWRGdW5jdGlvbiBCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZv
cklkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICBpZiAoaWRl
bnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3QgfHwgaWRlbnRpZmllciA9PSBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRlTmFtZSkKKyAgICBpZiAoaWRlbnRpZmll
ciA9PSBwcm9wZXJ0eU5hbWVzKCkuT2JqZWN0IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1l
cygpLmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCkpCiAgICAgICAgIHJldHVybiBF
eHBlY3RPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5BcnJheSB8fCBpZGVudGlmaWVyID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPkFy
cmF5UHJpdmF0ZU5hbWUpCisgICAgaWYgKGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLkFy
cmF5IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLkFycmF5
UHJpdmF0ZU5hbWUoKSkKICAgICAgICAgcmV0dXJuIEV4cGVjdEFycmF5Q29uc3RydWN0b3I7CiAg
ICAgcmV0dXJuIE5vRXhwZWN0ZWRGdW5jdGlvbjsKIH0KQEAgLTQwNDUsNyArNDA0NSw3IEBAIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0
ZXJJRCogZHN0LCBUYWdnZWRUZW1wCiAgICAgfQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGdl
dFRlbXBsYXRlT2JqZWN0ID0gbnVsbHB0cjsKLSAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJsZShw
cm9wZXJ0eU5hbWVzKCkuZ2V0VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSk7CisgICAgVmFyaWFi
bGUgdmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdldFRlbXBs
YXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gdmFy
LmxvY2FsKCkpCiAgICAgICAgIGdldFRlbXBsYXRlT2JqZWN0ID0gZW1pdE1vdmUobmV3VGVtcG9y
YXJ5KCksIGxvY2FsKTsKICAgICBlbHNlIHsKQEAgLTQyMzUsMTYgKzQyMzUsMTYgQEAgdm9pZCBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRUaGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52
aXJvbm1lbnQoKQogICAgIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2Fk
TmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZh
cmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRM
b2NhbFByaXZhdGVOYW1lKTsKKyAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShw
cm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgp
KTsKIAotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsIGVt
aXRMb2FkQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkubmV3
VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsK
KyAgICByZXR1cm4gZW1pdEdldEZyb21TY29wZShtX25ld1RhcmdldFJlZ2lzdGVyLCBlbWl0TG9h
ZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUoKSksIG5ld1RhcmdldFZhciwgVGhyb3dJ
Zk5vdEZvdW5kKTsKICAgICAKIH0KIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRMb2FkRGVyaXZlZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1l
bnQoKQogewotICAgIFZhcmlhYmxlIHByb3RvU2NvcGVWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5h
bWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpOwotICAgIHJldHVybiBlbWl0R2V0
RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52
aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKSwg
cHJvdG9TY29wZVZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICBWYXJpYWJsZSBwcm90b1Njb3Bl
VmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25z
dHJ1Y3RvclByaXZhdGVOYW1lKCkpOworICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1Rl
bXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVy
dHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkp
LCBwcm90b1Njb3BlVmFyLCBUaHJvd0lmTm90Rm91bmQpOwogfQogCiBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW5zdXJlVGhpcygpCkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lkIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNj
b3BlKCkKICAgICBpZiAoaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewog
ICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJl
Z2lzdGVyKTsKICAgICAgICAgCi0gICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlh
YmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICAgICAg
VmFyaWFibGUgbmV3VGFyZ2V0VmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGVtaXRQdXRUb1Nj
b3BlKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlciwgbmV3
VGFyZ2V0VmFyLCBuZXdUYXJnZXQoKSwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0
aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgIH0KIH0KQEAgLTQyOTksNyArNDI5OSw3IEBA
IHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93
RnVuY3Rpb25Db250ZXh0U2NvcGUoKQogICAgICAgICBpZiAoaXNTdXBlclVzZWRJbklubmVyQXJy
b3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4
dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
VmFyaWFibGUgcHJvdG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29u
c3RydWN0b3JQcml2YXRlTmFtZSk7CisgICAgICAgICAgICBWYXJpYWJsZSBwcm90b1Njb3BlID0g
dmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3Rv
clByaXZhdGVOYW1lKCkpOwogICAgICAgICAgICAgZW1pdFB1dFRvU2NvcGUobV9hcnJvd0Z1bmN0
aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyLCBwcm90b1Njb3BlLCAmbV9jYWxs
ZWVSZWdpc3RlciwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5p
dGlhbGl6YXRpb24pOwogICAgICAgICB9CiAgICAgfQpAQCAtNDU2NCw3ICs0NTY0LDcgQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQq
IGFyZ3VtZW50LCBUaHJvd2FibGUKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0
b3JTdGF0ZUNoYW5nZShpbnQzMl90IHN0YXRlKQogewogICAgIFJlZ2lzdGVySUQqIGNvbXBsZXRl
ZFN0YXRlID0gZW1pdExvYWQobnVsbHB0ciwganNOdW1iZXIoc3RhdGUpKTsKLSAgICBlbWl0UHV0
QnlJZChnZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQ
cml2YXRlTmFtZSwgY29tcGxldGVkU3RhdGUpOworICAgIGVtaXRQdXRCeUlkKGdlbmVyYXRvclJl
Z2lzdGVyKCksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVBy
aXZhdGVOYW1lKCksIGNvbXBsZXRlZFN0YXRlKTsKIH0KIAogdm9pZCBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEdlbmVyYXRvclN0YXRlTGFiZWwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDIzYzAyNmIuLmI2ZDBhMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9t
ZU9iamVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogewogICAgIGlm
IChnZW5lcmF0b3IuaXNEZXJpdmVkQ2xhc3NDb250ZXh0KCkgfHwgZ2VuZXJhdG9yLmlzRGVyaXZl
ZENvbnN0cnVjdG9yQ29udGV4dCgpKSB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGRlcml2ZWRDb25z
dHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1
bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1p
dEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29uc3RydWN0b3IsIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICAgICAg
cmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGRl
cml2ZWRDb25zdHJ1Y3RvciwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMo
KS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgfQogCiAgICAgUmVnaXN0ZXJJRCBjYWxs
ZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KEpTU3RhY2s6OkNhbGxlZSk7Ci0gICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVjdFByaXZhdGVOYW1lKTsKKyAgICByZXR1
cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgJmNhbGxl
ZSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJp
dmF0ZU5hbWUoKSk7CiB9CiAKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2Fs
bGVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCkBAIC00NTcsNyArNDU3LDcgQEAgUmVn
aXN0ZXJJRCogT2JqZWN0TGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3QKIAogc3RhdGljIGlubGluZSB2b2lkIGVtaXRQdXRIb21lT2Jq
ZWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGZ1bmN0aW9uLCBS
ZWdpc3RlcklEKiBob21lT2JqZWN0KQogewotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5j
dGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUsIGhv
bWVPYmplY3QpOworICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9y
LnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSwg
aG9tZU9iamVjdCk7CiB9CiAKIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0z
MjgyLDE0ICszMjgyLDE0IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCiAgICAgICAgIC8vIEJ1dCB0byBt
YWtlIGl0IGVmZmljaWVudCwgd2Ugd2lsbCBpbnRyb2R1Y2UgSlNHZW5lcmF0b3IgY2xhc3MsIGFk
ZCBvcGNvZGUgbmV3X2dlbmVyYXRvciBhbmQgdXNlIGl0cyBDKysgZmllbGRzIGluc3RlYWQgb2Yg
dGhlc2UgcHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJl
Y3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVy
dHlOYW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRlTmFtZSwgbmV4dC5nZXQoKSwgUHJvcGVydHlO
b2RlOjpLbm93bkRpcmVjdCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChn
ZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgbmV4dC5nZXQoKSwgUHJv
cGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQ
dXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlO
YW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLnRoaXNSZWdpc3Rlcigp
LCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJl
Y3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVy
dHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSgpLCBnZW5l
cmF0b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCiAgICAg
ICAgIFJlZ2lzdGVySUQqIGluaXRpYWxTdGF0ZSA9IGdlbmVyYXRvci5lbWl0TG9hZChudWxscHRy
LCBqc051bWJlcigwKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5l
cmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5l
cmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6S25vd25E
aXJlY3QpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdl
bmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVz
KCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBpbml0aWFsU3RhdGUsIFByb3BlcnR5Tm9k
ZTo6S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChn
ZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5n
ZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lLCBnZW5lcmF0b3IuZW1pdExvYWQobnVsbHB0ciwganNO
dWxsKCkpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVt
aXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0b3Iu
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUo
KSwgZ2VuZXJhdG9yLmVtaXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJvcGVydHlOb2RlOjpL
bm93bkRpcmVjdCk7CiAKICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0KCkgPj0gbGluZVN0YXJ0
T2Zmc2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsTGVhdmVDYWxs
RnJhbWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGNjYjAxOTYu
LmRmMmM5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpJVEV4Y2Vw
dGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZp
cm9ubWVudC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVw
YXRjaC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0lu
amVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAwZWVmODlhLi40YTdkNTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHRIb3N0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNB
cnJheS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTQm91bmRG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9u
LmgiCkBAIC0xNzYsOCArMTc1LDcgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6c3Vi
dHlwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTV2Vha1NldDo6
aW5mbygpKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxp
dGVyYWwoIndlYWtzZXQiKSk7CiAKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNBcnJheUl0ZXJh
dG9yOjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTTWFwSXRlcmF0b3I6Omlu
Zm8oKSkKKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNNYXBJdGVyYXRvcjo6aW5mbygpKQogICAg
ICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1NldEl0ZXJhdG9yOjppbmZvKCkpCiAgICAgICAgIHx8
IHZhbHVlLmluaGVyaXRzKEpTU3RyaW5nSXRlcmF0b3I6OmluZm8oKSkKICAgICAgICAgfHwgdmFs
dWUuaW5oZXJpdHMoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6aW5mbygpKSkKQEAgLTMxOSwyOCAr
MzE3LDYgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0
aWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChKU0FycmF5
SXRlcmF0b3IqIGFycmF5SXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+
KHZhbHVlKSkgewotICAgICAgICBTdHJpbmcga2luZDsKLSAgICAgICAgc3dpdGNoIChhcnJheUl0
ZXJhdG9yLT5raW5kKGV4ZWMpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5OgotICAg
ICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgia2V5Iik7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVWYWx1ZToKLSAgICAgICAgICAgIGtpbmQgPSBBU0NJ
SUxpdGVyYWwoInZhbHVlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJh
eUl0ZXJhdGVLZXlWYWx1ZToKLSAgICAgICAgICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoImtleSt2
YWx1ZSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgdW5zaWduZWQg
aW5kZXggPSAwOwotICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXko
ZXhlYywgbnVsbHB0ciwgMik7Ci0gICAgICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkp
Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgYXJyYXktPnB1dERp
cmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoZXhlYywg
ImFycmF5IiwgYXJyYXlJdGVyYXRvci0+aXRlcmF0ZWRWYWx1ZShleGVjKSkpOwotICAgICAgICBh
cnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywgY29uc3RydWN0SW50ZXJuYWxQcm9w
ZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBraW5kKSkpOwotICAg
ICAgICByZXR1cm4gYXJyYXk7Ci0gICAgfQotCiAgICAgaWYgKEpTTWFwSXRlcmF0b3IqIG1hcEl0
ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU01hcEl0ZXJhdG9yKj4odmFsdWUpKSB7CiAgICAgICAg
IFN0cmluZyBraW5kOwogICAgICAgICBzd2l0Y2ggKG1hcEl0ZXJhdG9yLT5raW5kKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggZDY3ZGY5NC4uM2M5NTllNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTEsNiArMSw2IEBACiAv
KgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5v
cmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAwOSwgMjAxMS0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJpY2hAdXdh
dGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZyAoemhlcmN6
ZWdAaW5mLnUtc3plZ2VkLmh1KQogICogIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVu
cyAobWF0aGlhc0BxaXdpLmJlKQpAQCAtOTM5LDcgKzkzOSw3IEBAIHRlbXBsYXRlIDxib29sIHNo
b3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENo
YXI+OjpwCiAgICAgICAgICAgICBpZiAoaXNQcml2YXRlTmFtZSkKICAgICAgICAgICAgICAgICBp
ZGVudCA9IG1fdm0tPnByb3BlcnR5TmFtZXMtPmxvb2tVcFByaXZhdGVOYW1lKCppZGVudCk7CiAg
ICAgICAgICAgICBlbHNlIGlmICgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZp
bmVkS2V5d29yZCkKLSAgICAgICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPnVuZGVmaW5lZFByaXZhdGVOYW1lOworICAgICAgICAgICAgICAgIHRva2Vu
RGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudW5kZWZp
bmVkUHJpdmF0ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghaWRlbnQpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIElOVkFMSURfUFJJVkFURV9OQU1FX0VSUk9SVE9LOwogICAgICAgICB9CkBAIC0x
MDE2LDcgKzEwMTYsNyBAQCB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBB
TFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPFVDaGFyPjo6cAogICAgICAgICAgICAgaWYg
KGlzUHJpdmF0ZU5hbWUpCiAgICAgICAgICAgICAgICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5sb29rVXBQcml2YXRlTmFtZSgqaWRlbnQpOwogICAgICAgICAgICAgZWxzZSBpZiAoKmlk
ZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQpCi0gICAgICAgICAg
ICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQ
cml2YXRlTmFtZTsKKyAgICAgICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnVuZGVmaW5lZFByaXZhdGVOYW1lKCk7CiAgICAg
ICAgICAgICBpZiAoIWlkZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZB
VEVfTkFNRV9FUlJPUlRPSzsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCmluZGV4IDdkODUxY2UuLmM4MTE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgTm9kZXNfaAogI2RlZmluZSBOb2Rlc19o
CiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1
ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAppbmRleCA0NTc1NzQxLi5iNmM4Nzc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xODk3LDIzICsxODk3LDIzIEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZvcm1hbFBhcmFtZXRl
ckxpc3QgUGFyc2VyPExlCiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb24gPSB0b2tlblN0YXJ0
UG9zaXRpb24oKTsKIAogICAgIC8vIEBnZW5lcmF0b3IKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JQcml2YXRlTmFtZSk7Ci0gICAgYXV0byBnZW5l
cmF0b3IgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJv
cGVydHlOYW1lcy0+Z2VuZXJhdG9yUHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNz
aWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1l
dGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2YXRl
TmFtZSgpKTsKKyAgICBhdXRvIGdlbmVyYXRvciA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0
aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0
b3JQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpE
ZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1l
dGVycywgZ2VuZXJhdG9yLCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JTdGF0ZQotICAgIGRlY2xh
cmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5h
bWUpOwotICAgIGF1dG8gZ2VuZXJhdG9yU3RhdGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2Nh
dGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yU3RhdGVQcml2YXRl
TmFtZSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25T
dGF0ZW1lbnQpOworICAgIGRlY2xhcmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5l
cmF0b3JTdGF0ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1l
KCksIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3Rh
dGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0
b3JTdGF0ZSwgMCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yVmFsdWUKLSAgICBkZWNsYXJlUGFyYW1l
dGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKTsKLSAg
ICBhdXRvIGdlbmVyYXRvclZhbHVlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9j
YXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclZhbHVlUHJpdmF0ZU5hbWUsIHBv
c2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50
KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lKCkpOworICAgIGF1dG8gZ2VuZXJhdG9yVmFs
dWUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpLCBwb3Np
dGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7
CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2VuZXJhdG9yVmFsdWUs
IDApOwogCiAgICAgLy8gQGdlbmVyYXRvclJlc3VtZU1vZGUKLSAgICBkZWNsYXJlUGFyYW1ldGVy
KCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUpOwot
ICAgIGF1dG8gZ2VuZXJhdG9yUmVzdW1lTW9kZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0
aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JSZXN1bWVNb2RlUHJp
dmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0
aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUoKSk7CisgICAg
YXV0byBnZW5lcmF0b3JSZXN1bWVNb2RlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24o
bG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclJl
c3VtZU1vZGVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250
ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIo
cGFyYW1ldGVycywgZ2VuZXJhdG9yUmVzdW1lTW9kZSwgMCk7CiAKICAgICByZXR1cm4gcGFyYW1l
dGVyczsKQEAgLTI4NzEsMTUgKzI4NzEsMTUgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cG9ydERlY2xhcmEKICAg
ICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUFzc2lnbm1lbnRFeHBy
ZXNzaW9uKGNvbnRleHQpOwogICAgICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNh
bm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAKLSAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0
TWFzayBkZWNsYXJhdGlvblJlc3VsdCA9IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlO
YW1lcy0+c3RhckRlZmF1bHRQcml2YXRlTmFtZSwgRGVjbGFyYXRpb25UeXBlOjpDb25zdERlY2xh
cmF0aW9uKTsKKyAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0TWFzayBkZWNsYXJhdGlvblJl
c3VsdCA9IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuc3RhckRlZmF1bHRQcml2YXRlTmFtZSgpLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFy
YXRpb24pOwogICAgICAgICAgICAgaWYgKGRlY2xhcmF0aW9uUmVzdWx0ICYgRGVjbGFyYXRpb25S
ZXN1bHQ6OkludmFsaWREdXBsaWNhdGVEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBpbnRl
cm5hbEZhaWxXaXRoTWVzc2FnZShmYWxzZSwgIk9ubHkgb25lICdkZWZhdWx0JyBleHBvcnQgaXMg
YWxsb3dlZCIpOwogCi0gICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29u
dGV4dC5jcmVhdGVBc3NpZ25SZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5z
dGFyRGVmYXVsdFByaXZhdGVOYW1lLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRva2VuRW5k
UG9zaXRpb24oKSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQp
OworICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gYXNzaWdubWVudCA9IGNvbnRleHQuY3JlYXRl
QXNzaWduUmVzb2x2ZShsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuc3RhckRlZmF1bHRQcml2YXRlTmFtZSgpLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRv
a2VuRW5kUG9zaXRpb24oKSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0
ZW1lbnQpOwogICAgICAgICAgICAgcmVzdWx0ID0gY29udGV4dC5jcmVhdGVFeHByU3RhdGVtZW50
KGxvY2F0aW9uLCBhc3NpZ25tZW50LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAg
ICAgICAgIGlmICghaXNGdW5jdGlvbk9yQ2xhc3NEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAg
ICBmYWlsSWZGYWxzZShhdXRvU2VtaUNvbG9uKCksICJFeHBlY3RlZCBhICc7JyBmb2xsb3dpbmcg
YSB0YXJnZXRlZCBleHBvcnQgZGVjbGFyYXRpb24iKTsKLSAgICAgICAgICAgIGxvY2FsTmFtZSA9
ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGFyRGVmYXVsdFByaXZhdGVOYW1lOworICAgICAgICAg
ICAgbG9jYWxOYW1lID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0YXJE
ZWZhdWx0UHJpdmF0ZU5hbWUoKTsKICAgICAgICAgfQogICAgICAgICBmYWlsSWZGYWxzZShyZXN1
bHQsICJDYW5ub3QgcGFyc2UgdGhlIGRlY2xhcmF0aW9uIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5k
ZXggMDFiMTAwNC4uODg5NTdlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTI4LDcgKzI4LDYgQEAK
IAogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgiCiAjaW5jbHVkZSAiSXRl
cmF0b3JPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtMzgsNyArMzcsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotCiBjb25zdCBDbGFzc0luZm8gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAi
QXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAmYXJyYXlJdGVyYXRvclByb3RvdHlwZVRh
YmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JQcm90b3R5cGUpIH07CiAKIC8q
IFNvdXJjZSBmb3IgQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCmluZGV4
IGI5NzA3YTEuLmI1MTVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTMwLDYgKzMwLDEyIEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCitlbnVtIEFycmF5SXRlcmF0aW9uS2luZCA6IHVpbnQzMl90IHsKKyAg
ICBBcnJheUl0ZXJhdGVLZXksCisgICAgQXJyYXlJdGVyYXRlVmFsdWUsCisgICAgQXJyYXlJdGVy
YXRlS2V5VmFsdWUKK307CisKIGNsYXNzIEFycmF5SXRlcmF0b3JQcm90b3R5cGUgOiBwdWJsaWMg
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0
IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggODFkMjFmOC4uOGNjNmNhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNBcnJheUlu
bGluZXMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NCdWls
dGlucy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxk
ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmNwcAppbmRleCA0NzVkZjI1Li45MjY1MjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDksIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAw
OSwgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNDMsNyArNDMsNiBAQCBDb21tb25JZGVudGlmaWVyczo6Q29tbW9uSWRl
bnRpZmllcnMoVk0qIHZtKQogICAgICwgbV9idWlsdGluTmFtZXMobmV3IEJ1aWx0aW5OYW1lcyh2
bSwgdGhpcykpCiAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX0tFWVdPUkQoSU5JVElB
TElaRV9LRVlXT1JEKQogICAgIEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9O
QU1FKElOSVRJQUxJWkVfUFJPUEVSVFlfTkFNRSkKLSAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURF
TlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9OQU1FKQogICAg
IEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElO
SVRJQUxJWkVfU1lNQk9MKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNWJiMGJhZS4uODVjZWJiZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0y
MSw3ICsyMSw2IEBACiAjaWZuZGVmIENvbW1vbklkZW50aWZpZXJzX2gKICNkZWZpbmUgQ29tbW9u
SWRlbnRpZmllcnNfaAogCi0jaW5jbHVkZSAiQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApA
QCAtMzI2LDEzMiArMzI1LDYgQEAKICAgICBtYWNybyh0b1N0cmluZ1RhZykgXAogICAgIG1hY3Jv
KHVuc2NvcGFibGVzKQogCi0jZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19F
QUNIX1BST1BFUlRZX05BTUUobWFjcm8pIFwKLSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJ
TlNJQ19GVU5DVElPTlNfRUFDSF9OQU1FKG1hY3JvKSBcCi0gICAgSlNDX0NPTU1PTl9CWVRFQ09E
RV9JTlRSSU5TSUNfQ09OU1RBTlRTX0VBQ0hfTkFNRShtYWNybykgXAotICAgIG1hY3JvKGl0ZXJh
dGVkT2JqZWN0KSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHRJbmRleCkgXAotICAgIG1h
Y3JvKGFycmF5SXRlcmF0aW9uS2luZCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0KSBc
Ci0gICAgbWFjcm8oYXJyYXlJdGVyYXRvcklzRG9uZSkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0
b3JLaW5kKSBcCi0gICAgbWFjcm8oY2hhckNvZGVBdCkgXAotICAgIG1hY3JvKGl0ZXJhdGVkU3Ry
aW5nKSBcCi0gICAgbWFjcm8oc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXgpIFwKLSAgICBtYWNybyhw
cm9taXNlKSBcCi0gICAgbWFjcm8oZnVsZmlsbG1lbnRIYW5kbGVyKSBcCi0gICAgbWFjcm8ocmVq
ZWN0aW9uSGFuZGxlcikgXAotICAgIG1hY3JvKGluZGV4KSBcCi0gICAgbWFjcm8oZGVmZXJyZWQp
IFwKLSAgICBtYWNybyhjb3VudGRvd25Ib2xkZXIpIFwKLSAgICBtYWNybyhPYmplY3QpIFwKLSAg
ICBtYWNybyhvd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKSBcCi0gICAgbWFjcm8oTnVtYmVyKSBc
Ci0gICAgbWFjcm8oQXJyYXkpIFwKLSAgICBtYWNybyhTdHJpbmcpIFwKLSAgICBtYWNybyhSZWdF
eHApIFwKLSAgICBtYWNybyhNYXApIFwKLSAgICBtYWNybyhQcm9taXNlKSBcCi0gICAgbWFjcm8o
UmVmbGVjdCkgXAotICAgIG1hY3JvKEludGVybmFsUHJvbWlzZSkgXAotICAgIG1hY3JvKGFicykg
XAotICAgIG1hY3JvKGZsb29yKSBcCi0gICAgbWFjcm8odHJ1bmMpIFwKLSAgICBtYWNybyhpc0Zp
bml0ZSkgXAotICAgIG1hY3JvKGlzTmFOKSBcCi0gICAgbWFjcm8oY3JlYXRlKSBcCi0gICAgbWFj
cm8oZGVmaW5lUHJvcGVydHkpIFwKLSAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAotICAgIG1h
Y3JvKGdldE93blByb3BlcnR5RGVzY3JpcHRvcikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5
TmFtZXMpIFwKLSAgICBtYWNybyhvd25LZXlzKSBcCi0gICAgbWFjcm8oRXJyb3IpIFwKLSAgICBt
YWNybyhSYW5nZUVycm9yKSBcCi0gICAgbWFjcm8oVHlwZUVycm9yKSBcCi0gICAgbWFjcm8odHlw
ZWRBcnJheUxlbmd0aCkgXAotICAgIG1hY3JvKHR5cGVkQXJyYXlTb3J0KSBcCi0gICAgbWFjcm8o
dHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhCdWlsdGluTG9n
KSBcCi0gICAgbWFjcm8oaG9tZU9iamVjdCkgXAotICAgIG1hY3JvKGdldFRlbXBsYXRlT2JqZWN0
KSBcCi0gICAgbWFjcm8oZW5xdWV1ZUpvYikgXAotICAgIG1hY3JvKGhhbmRsZXIpIFwKLSAgICBt
YWNybyhwcm9taXNlU3RhdGUpIFwKLSAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9ucykg
XAotICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKLSAgICBtYWNybyhwcm9taXNl
UmVzdWx0KSBcCi0gICAgbWFjcm8ocHVzaCkgXAotICAgIG1hY3JvKHJlcGVhdENoYXJhY3Rlcikg
XAotICAgIG1hY3JvKGNhcGFiaWxpdGllcykgXAotICAgIG1hY3JvKHN0YXJEZWZhdWx0KSBcCi0g
ICAgbWFjcm8oSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uKSBcCi0gICAgbWFjcm8oZ2V0KSBcCi0g
ICAgbWFjcm8oc2V0KSBcCi0gICAgbWFjcm8oc2hpZnQpIFwKLSAgICBtYWNybyhhbGxvY2F0ZVR5
cGVkQXJyYXkpIFwKLSAgICBtYWNybyhJbnQ4QXJyYXkpIFwKLSAgICBtYWNybyhJbnQxNkFycmF5
KSBcCi0gICAgbWFjcm8oSW50MzJBcnJheSkgXAotICAgIG1hY3JvKFVpbnQ4QXJyYXkpIFwKLSAg
ICBtYWNybyhVaW50OENsYW1wZWRBcnJheSkgXAotICAgIG1hY3JvKFVpbnQxNkFycmF5KSBcCi0g
ICAgbWFjcm8oVWludDMyQXJyYXkpIFwKLSAgICBtYWNybyhGbG9hdDMyQXJyYXkpIFwKLSAgICBt
YWNybyhGbG9hdDY0QXJyYXkpIFwKLSAgICBtYWNybyhleGVjKSBcCi0gICAgbWFjcm8oZ2VuZXJh
dG9yKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKGdlbmVyYXRvclN0
YXRlKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yRnJhbWUpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JW
YWx1ZSkgXAotICAgIG1hY3JvKGdlbmVyYXRvclRoaXMpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JS
ZXN1bWVNb2RlKSBcCi0gICAgbWFjcm8oQ29sbGF0b3IpIFwKLSAgICBtYWNybyhEYXRlVGltZUZv
cm1hdCkgXAotICAgIG1hY3JvKE51bWJlckZvcm1hdCkgXAotICAgIG1hY3JvKGludGxTdWJzdGl0
dXRlVmFsdWUpIFwKLSAgICBtYWNybyh0aGlzVGltZVZhbHVlKSBcCi0gICAgbWFjcm8odGhpc051
bWJlclZhbHVlKSBcCi0gICAgbWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKLSAgICBtYWNybyhkZXJp
dmVkQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwKLSAgICBtYWNy
byhoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pIFwKLSAgICBtYWNybyhpbnN0YW5jZU9mKSBcCi0g
ICAgbWFjcm8oaXNBcnJheSkgXAotICAgIG1hY3JvKGlzQXJyYXlDb25zdHJ1Y3RvcikgXAotICAg
IG1hY3JvKGlzQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhpc1JlZ0V4cE9iamVjdCkgXAotICAg
IG1hY3JvKGNvbmNhdE1lbWNweSkgXAotICAgIG1hY3JvKGFwcGVuZE1lbWNweSkgXAotICAgIG1h
Y3JvKHByZWRpY3RGaW5hbExlbmd0aEZyb21Bcmd1bXVudHMpIFwKLSAgICBtYWNybyhwcmludCkg
XAotICAgIG1hY3JvKGlzU2V0KSBcCi0gICAgbWFjcm8oaXNNYXApIFwKLSAgICBtYWNybyhyZWdF
eHBDcmVhdGUpIFwKLSAgICBtYWNybyhTZXRJdGVyYXRvcikgXAotICAgIG1hY3JvKHNldEl0ZXJh
dG9yTmV4dCkgXAotICAgIG1hY3JvKHJlcGxhY2VVc2luZ1JlZ0V4cCkgXAotICAgIG1hY3JvKHJl
cGxhY2VVc2luZ1N0cmluZ1NlYXJjaCkgXAotICAgIG1hY3JvKE1hcEl0ZXJhdG9yKSBcCi0gICAg
bWFjcm8obWFwSXRlcmF0b3JOZXh0KSBcCi0gICAgbWFjcm8ocmVnRXhwQnVpbHRpbkV4ZWMpIFwK
LSAgICBtYWNybyhyZWdFeHBNYXRjaEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0ZsYWdz
R2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIpIFwKLSAgICBtYWNy
byhyZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b011
bHRpbGluZUdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvU291cmNlR2V0dGVyKSBcCi0g
ICAgbWFjcm8ocmVnRXhwUHJvdG9TdGlja3lHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90
b1VuaWNvZGVHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNl
KSBcCi0gICAgbWFjcm8ocmVnRXhwUmVwbGFjZUZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBTZWFy
Y2hGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwU3BsaXRGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhw
VGVzdEZhc3QpIFwKLSAgICBtYWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCi0gICAgbWFj
cm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAgbWFjcm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwK
LQogbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAgICAgY2xhc3MgQnVpbHRpbk5hbWVzOwpAQCAtNDg0
LDEwICszNTcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNDX0NPTU1PTl9JREVOVElG
SUVSU19FQUNIX1BST1BFUlRZX05BTUUoSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUk9QRVJUWV9O
QU1FX0dMT0JBTCkKICN1bmRlZiBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVf
R0xPQkFMCiAKLSNkZWZpbmUgSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZ
X05BTUVfR0xPQkFMKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbmFtZSMjUHJpdmF0ZU5hbWU7Ci0g
ICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUo
SlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKQotI3Vu
ZGVmIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTAot
CiAjZGVmaW5lIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJP
TF9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRpZmllciBuYW1lIyNTeW1ib2w7CiAgICAgICAgIEpT
Q19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKEpTQ19J
REVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwpCiAjdW5k
ZWYgSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JB
TApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAKaW5kZXggZTU0NDMxMC4uYTZlY2ZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0yNSw3ICsyNSw5IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKKwogI2luY2x1ZGUg
IkFycmF5Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDbG9uZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJD
b2RlUHJvZmlsaW5nLmgiCkBAIC03MTcsNyArNzE5LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX3NhdmUpCiAgICAgQkVHSU4oKTsKICAgICBKU1ZhbHVlIGdlbmVyYXRvciA9IE9QKDEpLmpz
VmFsdWUoKTsKICAgICBHZW5lcmF0b3JGcmFtZSogZnJhbWUgPSBudWxscHRyOwotICAgIEpTVmFs
dWUgdmFsdWUgPSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5l
cmF0b3JGcmFtZVByaXZhdGVOYW1lKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2VuZXJhdG9yLmdl
dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJh
bWVQcml2YXRlTmFtZSgpKTsKICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBmcmFt
ZSA9IGpzQ2FzdDxHZW5lcmF0b3JGcmFtZSo+KHZhbHVlKTsKICAgICBlbHNlIHsKQEAgLTcyNSw3
ICs3MjcsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2F2ZSkKICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogICAgICAgICBmcmFt
ZSA9IEdlbmVyYXRvckZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwgIGV4ZWMtPmNvZGVCbG9jaygp
LT5udW1DYWxsZWVMb2NhbHMoKSk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGdlbmVy
YXRvciwgdHJ1ZSwgUHV0UHJvcGVydHlTbG90OjpQdXRCeUlkKTsKLSAgICAgICAgYXNPYmplY3Qo
Z2VuZXJhdG9yKS0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0
b3IpLCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFt
ZSwgZnJhbWUsIHNsb3QpOworICAgICAgICBhc09iamVjdChnZW5lcmF0b3IpLT5tZXRob2RUYWJs
ZShleGVjLT52bSgpKS0+cHV0KGFzT2JqZWN0KGdlbmVyYXRvciksIGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCksIGZy
YW1lLCBzbG90KTsKICAgICB9CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0luZGV4ID0g
cGNbMl0udS51bnNpZ25lZFZhbHVlOwogICAgIGZyYW1lLT5zYXZlKGV4ZWMsIGV4ZWMtPmNvZGVC
bG9jaygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxzSW5kZXgpKTsK
QEAgLTczNiw3ICs3MzgsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzdW1lKQogewog
ICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBnZW5lcmF0b3IgPSBPUCgxKS5qc1ZhbHVlKCk7Ci0g
ICAgR2VuZXJhdG9yRnJhbWUqIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJh
dG9yLmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRl
TmFtZSkpOworICAgIEdlbmVyYXRvckZyYW1lKiBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0b3JGcmFt
ZSo+KGdlbmVyYXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1l
cygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSkpOwogICAgIHVuc2lnbmVkIGxpdmVDYWxs
ZWVMb2NhbHNJbmRleCA9IHBjWzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+cmVzdW1l
KGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2Fs
bGVlTG9jYWxzSW5kZXgpKTsKICAgICBFTkQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDQ4Mzg5Y2QuLjNhODA1
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QW5keSBWYW5XYWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20pCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCBlMWRkM2U0Li5k
ZTUwOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAi
RGF0ZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRsRGF0
ZVRpbWVGb3JtYXQuaCIKQEAgLTExNiw3ICsxMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChFeGVjU3RhdGUq
CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGgg
RUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghZHRmKQotICAgICAgICBk
dGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUo
KS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSkpOworICAgICAgICBkdGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGlt
ZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgp
KSk7CiAKICAgICAvLyAyLiBSZXR1cm5JZkFicnVwdChkdGYpLgogICAgIGlmICghZHRmKQpAQCAt
MTUzLDcgKzE1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjCiAgICAgLy8gRklYTUU6IFdv
cmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwv
YXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzY3OQogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCi0gICAgICAgIGRhdGVUaW1l
Rm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhpc1Zh
bHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0
ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgZGF0ZVRpbWVGb3JtYXQgPSBqc0R5bmFtaWND
YXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0
YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFs
dWVQcml2YXRlTmFtZSgpKSk7CiAKICAgICBpZiAoIWRhdGVUaW1lRm9ybWF0KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwo
IkludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBjYWxsZWQgb24g
dmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBEYXRlVGltZUZvcm1h
dCIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDBhNWQ1NjMuLmZlMmM5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGUuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNSBBbmR5IFZhbldhZ29uZXIgKHRoZXRhbGVjcmFmdGVyQGdtYWlsLmNvbSkKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI5LDcgQEAKIAogI2lmIEVOQUJMRShJTlRM
KQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNs
dWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCkBA
IC0xMDUsNyArMTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVy
Rm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4ZWNTdGF0ZSogc3QKICAgICAvLyBGSVhNRTog
V29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01BLTQwMiAxLjAgY2Fs
bC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFuZikKLSAgICAgICAgbmYgPSBqc0R5bmFtaWNDYXN0
PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+
dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAg
ICAgICAgbmYgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1Zh
bHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFuZikKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0ZSwgQVNDSUlM
aXRlcmFsKCJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0IGNhbGxlZCBvbiB2YWx1
ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXplZCBhcyBhIE51bWJlckZvcm1hdCIpKSk7
CkBAIC0xNDEsNyArMTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjU3QKICAgICAvLyBGSVhN
RTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBFQ01BLTQwMiAxLjAg
Y2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFudW1iZXJGb3JtYXQpCi0gICAgICAgIG51bWJl
ckZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFs
dWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRl
VmFsdWVQcml2YXRlTmFtZSkpOworICAgICAgICBudW1iZXJGb3JtYXQgPSBqc0R5bmFtaWNDYXN0
PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+
dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJp
dmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFudW1iZXJGb3JtYXQpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiSW50bC5O
dW1iZXJGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucyBjYWxsZWQgb24gdmFsdWUgdGhh
dCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBOdW1iZXJGb3JtYXQiKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKaW5k
ZXggMTI5ZDk4NS4uZTNiZmYzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx5dXN1a2Uuc3V6dWtpQHNzbGFiLmljcy5rZWlvLmFj
LmpwPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKElOVEwpCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJJ
bnRsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNDksNyArNTEsNyBAQCBK
U1ZhbHVlIGNvbnN0cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSYgcwogICAgICAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgICAgICAg
ICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0
dXRlVmFsdWVQcml2YXRlTmFtZSwgaW5zdGFuY2UpOworICAgICAgICAgICAgdGhpc09iamVjdC0+
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3Rp
dHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSwgaW5zdGFuY2UpOwogICAgICAgICAgICAgcmV0dXJuIHRo
aXNPYmplY3Q7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTAxMDViOC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5SXRlcmF0b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgotCi0jaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiU2xvdFZp
c2l0b3JJbmxpbmVzLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlJdGVyYXRvcjo6c19pbmZvID0geyAi
QXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
QXJyYXlJdGVyYXRvcikgfTsKLQotdm9pZCBKU0FycmF5SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmpl
Y3QqIGl0ZXJhdGVkT2JqZWN0KQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0KLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPml0ZXJhdGVkT2JqZWN0UHJpdmF0ZU5hbWUsIGl0ZXJhdGVkT2JqZWN0KTsKLSAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQ
cml2YXRlTmFtZSwganNOdW1iZXIoMCkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YXJyYXlJdGVyYXRpb25LaW5kUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKGtpbmQpKTsKLX0K
LQotQXJyYXlJdGVyYXRpb25LaW5kIEpTQXJyYXlJdGVyYXRvcjo6a2luZChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0Ci17Ci0gICAgSlNWYWx1ZSBraW5kVmFsdWUgPSBnZXREaXJlY3QoZXhlYy0+dm0o
KSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJhdGlvbktpbmRQcml2YXRlTmFt
ZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5SXRlcmF0aW9uS2luZD4oa2luZFZhbHVl
LmFzSW50MzIoKSk7Ci19Ci0KLUpTVmFsdWUgSlNBcnJheUl0ZXJhdG9yOjppdGVyYXRlZFZhbHVl
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZt
KCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRPYmplY3RQcml2YXRlTmFtZSk7
Ci19Ci0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRl
cmF0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE2NmJkMi4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaAorKysg
L2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNBcnJheUl0ZXJhdG9yX2gKLSNkZWZpbmUgSlNB
cnJheUl0ZXJhdG9yX2gKLQotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi1lbnVtIEFycmF5SXRlcmF0aW9uS2luZCA6IHVpbnQzMl90IHsKLSAgICBBcnJheUl0ZXJh
dGVLZXksCi0gICAgQXJyYXlJdGVyYXRlVmFsdWUsCi0gICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUK
LX07Ci0KLWNsYXNzIEpTQXJyYXlJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
LXB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIERFQ0xB
UkVfRVhQT1JUX0lORk87Ci0KLSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNBcnJheUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpT
T2JqZWN0KiBpdGVyYXRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7Ci0gICAgICAgIEpTQXJyYXlJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxKU0FycmF5SXRlcmF0b3I+KHZtLmhlYXApKSBKU0FycmF5SXRlcmF0b3Iodm0s
IHN0cnVjdHVyZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0
dXJlLT5nbG9iYWxPYmplY3QoKSwga2luZCwgaXRlcmF0ZWRPYmplY3QpOwotICAgICAgICByZXR1
cm4gaW5zdGFuY2U7Ci0gICAgfQotCi0gICAgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQoRXhlY1N0
YXRlKikgY29uc3Q7Ci0gICAgSlNWYWx1ZSBpdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0
OwotICAgIEpTQXJyYXlJdGVyYXRvciogY2xvbmUoRXhlY1N0YXRlKik7Ci0KLSAgICB1c2luZyBK
U05vbkZpbmFsT2JqZWN0OjphcnJheVN0b3JhZ2VPck51bGw7Ci1wcml2YXRlOgotICAgIEpTQXJy
YXlJdGVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlJdGVyYXRpb25LaW5kLCBKU09iamVjdCogaXRlcmF0
ZWRPYmplY3QpOwotfTsKLQotfQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSlNBcnJheUl0ZXJhdG9y
X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRl
eCA2ZWIwODkyLi5jY2MzYjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3JJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXNfaAogI2RlZmluZSBKU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9ySW5saW5lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNp
bmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIkpTQXJyYXlCdWZmZXIuaCIKQEAgLTUyLDcgKzUzLDcgQEAgdm9pZCBKU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG8KICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+QllURVNfUEVSX0VMRU1FTlQsIGpzTnVtYmVyKFZpZXdDbGFzczo6ZWxlbWVudFNpemUpLCBE
b250RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSk7CiAKICAgICBpZiAocHJpdmF0ZUFsbG9j
YXRvcikKLSAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IHZtLnByb3BlcnR5TmFtZXMtPmFsbG9jYXRlVHlwZWRBcnJheVByaXZhdGVOYW1lLCBwcml2YXRl
QWxsb2NhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgICAgIHB1
dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFtZSgpLCBwcml2YXRl
QWxsb2NhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oCmluZGV4IDRmM2I4ZWMuLjBiMDIzZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMzAsNyArMzAsNiBAQAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNDBhOTJmYy4uYWIwMTljYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
NjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBl
LmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvci5oIgpAQCAtNDI2LDcgKzQyNSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQo
Vk0mIHZtKQogICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoSlMgIyMgdHlwZSAjIyBBcnJh
eVByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAjIyB0eXBlICMjIEFy
cmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQu
Z2xvYmFsLT5tX3R5cGVkQXJyYXlQcm90by5nZXQoaW5pdC5nbG9iYWwpKSkpOyBcCiAgICAgICAg
ICAgICBpbml0LnNldFN0cnVjdHVyZShKUyAjIyB0eXBlICMjIEFycmF5OjpjcmVhdGVTdHJ1Y3R1
cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQucHJvdG90eXBlKSk7IFwKICAgICAgICAgICAg
IGluaXQuc2V0Q29uc3RydWN0b3IoSlMgIyMgdHlwZSAjIyBBcnJheUNvbnN0cnVjdG9yOjpjcmVh
dGUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIEpTICMjIHR5cGUgIyMgQXJyYXlDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0Lmdsb2JhbC0+bV90eXBl
ZEFycmF5U3VwZXJDb25zdHJ1Y3Rvci5nZXQoaW5pdC5nbG9iYWwpKSwgaW5pdC5wcm90b3R5cGUs
IEFTQ0lJTGl0ZXJhbCgjdHlwZSAiQXJyYXkiKSwgdHlwZWRBcnJheUNvbnN0cnVjdG9yQWxsb2Nh
dGUgIyMgdHlwZSAjIyBBcnJheUNvZGVHZW5lcmF0b3IoaW5pdC52bSkpKTsgXAotICAgICAgICAg
ICAgaW5pdC5nbG9iYWwtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGluaXQudm0sIGluaXQu
dm0ucHJvcGVydHlOYW1lcy0+dHlwZSAjIyBBcnJheVByaXZhdGVOYW1lLCBpbml0LmNvbnN0cnVj
dG9yLCBEb250RW51bSk7IFwKKyAgICAgICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbihpbml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSgpLCBpbml0LmNvbnN0cnVjdG9yLCBEb250RW51
bSk7IFwKICAgICAgICAgfSk7CiAgICAgRk9SX0VBQ0hfVFlQRURfQVJSQVlfVFlQRV9FWENMVURJ
TkdfREFUQV9WSUVXKElOSVRfVFlQRURfQVJSQVlfTEFURVIpCiAjdW5kZWYgSU5JVF9UWVBFRF9B
UlJBWV9MQVRFUgpAQCAtNjE5LDggKzYxOCw4IEBAIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5
cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jCiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlJhbmdl
RXJyb3IsIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSk7CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlR5cGVFcnJvciwg
bV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwogCi0gICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPk9iamVjdFByaXZhdGVOYW1l
LCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwot
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5BcnJh
eVByaXZhdGVOYW1lLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVj
dG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkFycmF5
UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOwogCiAjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1l
LCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXApAQCAtNjUzLDggKzY1Miw2
IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNO
YW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNU
cnVuYyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG1hdGhQcm90
b0Z1bmNUcnVuYywgVHJ1bmNJbnRyaW5zaWMpOwogCiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1
bmNHZXRUZW1wbGF0ZU9iamVjdCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIGdldFRlbXBsYXRlT2JqZWN0KTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1Rv
TGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmpl
Y3RUb0xlbmd0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY1RvSW50ZWdlciA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0VG9JbnRlZ2VyQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwogICAgIEpTRnVu
Y3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgpOwog
ICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0
b3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5
Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CiAgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKQEAgLTY2OCwxMyAr
NjY1LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRl
RnVuY0FwcGVuZE1lbWNweSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5n
KCksIGFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweSk7CiAgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgYXJyYXlQcm90b3R5cGVDb25jYXRTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0pLCB0
aGlzKTsKIAotICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gQXJyYXlJdGVy
YXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsKLSAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0b3IgPSBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBlQ3JlYXRlQXJyYXlJdGVy
YXRvckNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIHByaXZhdGVGdW5j
Q3JlYXRlQXJyYXlJdGVyYXRvci0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGUsIGFycmF5SXRlcmF0b3JQcm90b3R5cGUpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVG
dW5jQXJyYXlJdGVyYXRvclZhbHVlTmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JWYWx1ZU5leHRDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNBcnJheUl0
ZXJhdG9yS2V5TmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJy
YXlJdGVyYXRvclByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlOZXh0Q29kZUdlbmVyYXRvcih2bSks
IHRoaXMpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQXJyYXlJdGVyYXRvcktleVZhbHVl
TmV4dCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgYXJyYXlJdGVyYXRv
clByb3RvdHlwZUFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHRDb2RlR2VuZXJhdG9yKHZtKSwgdGhp
cyk7Ci0KICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVjdCA9IGdldEdl
dHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCksIHZtLnByb3BlcnR5TmFtZXMt
PmZsYWdzKTsKICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QgPSBn
ZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5wcm9wZXJ0eU5h
bWVzLT5nbG9iYWwpOwogICAgIG1fcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIuc2V0KHZtLCB0aGlz
LCByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCk7CkBAIC02ODksNzAgKzY3OSw2MSBAQCBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwg
bG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTT2JqZWN0KiByZWdFeHBTeW1ib2xSZXBsYWNl
ID0gYXNPYmplY3QobV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cmVwbGFjZVN5bWJvbCkuYXNDZWxsKCkpOwogICAgIG1fcmVnRXhwUHJvdG9TeW1ib2xS
ZXBsYWNlLnNldCh2bSwgdGhpcywgcmVnRXhwU3ltYm9sUmVwbGFjZSk7CiAKKyNkZWZpbmUgQ1JF
QVRFX1BSSVZBVEVfR0xPQkFMX0ZVTkNUSU9OKG5hbWUsIGNvZGUpIEpTRnVuY3Rpb24qIG5hbWUg
IyMgUHJpdmF0ZUZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCBjb2RlICMjIENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKKyAgICBKU0NfRk9SRUFDSF9CVUlM
VElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoQ1JFQVRFX1BSSVZBVEVfR0xPQkFMX0ZV
TkNUSU9OKQorI3VuZGVmIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTgorCisgICAgSlNP
YmplY3QqIGFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9pdGVyYXRvclByb3RvdHlwZS5nZXQoKSkpOworICAgIGNyZWF0ZUFycmF5SXRl
cmF0b3JQcml2YXRlRnVuY3Rpb24tPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJv
dG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKKworCiAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKKyNkZWZpbmUgSU5JVF9QUklWQVRFX0dMT0JBTChuYW1l
LCBjb2RlKSBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkubmFtZSAjIyBQcml2YXRlTmFtZSgpLCBuYW1lICMjIFByaXZhdGVGdW5jdGlvbiwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElO
X0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUoSU5JVF9QUklWQVRFX0dMT0JBTCkKKyN1bmRl
ZiBJTklUX1BSSVZBVEVfR0xPQkFMCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkluZmluaXR5
LCBqc051bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1VuZGVmaW5lZCgpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5vd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzUHJpdmF0ZU5hbWUs
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG93bkVudW1lcmFibGVQ
cm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5nZXRUZW1wbGF0ZU9iamVjdFBy
aXZhdGVOYW1lLCBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2JqZWN0LCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5FcnJv
clByaXZhdGVOYW1lLCBtX2Vycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPlJhbmdlRXJyb3JQcml2YXRlTmFtZSwgbV9yYW5nZUVycm9yQ29uc3RydWN0b3IuZ2V0
KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlR5cGVFcnJvclByaXZhdGVOYW1lLCBtX3R5cGVF
cnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5
TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3JQcml2YXRlTmFt
ZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheVNvcnRQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBl
ZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNCb3VuZEZ1bmN0aW9uUHJpdmF0
ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNIYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmluc3RhbmNlT2ZQcml2
YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5C
dWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0aW5Mb2csIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pk51bWJlclByaXZhdGVOYW1lLCBudW1iZXJDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+UmVnRXhwUHJpdmF0ZU5hbWUsIG1fcmVnRXhwQ29uc3RydWN0b3IuZ2V0KCksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPlN0cmluZ1ByaXZhdGVOYW1lLCBzdHJpbmdDb25zdHJ1Y3Rvciwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YWJzUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jQWJzLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5mbG9vclByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0Zsb29y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50cnVuY1ByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1Ry
dW5jLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0Zpbml0ZVByaXZhdGVOYW1lLCBwcml2YXRl
RnVuY0lzRmluaXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc05hTlByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5Qcm9taXNlUHJpdmF0ZU5h
bWUsIHByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+UmVmbGVjdFBy
aXZhdGVOYW1lLCByZWZsZWN0T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5JbnRlcm5h
bFByb21pc2VQcml2YXRlTmFtZSwgaW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLQotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVwZWF0Q2hhcmFjdGVyUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJh
Y3RlciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGVhdFNsb3dQ
YXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBz
dHJpbmdQcm90b3R5cGVSZXBlYXRTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0Q2hhcmFjdGVyc1Nsb3dQ
YXRoUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBz
dHJpbmdQcm90b3R5cGVSZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGhDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLQotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNTZXRQcml2YXRlTmFtZSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJc1NldCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPlNldEl0ZXJhdG9yUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3IpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zZXRJdGVyYXRvck5leHRQcml2YXRlTmFtZSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJdGVyYXRv
ck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc01hcFByaXZhdGVOYW1lLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzTWFwKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheVByaXZhdGVOYW1lLCBhcnJheUNvbnN0cnVjdG9y
LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXkpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5pc0FycmF5Q29uc3RydWN0b3JQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0Fy
cmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmNvbmNhdE1lbWNweVByaXZh
dGVOYW1lLCBwcml2YXRlRnVuY0NvbmNhdE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YXBwZW5kTWVtY3B5UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jQXBwZW5kTWVtY3B5LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25FbnVtZXJhYmxlUHJvcGVydHlLZXlz
UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
b3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNHZXRU
ZW1wbGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW5x
dWV1ZUpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIGVucXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5FcnJvclByaXZhdGVOYW1lKCksIG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmFuZ2VFcnJvclByaXZhdGVOYW1lKCksIG1f
cmFuZ2VFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5UeXBlRXJyb3JQcml2YXRlTmFtZSgpLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9y
LmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBlZEFycmF5
TGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50eXBlZEFycmF5R2V0T3JpZ2luYWxDb25z
dHJ1Y3RvclByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdpbmFsQ29u
c3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnR5cGVkQXJy
YXlTb3J0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNCb3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lKCksIHByaXZh
dGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5pbnN0YW5jZU9mUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJbnN0YW5j
ZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5CdWlsdGluTG9nUHJp
dmF0ZU5hbWUoKSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuTnVtYmVyUHJpdmF0ZU5hbWUoKSwgbnVtYmVyQ29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJlZ0V4cFByaXZhdGVOYW1lKCksIG1fcmVnRXhw
Q29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LlN0cmluZ1ByaXZhdGVOYW1lKCksIHN0cmluZ0NvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hYnNQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0Ficywg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmxvb3JQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY0Zsb29yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS50cnVuY1ByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHJ1bmMsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzRmluaXRlUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJ
c0Zpbml0ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNOYU5Qcml2
YXRlTmFtZSgpLCBwcml2YXRlRnVuY0lzTmFOLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5Qcm9taXNlUHJpdmF0ZU5hbWUoKSwgcHJvbWlzZUNvbnN0cnVjdG9yLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SZWZsZWN0UHJpdmF0ZU5hbWUoKSwg
cmVmbGVjdE9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuSW50
ZXJuYWxQcm9taXNlUHJpdmF0ZU5hbWUoKSwgaW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKworICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0Q2hhcmFjdGVyUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3Ry
aW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuaXNTZXRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzU2V0KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuU2V0SXRlcmF0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJhdG9yKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0SXRlcmF0b3JOZXh0UHJpdmF0
ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0
ZUZ1bmNTZXRJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pc01hcFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwg
U3RyaW5nKCksIHByaXZhdGVGdW5jSXNNYXApLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5pc0FycmF5UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3Rvci0+Z2V0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheUNvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0
ZUZ1bmNJc0FycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmNvbmNhdE1lbWNweVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQ29uY2F0TWVtY3B5
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcHBlbmRNZW1jcHlQcml2
YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FwcGVuZE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuY29uY2F0U2xvd1BhdGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y0NvbmNhdFNsb3dQYXRoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5NYXBJdGVyYXRvclByaXZh
dGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRl
RnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+bWFwSXRlcmF0b3JOZXh0
UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHBy
aXZhdGVGdW5jTWFwSXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuYXJyYXlJdGVyYXRvclZhbHVlTmV4dFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5j
QXJyYXlJdGVyYXRvclZhbHVlTmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuYXJyYXlJdGVyYXRvcktleU5leHRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FycmF5
SXRlcmF0b3JLZXlOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5h
cnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcnJheUl0
ZXJhdG9yS2V5VmFsdWVOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5jcmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNDcmVhdGVBcnJh
eUl0ZXJhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvTGVu
Z3RoUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUb0xlbmd0aCwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkudG9JbnRlZ2VyUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNU
b0ludGVnZXIsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzRGljdGlv
bmFyeVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0SXNEaWN0aW9uYXJ5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc1Byb21pc2VQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zSXNQ
cm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5uZXdQcm9taXNlUmVhY3Rpb25Qcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zTmV3UHJvbWlzZVJl
YWN0aW9uQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5uZXdQcm9taXNlQ2FwYWJpbGl0eVByaXZhdGVOYW1lKCksIG1fbmV3UHJv
bWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkudHJpZ2dlclByb21pc2VSZWFjdGlvbnNQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zVHJpZ2dlclBy
b21pc2VSZWFjdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByb21pc2VQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zUmVqZWN0UHJv
bWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZnVsZmlsbFByb21pc2VQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVh
dGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zRnVsZmlsbFByb21pc2VDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNDcmVhdGVSZXNvbHZpbmdG
dW5jdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZWFjdGlvbkpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNQcm9taXNlUmVh
Y3Rpb25Kb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zUHJv
bWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTWFwSXRlcmF0b3JQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY01hcEl0
ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubWFwSXRlcmF0
b3JOZXh0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLkluc3BlY3Rvckluc3RydW1lbnRhdGlvblByaXZhdGVOYW1lKCks
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TWFwUHJpdmF0ZU5h
bWUsIG1hcENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5nZW5lcmF0b3JSZXN1bWVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIGdlbmVyYXRvclByb3RvdHlwZUdlbmVyYXRvclJlc3VtZUNvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTWFw
UHJpdmF0ZU5hbWUoKSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnRoaXNUaW1lVmFsdWVQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RoaXNU
aW1lVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoaXNOdW1i
ZXJWYWx1ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVGhpc051bWJlclZhbHVlLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjaWYgRU5BQkxFKElOVEwpCkBAIC03NjEsMzYg
Kzc0MiwzMCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTnVtYmVyRm9ybWF0UHJpdmF0
ZU5hbWUoKSwgaW50bC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5OdW1iZXJGb3Jt
YXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAjZW5kaWYgLy8gRU5BQkxF
KElOVEwpCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlz
Q29uc3RydWN0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBT
dHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVjdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9iamVjdCwgSXNSZWdFeHBPYmpl
Y3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zcGVj
aWVzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdFNwZWNpZXNDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNDb25zdHJ1
Y3RvclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5n
KCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNSZWdFeHBPYmplY3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc1JlZ0V4cE9iamVjdCwg
SXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCiAKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4
cFByb3RvRmxhZ3NHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVj
dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJQcml2YXRl
TmFtZSwgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b0ln
bm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3Rv
TXVsdGlsaW5lR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyT2Jq
ZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1NvdXJjZUdldHRlclByaXZh
dGVOYW1lLCByZWdFeHBQcm90b1NvdXJjZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+cmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9TdGlj
a3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvVW5pY29k
ZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJQ
cml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0ZsYWdzR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0dsb2JhbEdldHRlclByaXZhdGVO
YW1lKCksIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJQcml2YXRlTmFt
ZSgpLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyUHJpdmF0ZU5h
bWUoKSwgcmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU291cmNlR2V0dGVyUHJpdmF0ZU5hbWUo
KSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVn
RXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFBy
b3RvVW5pY29kZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogCiAgICAgICAgIC8vIFJlZ0V4cC5wcm90b3R5cGUgaGVscGVycy4KLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cEJ1aWx0aW5FeGVjUHJpdmF0ZU5h
bWUsIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBDcmVh
dGVQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwg
ZXNTcGVjUmVnRXhwQ3JlYXRlLCBOb0ludHJpbnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdFeHBQ
cm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBNYXRjaENvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaGFz
T2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4cFByb3RvdHlwZUhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hZHZhbmNlU3RyaW5nSW5kZXhQcml2
YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4cFBy
b3RvdHlwZUFkdmFuY2VTdHJpbmdJbmRleENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwRXhlY1ByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90eXBlUmVn
RXhwRXhlY0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
cmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPnJlZ0V4cFNwbGl0RmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0
ZU5hbWUsIG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnJlcGxhY2VTeW1ib2wpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBUZXN0RmFzdFBy
aXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdF
eHBQcm90b0Z1bmNUZXN0RmFzdCwgUmVnRXhwVGVzdEZhc3RJbnRyaW5zaWMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBCdWlsdGluRXhlY1ByaXZhdGVOYW1l
KCksIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5yZWdFeHBDcmVhdGVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDIsIFN0cmluZygpLCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5vSW50cmluc2ljKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJv
dG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
cmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBTcGxpdEZhc3RQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNT
cGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQ
cm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0ZU5hbWUoKSwgbV9yZWdFeHBQcm90b3R5cGUtPmdl
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVN5bWJvbCksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cFRlc3RGYXN0UHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5j
VGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogCiAgICAgICAgIC8vIFN0cmluZy5wcm90b3R5cGUgaGVscGVycy4KLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
Lmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0cmluZ1Byb3RvdHlwZUhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhp
cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1ZGVzSW50ZXJuYWxQcml2YXRl
TmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgYnVpbHRpblN0
cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdTcGxp
dEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmco
KSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+c3Ry
aW5nU3Vic3RySW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSW5jbHVkZXNJbnRlcm5hbFByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIGJ1aWx0aW5T
dHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuc3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nU3Vic3RySW50ZXJuYWxQcml2YXRl
TmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBidWlsdGlu
U3RyaW5nU3Vic3RySW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CiAgICAgfTsKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9M
RU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCmluZGV4IGEzMjQwNTUuLmFiYTc1YWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9t
aXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCBmZWZkZWNkLi44YTI3ZDkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmNwcApAQCAtNDYsNyArNDYsNyBAQCBKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
UwogCiAgICAgSlNWYWx1ZSBkZWZlcnJlZCA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KGV4ZWMsIGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvcigpKTsK
IAotICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm9taXNlUHJpdmF0ZU5hbWUpOworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVk
LmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0
ZU5hbWUoKSk7CiAgICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHMoSlNJbnRlcm5hbFByb21pc2U6
OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAg
SlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlLmNwcAppbmRleCA1NmUyZjVhLi4wMjAyZTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKIAorI2luY2x1ZGUgIkJ1
aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCkBAIC01OCwxMCArNTksMTAgQEAg
SlNQcm9taXNlOjpKU1Byb21pc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQg
SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0
YXRlUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBl
bmRpbmcpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVs
ZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VSZWplY3RSZWFjdGlvbnNQcml2YXRlTmFtZSwg
anNVbmRlZmluZWQoKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9t
aXNlUmVzdWx0UHJpdmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUo
KSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFN0YXR1czo6UGVuZGluZykpKTsKKyAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VG
dWxmaWxsUmVhY3Rpb25zUHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVqZWN0UmVh
Y3Rpb25zUHJpdmF0ZU5hbWUoKSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUo
KSwganNVbmRlZmluZWQoKSk7CiB9CiAKIHZvaWQgSlNQcm9taXNlOjppbml0aWFsaXplKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGVjdXRv
cikKQEAgLTc4LDE0ICs3OSwxNCBAQCB2b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogCiBhdXRvIEpT
UHJvbWlzZTo6c3RhdHVzKFZNJiB2bSkgY29uc3QgLT4gU3RhdHVzCiB7Ci0gICAgSlNWYWx1ZSB2
YWx1ZSA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0
ZU5hbWUpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VTdGF0ZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VS
VCh2YWx1ZS5pc1VJbnQzMigpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RhdHVzPih2YWx1
ZS5hc1VJbnQzMigpKTsKIH0KIAogSlNWYWx1ZSBKU1Byb21pc2U6OnJlc3VsdChWTSYgdm0pIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvbWlz
ZVJlc3VsdFByaXZhdGVOYW1lKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IDBhYWQzNzAuLjY1ZDcyMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU5LDcgKzU5LDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFsdWUgZGVm
ZXJyZWQgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+cHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogCi0gICAgSlNWYWx1ZSBwcm9taXNlID0gZGVm
ZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7Cisg
ICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBBU1NFUlQocHJvbWlz
ZS5pbmhlcml0cyhKU1Byb21pc2U6OmluZm8oKSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRl
ZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZl
UHJpdmF0ZU5hbWUoKSk7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3Bw
CmluZGV4IGM2ZmVkZTcuLjdiZmQ4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+Lgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUgIkJ1
aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKQEAgLTM4LDIz
ICs0MCwyMyBAQCB2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lLCBpdGVyYXRl
ZFN0cmluZyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVy
YXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJlcigwKSk7CisgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVO
YW1lKCksIGl0ZXJhdGVkU3RyaW5nKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSwg
anNOdW1iZXIoMCkpOwogfQogCiBKU1ZhbHVlIEpTU3RyaW5nSXRlcmF0b3I6Oml0ZXJhdGVkVmFs
dWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBnZXREaXJlY3QoZXhlYy0+
dm0oKSwgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1l
KTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsKIH0KIAog
SlNTdHJpbmdJdGVyYXRvciogSlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSlNWYWx1ZSBpdGVyYXRlZFN0cmlu
ZyA9IGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2YXRl
TmFtZSk7Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUpOworICAgIEpTVmFsdWUg
aXRlcmF0ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUoKSk7CisgICAgSlNWYWx1ZSBuZXh0SW5k
ZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmlu
Z0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSk7CiAKICAgICBhdXRvIGNsb25lID0gSlNT
dHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3Qo
KS0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNTdHJpbmcoaXRlcmF0ZWRTdHJpbmcpKTsK
LSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVyYXRv
ck5leHRJbmRleFByaXZhdGVOYW1lLCBuZXh0SW5kZXgpOworICAgIGNsb25lLT5wdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dElu
ZGV4UHJpdmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKICAgICByZXR1cm4gY2xvbmU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4IDRi
NjMwYzIuLmE3ZjUxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
UHJvdG90eXBlLmNwcApAQCAtNzgsOCArNzgsOCBAQCB2b2lkIE1hcFByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSwgbWFwUHJvdG9GdW5jVmFsdWVzLCBEb250RW51
bSwgMCk7CiAKICAgICAvLyBQcml2YXRlIGdldCAvIHNldCBvcGVyYXRpb25zLgotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldFBy
aXZhdGVOYW1lLCBtYXBQcm90b0Z1bmNHZXQsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zZXRQcml2YXRl
TmFtZSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51bSwgMik7CisgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
Z2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51bSwgMSk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuc2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jU2V0LCBEb250RW51bSwg
Mik7CiAKICAgICBKU0Z1bmN0aW9uKiBlbnRyaWVzID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIDAsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQ
dWJsaWNOYW1lKCkuc3RyaW5nKCksIG1hcFByb3RvRnVuY0VudHJpZXMpOwogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5l
bnRyaWVzUHVibGljTmFtZSgpLCBlbnRyaWVzLCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMDhkYTFk
Yi4uM2MyOTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAKKyNpbmNsdWRlICJCdWlsdGluTmFt
ZXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29waWVkU3Bh
Y2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKQEAgLTk5LDEwICsxMDAsMTAgQEAgdm9p
ZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBPYmoKICAgICAvLyBuby4gb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1
Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7
CiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5jcmVhdGVQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIERvbnRF
bnVtLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lLCBvYmplY3RDb25zdHJ1Y3Rv
ckRlZmluZVByb3BlcnR5LCBEb250RW51bSwgMyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0UHJvdG90eXBlT2ZQcml2YXRl
TmFtZSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgRG9udEVudW0sIDEpOwotICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmdldE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Q
cm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUHJp
dmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIERvbnRFbnVtLCAyKTsKKyAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVj
dG9yRGVmaW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRQ
cm90b3R5cGVPZlByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2Ys
IERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJp
dmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBEb250RW51
bSwgMSk7CiB9CiAKIEpTRnVuY3Rpb24qIE9iamVjdENvbnN0cnVjdG9yOjphZGREZWZpbmVQcm9w
ZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCmluZGV4IDBh
YzMyMGYuLjE3NTEyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZmxlY3RPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
ZmxlY3RPYmplY3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJSZWZsZWN0T2JqZWN0LmgiCiAKKyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIK
ICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCkBAIC04NSw4ICs4Niw4IEBAIHZv
aWQgUmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoaW5mbygpKSk7CiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5vd25LZXlzUHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmpl
Y3RPd25LZXlzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMSk7Ci0gICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yUHJpdmF0ZU5hbWUsIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAyKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5vd25LZXlzUHJpdmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdE93bktl
eXMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAxKTsKKyAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JQcml2YXRlTmFtZSgpLCByZWZsZWN0T2JqZWN0
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSwgMik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDQ2OTkxODIuLmE3YmE3Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBl
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0
cmluZ1Byb3RvdHlwZS5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAi
QnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJD
b3BpZWRTcGFjZUlubGluZXMuaCIKQEAgLTEzNyw4ICsxMzgsOCBAQCB2b2lkIFN0cmluZ1Byb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cgogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb25j
YXQiLCBzdHJpbmdQcm90b0Z1bmNDb25jYXQsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVuY0lu
ZGV4T2YsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigibGFzdEluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgRG9udEVu
dW0sIDEpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5yZXBsYWNlVXNpbmdSZWdFeHBQcml2YXRlTmFtZSwgc3Ry
aW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90
eXBlUmVwbGFjZVJlZ0V4cEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNo
UHJpdmF0ZU5hbWUsIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCwgRG9u
dEVudW0sIDIpOworICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBsYWNlVXNpbmdSZWdF
eHBQcml2YXRlTmFtZSgpLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAsIERvbnRF
bnVtLCAyLCBTdHJpbmdQcm90b3R5cGVSZXBsYWNlUmVnRXhwSW50cmluc2ljKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5yZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2hQcml2YXRlTmFtZSgpLCBzdHJpbmdQ
cm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gsIERvbnRFbnVtLCAyKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic2xpY2UiLCBzdHJpbmdQcm90b0Z1
bmNTbGljZSwgRG9udEVudW0sIDIpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJzdWJzdHIiLCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIsIERvbnRFbnVtLCAyKTsK
ICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyaW5nIiwg
c3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nLCBEb250RW51bSwgMik7CkBAIC0xNzUsNyArMTc2LDcg
QEAgdm9pZCBTdHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHIKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigibm9ybWFsaXplIiwgc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCBEb250
RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCBE
b250RW51bSwgMCk7CiAKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Y2hhckNvZGVBdFByaXZhdGVOYW1lLCBzdHJp
bmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7
CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgpLCBz
dHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNp
Yyk7CiAKICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIg
U3RyaW5nQ29uc3RydWN0b3IgaGFzIGJlZW4gYnVpbHQKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmgKaW5kZXggN2FmMWY5Zi4uZjNmYzMzMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5o
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGVJbmxpbmVzLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDEyY2Y4Li42MmMxNTRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRkIGEgcHJpdmF0
ZSBnbG9iYWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODkzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTWFyayBMYW0uCisKKyAgICAgICAgQWRkIEpTQ0pTVmFsdWVJbmxpbmVzLmggdG8gZml4IGJ1
aWxkIGlzc3Vlcy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0Jv
eC5jcHA6CisKIDIwMTYtMDYtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBmaXggcG9zdC1sYW5kaW5nIHJldmlldyBjb21tZW50IGZyb20g
RGFyaW4gb24gcjIwMjE4OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tCb3guY3BwCmluZGV4IGMwOWNlMDIuLjcxZTRlMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVm
ZmVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9EYXRhVmlldy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281757</attachid>
            <date>2016-06-21 10:24:12 -0700</date>
            <delta_ts>2016-06-21 10:54:44 -0700</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>changes.patch</filename>
            <type>text/plain</type>
            <size>167346</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2MzY1NmQyLi4yMDc1MWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02ODUsNyArNjg1LDYgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvci5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwCiAgICAgcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKLSAgICBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5j
cHAKICAgICBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKICAgICBydW50aW1lL0pTQ0pTVmFs
dWUuY3BwCiAgICAgcnVudGltZS9KU0NhbGxlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDdmMWVhNDMuLjMxZGYyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzMCBAQAorMjAxNi0wNi0yMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBJdCBzaG91bGQgYmUgZWFzeSB0byBhZGQgYSBwcml2YXRlIGdsb2JhbCBo
ZWxwZXIgZnVuY3Rpb24gZm9yIGJ1aWx0aW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTMKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExh
bS4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgdHdvIHRoaW5ncy4gRmlyc3QgaXQgbW92ZXMg
YWxsIHRoZSBidWlsdGluIG5hbWVzCisgICAgICAgIG91dCBvZiBDb21tb25JZGVudGlmaWVycyBh
bmQgaW50byBCdWlsdGluTmFtZXMuIFRoaXMgbWVhbnMgdGhhdAorICAgICAgICBhZGRpbmcgYSBu
ZXcgZnVuY3Rpb24gdG8gdGhlIEJ1aWx0aW5zIGRvZXMgbm90IHJlcXVpcmUgcmVidWlsZGluZwor
ICAgICAgICBhbGwgb2YgSmF2YVNjcmlwdENvcmUuIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3
IGRlY29yYXRvciB0byBvdXIKKyAgICAgICAgYnVpbHRpbnMgQHByaXZhdGVHbG9iYWwgdGhhdCB3
aWxsIGF1dG9tYXRpY2FsbHkgcHV0IHRoZSBmdW5jdGlvbgorICAgICAgICBvbiB0aGUgZ2xvYmFs
IG9iamVjdC4gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAg
ICAgICAgdGhlIHByaXZhdGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgVGhpcyBw
YXRjaCwgYWxzbywgcmVtb3ZlcyB0aGUgSlNBcnJheUl0ZXJhdG9yLmgvLmNwcCBmaWxlcworICAg
ICAgICBhcyB0aGV5IG5vIGxvbmdlciBhcHBlYXIgdG8gYmUgdXNlZCBpbiBhbnkgcmVhbCB3YXku
IEZpbmFsbHksCisgICAgICAgIHRoZSBidWlsdGlucyB0ZXN0cyBoYXZlIGJlZW4gcmViYXNlbGlu
ZWQuIEl0IGFwcGVhcnMgdGhpcyBoYXMKKyAgICAgICAgbm90IGJlZW4gZG9uZSBmb3IgYSB3aGls
ZSBzbyB0aGUgZXhwZWN0ZWQgZmlsZXMgY29udGFpbiBvdGhlcgorICAgICAgICBjaGFuZ2VzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weToKKyAgICAgICAgKEJ1aWx0aW5zQ29tYmlu
ZWRIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKGdlbmVyYXRlX3Nl
Y3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyk6CisgICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zv
cl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8pOgorICAgICAgICAqIFNjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfbW9kZWwucHk6CisgICAgICAgIChCdWlsdGluRnVuY3Rpb24uX19pbml0
X18pOgorICAgICAgICAoQnVpbHRpbkZ1bmN0aW9uLmZyb21TdHJpbmcpOgorICAgICAgICAqIFNj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9t
aXNlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAgICogU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3Rv
dHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMt
cmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFs
Q2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2Vw
YXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICog
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoK
KyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2Fz
aW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogYnVpbHRpbnMvQXJyYXlJdGVy
YXRvclByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9BcnJheVByb3RvdHlwZS5qczoK
KyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9H
ZW5lcmF0b3JQcm90b3R5cGUuanM6CisgICAgICAgICogYnVpbHRpbnMvR2xvYmFsT2JqZWN0Lmpz
OgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzOgorICAgICAgICAqIGJ1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKiBidWlsdGlucy9TdHJpbmdQcm90
b3R5cGUuanM6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5j
cHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVBcnJvd0Z1bmN0aW9uQ29udGV4
dFNjb3BlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0
ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWREZXJpdmVkQ29uc3Ry
dWN0b3JGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4
dFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVk
Q29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlQ2hhbmdlKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdEhvbWVPYmpl
Y3RGb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0UHV0SG9tZU9iamVjdCk6CisgICAgICAg
IChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZHT3Bl
cmF0aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUpOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9w
ZXJ0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAo
SlNDOjpMZXhlcjxMQ2hhcj46OnBhcnNlSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkxleGVy
PFVDaGFyPjo6cGFyc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAg
ICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlw
ZT46OmNyZWF0ZUdlbmVyYXRvclBhcmFtZXRlcnMpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VFeHBvcnREZWNsYXJhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5SXRlcmF0b3JQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tbW9u
SWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlR2V0dGVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdFByb3Rv
dHlwZUdldHRlckZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5
cGVGdW5jUmVzb2x2ZWRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3RJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJvdW5k
Rm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVy
YXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6ZmluaXNo
Q3JlYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmtpbmQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmg6IFJlbW92ZWQu
CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZp
ZXdDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZTo6cmVzdWx0KToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURlZmVy
cmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6CisgICAg
ICAgICogcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmdJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU1N0cmluZ0l0ZXJh
dG9yOjppdGVyYXRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6Y2xv
bmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6UmVmbGVjdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5oOgorCiAy
MDE2LTA2LTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
IHNob3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIG1vcmUgdHlwZXMgb2YgSUNzIGlubGluZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NWZmZmE4Li5lOGUzZTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg5LDcgKzE4OSw3IEBACiAJCTBGMkI2NkYwMTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQjY2QzIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQ2
NEFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYyQjY2RjExN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJCNjZDMzE3
QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjJCNjZGMjE3QjZCNUFCMDBB
N0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQjY2QzQxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjJCNjZGMzE3QjZCNUFCMDBB
N0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkI2NkM1MTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkI2
NkYzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyQjY2QzUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3JJbmxpbmVzLmggKi87IH07CiAJCTBGMkI2NkY0MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkI2NkM2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjJCNjZGNTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMkI2NkM3MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMkI2NkM4MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTIzNyw3ICsxMjM3LDcgQEAKIAkJNzA1QjQxQjAxQTZF
NTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzA1QjQxQTgxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9i
amVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcwNUI0MUIxMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xQcm90b3R5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzA1QjQxQTkxQTZFNTAxRTAw
NzE2NzU3IC8qIFN5bWJvbFByb3RvdHlwZS5jcHAgKi87IH07CiAJCTcwNUI0MUIyMUE2RTUwMUUw
MDcxNjc1NyAvKiBTeW1ib2xQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcwNUI0MUFBMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xQcm90
b3R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk3MDhFQkUyNDFDRThGMzU4MDA0NTMxNDYgLyogSW50bE9iamVjdElubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwOEVCRTIzMUNFOEYzNTAw
MDQ1MzE0NiAvKiBJbnRsT2JqZWN0SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTcwOEVCRTI0MUNFOEYzNTgwMDQ1MzE0NiAvKiBJbnRs
T2JqZWN0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzA4RUJFMjMxQ0U4RjM1MDAwNDUzMTQ2IC8qIEludGxPYmplY3RJbmxpbmVzLmggKi87
IH07CiAJCTcwOTRDNERFMUFFNDM5NTMwMDQxQTJFRSAvKiBCeXRlY29kZUludHJpbnNpY1JlZ2lz
dHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcw
OTRDNERDMUFFNDM5NTMwMDQxQTJFRSAvKiBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcCAq
LzsgfTsKIAkJNzA5NEM0REYxQUU0Mzk1MzAwNDFBMkVFIC8qIEJ5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcw
OTRDNEREMUFFNDM5NTMwMDQxQTJFRSAvKiBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzA5RkI4Njcx
QUUzMzVDNjAwMzlEMDY5IC8qIEpTV2Vha1NldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MDlGQjg2MTFBRTMzNUM2MDAzOUQwNjkgLyogSlNXZWFr
U2V0LmNwcCAqLzsgfTsKQEAgLTE3MjcsNyArMTcyNyw3IEBACiAJCUE3N0YxODIxMTY0MDg4QjIw
MDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc3RjE4MUYxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5jcHAg
Ki87IH07CiAJCUE3N0YxODIyMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0YxODIwMTY0MDg4QjIw
MDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzdGMTgyNTE2NDE5MkM3MDA2NDBBNDcgLyogUGFyc2VyTW9kZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0YxODI0
MTY0MTkyNTQwMDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBB
U1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0E3RUU3NDExQjk4QjhEMDA2NUExNEYgLyogQVNUQnVpbGRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3ODRBMjYxMTFEMTY2MjIwMDU3
NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0E3RUU3NDExQjk4QjhEMDA2NUExNEYgLyogQVNUQnVpbGRlci5oICovOyB9
OwogCQlBNzg0QTI2NDExRDE2NjIyMDA1Nzc2QUMgLyogU3ludGF4Q2hlY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzcxMUI5OEI4RDAw
NjVBMTRGIC8qIFN5bnRheENoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzg1MDdENzE3Q0JDNkZEMDAxMUY2RTcgLyogTWFwRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NTA3RDUx
N0NCQzZGRDAwMTFGNkU3IC8qIE1hcERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzg1RjZCQzE4QzU1M0ZFMDBGMTA2MjYgLyogU3BpbGxS
ZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE3NjYsOCAr
MTc2Niw2IEBACiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9j
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4
MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCREFFQzgxN0Y0RUExNDAwRjYx
NDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuY3BwICovOyB9OwogCQlBN0JEQUVDOTE3RjRFQTE0MDBGNjE0MEMg
LyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JQcm90b3R5cGUuaCAqLzsgfTsKLQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJy
YXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCAqLzsg
fTsKLQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzUxN0Y0RUEx
NDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovOyB9OwogCQlBN0JGRjNDMDE3OTg2ODk0
MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCRkYzQkYxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0Zp
bHRyYXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTdDMEM0QUMxNjgxMDMwMjAwMTcwMTFEIC8qIEpT
U2NyaXB0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QzBD
NEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQTE2N0MwOENEMDAxNzAxMUQgLyog
SlNTY3JpcHRSZWYuY3BwICovOyB9OwpAQCAtMTg3OSw3ICsxODc3LDcgQEAKIAkJQkMxOEM0MzEw
RTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2NjAyNTU1OTdEMDFGRjYwRjcgLyogTGV4ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQzNzBF
MTZGNUNEMDBCMzQ0NjAgLyogTG9va3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2OTAyNTU1OTdEMDFGRjYwRjcgLyogTG9va3VwLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0M0Mw
RTE2RjVDRDAwQjM0NDYwIC8qIE1hdGhPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODZCMDI1NTU5N0QwMUZGNjBGNyAvKiBNYXRoT2Jq
ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
QkMxOEM0M0YwRTE2RjVDRDAwQjM0NDYwIC8qIE5vZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2RTAyNTU1OTdEMDFGRjYwRjcgLyogTm9k
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlC
QzE4QzQzRjBFMTZGNUNEMDBCMzQ0NjAgLyogTm9kZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODZFMDI1NTU5N0QwMUZGNjBGNyAvKiBOb2Rl
cy5oICovOyB9OwogCQlCQzE4QzQ0MTBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyQ29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjY4
MEMzMEUxNkQ0RTkwMEEwNkU5MiAvKiBOdW1iZXJDb25zdHJ1Y3Rvci5oICovOyB9OwogCQlCQzE4
QzQ0MjBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI2ODBFNjBFMTZENTIzMDBB
MDZFOTIgLyogTnVtYmVyQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCUJDMThDNDQzMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBOdW1iZXJPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODcxMDI1NTU5N0QwMUZGNjBGNyAvKiBOdW1iZXJPYmpl
Y3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
Mzk4Niw4ICszOTg0LDYgQEAKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0
TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQw
QyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFy
cmF5SXRlcmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdC
REFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gSlNBcnJheUl0ZXJhdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVu
dGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07Ci0JCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAv
KiBKU0FycmF5SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
cnJheUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkZGM0JGMTc5
ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR0ZpbHRyYXRpb25SZXN1bHQuaDsgcGF0aCA9IGRmZy9ERkdGaWx0
cmF0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzBDNEFBMTY3
QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NjcmlwdFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3QzBDNEFCMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRSZWZQcml2YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzE3LDggKzU3MTMsNiBAQAogCQkJCTBGMkI2NkJB
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgKi8sCiAJCQkJMEYyQjY2
QkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJMEYyQjY2
QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAotCQkJ
CUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAotCQkJ
CUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCQk4
NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKIAkJCQk4
NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJNjU3
Q0Y0NTYxOUJGNjY2MjAwNEFDQkYyIC8qIEpTQ2FsbGVlLmNwcCAqLywKQEAgLTc2NjAsNyArNzY1
NCw2IEBACiAJCQkJMEYyQjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90
b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBK
U0FycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAw
QTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEM0MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtOTEwNyw3ICs5MTAwLDYgQEAKIAkJCQkwRjJCNjZFNjE3
QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjJCNjZFODE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhlYXBTbmFw
c2hvdEJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTdCREFFQ0ExN0Y0RUExNDAwRjYx
NDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBB
Njc3RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkx
MTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0MEY4QUYwQTUwOEQyMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVk
X2hlYWRlci5weQppbmRleCA4OTFiZDNjLi42MGVlYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9o
ZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkg
b2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02
MCw2ICs2MCw3IEBAIGNsYXNzIEJ1aWx0aW5zQ29tYmluZWRIZWFkZXJHZW5lcmF0b3IoQnVpbHRp
bnNHZW5lcmF0b3IpOgogICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVf
c2VjdGlvbl9mb3Jfb2JqZWN0KG9iamVjdCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxm
LmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkKICAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisg
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9w
cml2YXRlX2NvZGVfbmFtZV9tYWNybygpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxh
dGUoVGVtcGxhdGVzLkNvbWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3Mp
KQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJv
dHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCkBA
IC0xNTAsMyArMTUxLDIyIEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18l
KGNvZGVOYW1lKXNDb25zdHJ1Y3RBYmlsaXR5OyIiIiAlIGZ1bmN0aW9uCiAKICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJn
cykKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9z
ZWN0aW9uX2Zvcl9nbG9iYWxfcHJpdmF0ZV9jb2RlX25hbWVfbWFjcm8oc2VsZik6CisgICAgICAg
IGFyZ3MgPSB7CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3
b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMg
PSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVB
Q0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKG1hY3JvKSBcXCIgJSBhcmdz
KQorICAgICAgICBmdW5jdGlvbnMgPSBmaWx0ZXIobGFtYmRhIGZ1bmN0aW9uOiBmdW5jdGlvbi5p
c19nbG9iYWxfcHJpdmF0ZSwgc2VsZi5tb2RlbCgpLmFsbF9mdW5jdGlvbnMoKSkKKyAgICAgICAg
ZnVuY3Rpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiB4LmZ1bmN0aW9uX25hbWUpCisgICAgICAgIGZv
ciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0gewor
ICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAg
ICAgICAgICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JG
dW5jdGlvbihmdW5jdGlvbiksCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcywgJShjb2RlTmFtZSlzKSBcXCIgJSBmdW5jdGlv
bl9hcmdzKQorCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19tb2RlbC5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5
CmluZGV4IDAyMmE5OGIuLjc3YjJiODggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CkBAIC00MSw4ICs0MSw5
IEBAIF9GUkFNRVdPUktfQ09ORklHX01BUCA9IHsKIH0KIAogZnVuY3Rpb25IZWFkUmVnRXhwID0g
cmUuY29tcGlsZShyIig/OkBbXHd8PV0rXHMqXG4pKmZ1bmN0aW9uXHMrXHcrXHMqXCguKj9cKSIs
IHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUu
Y29tcGlsZShyIl5AaW50cmluc2ljPShcdyspXHMqXG4iLCByZS5NVUxUSUxJTkUgfCByZS5ET1RB
TEwpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXkBjb25zdHJ1
Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKK2Z1bmN0aW9uR2xvYmFsUHJpdmF0ZVJl
Z0V4cCA9IHJlLmNvbXBpbGUociIuKl5AZ2xvYmFsUHJpdmF0ZSIsIHJlLk1VTFRJTElORSB8IHJl
LkRPVEFMTCkKK2Z1bmN0aW9uSW50cmluc2ljUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBpbnRy
aW5zaWM9KFx3KykiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCitmdW5jdGlvbklzQ29uc3Ry
dWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiLipeQGNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5F
IHwgcmUuRE9UQUxMKQogZnVuY3Rpb25OYW1lUmVnRXhwID0gcmUuY29tcGlsZShyImZ1bmN0aW9u
XHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKIGZ1bmN0aW9uUGFyYW1l
dGVyRmluZGVyID0gcmUuY29tcGlsZShyIl5mdW5jdGlvblxzKyg/Olx3KylccypcKCgoPzpccypc
dyspP1xzKig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwp
CiAKQEAgLTk0LDExICs5NSwxMiBAQCBjbGFzcyBCdWlsdGluT2JqZWN0OgogCiAKIGNsYXNzIEJ1
aWx0aW5GdW5jdGlvbjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVu
Y3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmluc2ljKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBwYXJh
bWV0ZXJzLCBpc19jb25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZhdGUsIGludHJpbnNpYyk6CiAg
ICAgICAgIHNlbGYuZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uX25hbWUKICAgICAgICAgc2VsZi5m
dW5jdGlvbl9zb3VyY2UgPSBmdW5jdGlvbl9zb3VyY2UKLSAgICAgICAgc2VsZi5pc19jb25zdHJ1
Y3RvciA9IGlzX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBhcmFtZXRl
cnMKKyAgICAgICAgc2VsZi5pc19jb25zdHJ1Y3RvciA9IGlzX2NvbnN0cnVjdG9yCisgICAgICAg
IHNlbGYuaXNfZ2xvYmFsX3ByaXZhdGUgPSBpc19nbG9iYWxfcHJpdmF0ZQogICAgICAgICBzZWxm
LmludHJpbnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9iamVjdCA9IE5vbmUgICMgU2V0
IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMTksMTEgKzEyMSwxMiBAQCBjbGFz
cyBCdWlsdGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1bmN0aW9uTmFt
ZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAgICAgICAgaXNfY29uc3RydWN0
b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25fc291cmNlKSAh
PSBOb25lCisgICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVuY3Rpb25HbG9iYWxQcml2YXRl
UmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQogICAgICAgICBwYXJhbWV0ZXJz
ID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRlckZpbmRlci5maW5kYWxsKGZ1
bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAgaWYgbGVuKHBhcmFtZXRlcnNb
MF0pID09IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAotICAgICAgICByZXR1cm4g
QnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwgaXNfY29uc3Ry
dWN0b3IsIHBhcmFtZXRlcnMsIGludHJpbnNpYykKKyAgICAgICAgcmV0dXJuIEJ1aWx0aW5GdW5j
dGlvbihmdW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2NvbnN0
cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKQogCiAgICAgZGVmIF9fc3RyX18o
c2VsZik6CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUgKHNlbGYuZnVuY3Rpb25fbmFt
ZSwgJywgJy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1C
dWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Q
cm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdAppbmRleCBkYmQzZTEyLi5hZjM5ODkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYwLDYg
KzYwLDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9t
aXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWIKICAgICBtYWNybyhmdWxmaWxsUHJvbWlz
ZSkgXAogICAgIG1hY3JvKHJlamVjdFByb21pc2UpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9C
VUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBE
RUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50
Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRv
cihKU0M6OlZNJik7CiAKQEAgLTEwNyw0NSArMTA5LDQyIEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5f
Q09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1
dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5o
IgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VS
ZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6
OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlz
ZUNvZGVMZW5ndGggPSA0MTM7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21p
c2VDb2RlTGVuZ3RoID0gNDEwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRp
blByb21pc2VSZWplY3RQcm9taXNlQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBj
b25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUgPQogICAgICIoZnVu
Y3Rpb24gKHByb21pc2UsIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNl
IHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJv
bWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZp
bGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VS
ZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21p
c2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIEBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwg
cmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAogICAgICJ9KVxuIiBcCiA7CiAKIGNvbnN0
IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGggPSA0
MTI7Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCA9
IDQwOTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Qcm9taXNlRnVsZmls
bFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNf
YnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogICAgICIoZnVuY3Rpb24gKHByb21p
c2UsIHZhbHVlKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNl
RnVsZmlsbFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9
IHZhbHVlO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9
IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9u
cyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHBy
b21pc2VGdWxmaWxsZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIEBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKTtc
biIgXAotICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0
aW9ucywgdmFsdWUpO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE1NCw3ICsxNTMsNyBAQCBj
b25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KICNkZWZpbmUg
REVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50
Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpT
Qzo6Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNv
ZGVOYW1lIyNTb3VyY2UoKSk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCkt
PmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygp
LT5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsg
fQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1
bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4u
UHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMWIxZDVlMS4uMGRmZTRhMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9K
YXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xMDks
NDUgKzEwOSw0MiBAQCBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKERF
Q0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMu
aCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5j
bHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvbWlzZVJlamVjdFBy
b21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxl
bmd0aCA9IDQxMzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVM
ZW5ndGggPSA0MTA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvbWlz
ZVJlamVjdFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNo
YXIqIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZSA9CiAgICAgIihmdW5jdGlvbiAo
cHJvbWlzZSwgcmVhc29uKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0
XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBw
cm9taXNlUmVqZWN0UmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVz
dWx0ID0gcmVhc29uO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0
aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJl
YWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRl
ID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0ZWQocHJvbWlzZSwgcmVhc29uLCByZWFjdGlv
bnMpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMo
cmVhY3Rpb25zLCByZWFzb24pO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVDb25zdHJ1
Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25z
dCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCA9IDQxMjsKK2Nv
bnN0IGludCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoID0gNDA5Owor
c3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlz
ZUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGlu
UHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSA9CiAgICAgIihmdW5jdGlvbiAocHJvbWlzZSwgdmFs
dWUpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxs
UmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gdmFsdWU7
XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZp
bmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5k
ZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1
bGZpbGxlZDtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpO1xuIiBcCi0g
ICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2
YWx1ZSk7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMTU2LDcgKzE1Myw3IEBAIGNvbnN0IGNo
YXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogI2RlZmluZSBERUZJTkVf
QlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkg
XAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYg
dm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUj
I1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVO
YW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0Nf
Rk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVS
QVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENv
cmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0CmluZGV4IDJiYjRjYmMuLjBi
YTFkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVk
LmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5q
cy1yZXN1bHQKQEAgLTYxLDYgKzYxLDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJp
bGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkKICAgICBt
YWNybyhldmVyeSkgXAogICAgIG1hY3JvKGZvckVhY2gpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFD
SF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3Vt
ZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVy
YXRvcihKU0M6OlZNJik7CiAKQEAgLTEwOSwxOCArMTExLDE5IEBAIEpTQ19GT1JFQUNIX0JVSUxU
SU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4
ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNp
Yy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb3Rv
dHlwZUV2ZXJ5Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNh
bm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5n
dGggPSA3NjI7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoID0g
NzYwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5
Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Q
cm90b3R5cGVFdmVyeUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAg
ICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAg
IiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBi
ZSBudWxsXCIpO1xuIiBcCiAgICAgIiAgICBcbiIgXApAQCAtMTI5LDcgKzEzMiw2IEBAIGNvbnN0
IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiAgICAgIiAgICBcbiIgXAogICAg
ICIgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0
aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBp
ZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0
IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBAIC0xNDcsMTIgKzE0OSwx
MiBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogOwogCiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25z
dHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1j
b25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGggPSA2OTQ7Citjb25z
dCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGggPSA2OTI7CitzdGF0aWMg
Y29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVJbnRyaW5z
aWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9y
RWFjaENvZGUgPQogICAgICIoZnVuY3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwK
ICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAo
dGhpcyA9PT0gbnVsbClcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwi
QXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxc
Iik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBAIC0xNjEsNyArMTYzLDYgQEAgY29uc3QgY2hhciog
c19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAgICIgICAgXG4iIFwKICAgICAiICAg
IHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7XG4iIFwKICAgICAiICAgIHZhciBsZW5ndGggPSBA
dG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgaWYgKHR5
cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cg
bmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBjYWxsYmFjayBtdXN0IGJl
IGEgZnVuY3Rpb25cIik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBAIC0xNzgsNyArMTc5LDcgQEAg
Y29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogI2RlZmluZSBERUZJ
TkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3Vu
dCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpW
TSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFt
ZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5h
bWUjI1NvdXJjZSgpKTsgfQorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNv
ZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBK
U0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVm
IERFRklORV9CVUlMVElOX0dFTkVSQVRPUgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnBy
b3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMzE1ZTAwZS4uM2NjZTkzYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAt
MTExLDE4ICsxMTEsMTkgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9D
T0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0
YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2ljLmgi
CiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBl
RXZlcnlDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9
IDc2MjsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjA7
CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2Rl
SW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3Rv
dHlwZUV2ZXJ5Q29kZSA9CiAgICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntc
biIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAg
IGlmICh0aGlzID09PSBudWxsKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJy
b3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51
bGxcIik7XG4iIFwKICAgICAiICAgIFxuIiBcCkBAIC0xMzEsNyArMTMyLDYgQEAgY29uc3QgY2hh
ciogc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlID0KICAgICAiICAgIFxuIiBcCiAgICAgIiAg
ICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpO1xuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0g
QHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0
eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUg
YSBmdW5jdGlvblwiKTtcbiIgXAogICAgICIgICAgXG4iIFwKQEAgLTE0OSwxMiArMTQ5LDEyIEBA
IGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiA7CiAKIGNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVj
dEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0
IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUxlbmd0aCA9IDY5NDsKK2NvbnN0IGlu
dCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUxlbmd0aCA9IDY5MjsKK3N0YXRpYyBjb25z
dCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUludHJpbnNpYyA9
IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNo
Q29kZSA9CiAgICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAg
ICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlz
ID09PSBudWxsKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJh
eS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtc
biIgXAogICAgICIgICAgXG4iIFwKQEAgLTE2Myw3ICsxNjMsNiBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFy
IGFycmF5ID0gQE9iamVjdCh0aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xl
bmd0aChhcnJheS5sZW5ndGgpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9m
IGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcg
QFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBm
dW5jdGlvblwiKTtcbiIgXAogICAgICIgICAgXG4iIFwKQEAgLTE4MCw3ICsxNzksNyBAQCBjb25z
dCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAjZGVmaW5lIERFRklORV9C
VUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBc
CiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2
bSkgXAoge1wKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNF
eGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMj
U291cmNlKCkpOyB9CisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFt
ZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5h
bWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19G
T1JFQUNIX0JVSUxUSU4uUFJPVE9UWVBFX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0CmluZGV4IDAzOTFkZTIu
LmRmZTZhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21i
aW5lZC5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJp
bmVkLmpzLXJlc3VsdApAQCAtNjAsNiArNjAsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RBYmlsaXR5Owog
ICAgIG1hY3JvKGZyb20pIFwKICAgICBtYWNybyhvZikgXAogCisjZGVmaW5lIEpTQ19GT1JFQUNI
X0JVSUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShtYWNybykgXAorCiAjZGVmaW5l
IERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1l
bnRDb3VudCkgXAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJh
dG9yKEpTQzo6Vk0mKTsKIApAQCAtMTA3LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJ
Tl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhl
Y3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSW50cmluc2lj
LmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3Ry
dWN0b3JPZkNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5u
b3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGgg
PSAyOTQ7Citjb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAyODY7
CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVJ
bnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc19idWlsdGluQ29uc3Ry
dWN0b3JPZkNvZGUgPQogICAgICIoZnVuY3Rpb24gKClcbiIgXAogICAgICJ7XG4iIFwKICAgICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3Ro
ID0gYXJndW1lbnRzLmxlbmd0aDtcbiIgXAotICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFy
IGFycmF5ID0gdHlwZW9mIHRoaXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDog
bmV3IEBBcnJheShsZW5ndGgpO1xuIiBcCiAgICAgIiAgICBmb3IgKHZhciBrID0gMDsgayA8IGxl
bmd0aDsgKytrKVxuIiBcCiAgICAgIiAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBh
cmd1bWVudHNba10pO1xuIiBcCkBAIC0xMzAsNDkgKzEzMiwzNSBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0
eSBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29u
c3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0
cnVjdG9yRnJvbUNvZGVMZW5ndGggPSAyMDQ2OworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVj
dG9yRnJvbUNvZGVMZW5ndGggPSAxOTc5Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
YnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwog
Y29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIihmdW5jdGlv
biAoaXRlbXMgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4i
IFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzT2JqID0gdGhpcztcbiIgXAotICAgICJc
biIgXAogICAgICIgICAgdmFyIG1hcEZuID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVu
dHNbMV0gOiB1bmRlZmluZWQ7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzQXJn
O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkge1xu
IiBcCiAgICAgIiAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gXCJmdW5jdGlvblwiKVxuIiBc
CiAgICAgIiAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1
aXJlcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQsIHdoZW4gcHJvdmlkZWQsIGJlIGEgZnVuY3Rp
b25cIik7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0
aCA+IDIpXG4iIFwKICAgICAiICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTtcbiIg
XAogICAgICIgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoaXRlbXMgPT0gbnVs
bClcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSBy
ZXF1aXJlcyBhbiBhcnJheS1saWtlIG9iamVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZFwiKTtc
biIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gaXRlbXNbQHN5
bWJvbEl0ZXJhdG9yXTtcbiIgXAogICAgICIgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwp
IHtcbiIgXAogICAgICIgICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09IFwiZnVu
Y3Rpb25cIilcbiIgXAogICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFy
cmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgcHJvcGVydHkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50
LCBpdGVtc1tTeW1ib2wuaXRlcmF0b3JdLCB3aGVuIGV4aXN0cywgYmUgYSBmdW5jdGlvblwiKTtc
biIgXAotICAgICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKICAgICAiICAgICAgICB2YXIg
cmVzdWx0ID0gKHR5cGVvZiB0aGlzT2JqID09PSBcImZ1bmN0aW9uXCIpID8gQE9iamVjdChuZXcg
dGhpc09iaigpKSA6IFtdO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgdmFyIGsgPSAw
O1xuIiBcCiAgICAgIiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwo
aXRlbXMpO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAg
ICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHdyYXBw
ZXIgPSB7XG4iIFwKICAgICAiICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7XG4iIFwK
ICAgICAiICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjtcbiIgXAogICAgICIgICAgICAg
ICAgICB9XG4iIFwKICAgICAiICAgICAgICB9O1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICAg
ICAgZm9yICh2YXIgdmFsdWUgb2Ygd3JhcHBlcikge1xuIiBcCiAgICAgIiAgICAgICAgICAgIGlm
IChtYXBGbilcbiIgXAogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3Vs
dCwgaywgdGhpc0FyZyA9PT0gdW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNh
bGwodGhpc0FyZywgdmFsdWUsIGspKTtcbiIgXApAQCAtMTgwLDE3ICsxNjgsMTIgQEAgY29uc3Qg
Y2hhciogc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIiAgICAgICAgICAgICAg
ICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICAg
ICAgayArPSAxO1xuIiBcCiAgICAgIiAgICAgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAg
ICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7XG4iIFwKICAgICAiICAgICAgICByZXR1cm4gcmVzdWx0
O1xuIiBcCiAgICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBhcnJheUxp
a2UgPSBAT2JqZWN0KGl0ZW1zKTtcbiIgXAogICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9
IEB0b0xlbmd0aChhcnJheUxpa2UubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAg
Ly9cbiIgXAogICAgICIgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5j
dGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFy
cmF5KGFycmF5TGlrZUxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHZhciBrID0g
MDtcbiIgXAogICAgICIgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAogICAg
ICIgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTtcbiIgXApAQCAtMjAwLDcgKzE4Myw2
IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAg
ICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAg
ICAgICBrICs9IDE7XG4iIFwKICAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAg
cmVzdWx0Lmxlbmd0aCA9IGFycmF5TGlrZUxlbmd0aDtcbiIgXAogICAgICIgICAgcmV0dXJuIHJl
c3VsdDtcbiIgXAogICAgICJ9KVxuIiBcCkBAIC0yMTAsNyArMTkyLDcgQEAgY29uc3QgY2hhciog
c19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dF
TkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wK
LSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxl
KCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkp
OyB9CisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0
YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJj
ZSgpLCBOdWxsb3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KIEpTQ19GT1JFQUNIX0JV
SUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rv
ci1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2Vw
YXJhdGUuanMtcmVzdWx0CmluZGV4IDJkMjZlNDkuLmVkMTg0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTA5LDIwICsx
MDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09ERShERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgi
CiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjk0OworY29u
c3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjg2Oworc3RhdGljIGNv
bnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlSW50cmluc2ljID0g
SlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
ID0KICAgICAiKGZ1bmN0aW9uICgpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBcInVzZSBz
dHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50
cy5sZW5ndGg7XG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IHR5
cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXko
bGVuZ3RoKTtcbiIgXAogICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylc
biIgXAogICAgICIgICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2td
KTtcbiIgXApAQCAtMTMyLDQ5ICsxMzIsMzUgQEAgY29uc3QgY2hhciogc19idWlsdGluQ29uc3Ry
dWN0b3JPZkNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGlu
Q29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21D
b2RlTGVuZ3RoID0gMjA0NjsKK2NvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2Rl
TGVuZ3RoID0gMTk3OTsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Db25z
dHJ1Y3RvckZyb21Db2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIq
IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGl0ZW1zIClc
biIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxu
IiBcCiAgICAgIiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKICAgICAi
ICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5k
ZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAogICAgICIg
ICAgICAgIGlmICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAg
ICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0
aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBc
Ci0gICAgIlxuIiBcCiAgICAgIiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxuIiBc
CiAgICAgIiAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07XG4iIFwKICAgICAiICAg
IH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwKICAg
ICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgYW4g
YXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAi
XG4iIFwKICAgICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRv
cl07XG4iIFwKICAgICAiICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwKICAg
ICAiICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIpXG4i
IFwKICAgICAiICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9tIHJl
cXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3lt
Ym9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAi
XG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHJlc3VsdCA9ICh0
eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooKSkg
OiBbXTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAogICAg
ICIgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtcbiIg
XAotICAgICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBc
Ci0gICAgIiAgICAgICAgLy9cbiIgXAogICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xuIiBc
CiAgICAgIiAgICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3JdKCkge1xuIiBcCiAgICAgIiAgICAg
ICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKICAgICAiICAgICAgICAgICAgfVxuIiBc
CiAgICAgIiAgICAgICAgfTtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIGZvciAodmFy
IHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIgXAogICAgICIgICAgICAgICAgICBpZiAobWFwRm4pXG4i
IFwKICAgICAiICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNB
cmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcs
IHZhbHVlLCBrKSk7XG4iIFwKQEAgLTE4MiwxNyArMTY4LDEyIEBAIGNvbnN0IGNoYXIqIHNfYnVp
bHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFs
RGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgICAgIGsgKz0gMTtc
biIgXAogICAgICIgICAgICAgIH1cbiIgXAotICAgICJcbiIgXAogICAgICIgICAgICAgIHJlc3Vs
dC5sZW5ndGggPSBrO1xuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIgXAogICAg
ICIgICAgfVxuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXlMaWtlID0gQE9iamVj
dChpdGVtcyk7XG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9MZW5ndGgo
YXJyYXlMaWtlLmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIC8vXG4iIFwKICAg
ICAiICAgIHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09IFwiZnVuY3Rpb25cIikgPyBA
T2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShhcnJheUxp
a2VMZW5ndGgpO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICB2YXIgayA9IDA7XG4iIFwKICAg
ICAiICAgIHdoaWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7XG4iIFwKICAgICAiICAgICAgICB2
YXIgdmFsdWUgPSBhcnJheUxpa2Vba107XG4iIFwKQEAgLTIwMiw3ICsxODMsNiBAQCBjb25zdCBj
aGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlID0KICAgICAiICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgayArPSAx
O1xuIiBcCiAgICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJlc3VsdC5sZW5n
dGggPSBhcnJheUxpa2VMZW5ndGg7XG4iIFwKICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iIFwK
ICAgICAifSlcbiIgXApAQCAtMjEyLDcgKzE5Miw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNv
bnN0cnVjdG9yRnJvbUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJu
IHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZt
LCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQorICAgIHJl
dHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGlu
ayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9w
dCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOQ09OU1RS
VUNUT1JfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJ
TkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxD
bGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFsQ2xh
c2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQKaW5kZXggZDU2OWFjNS4uMjcwNzJkMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJl
c3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29tYmluZWQuanMt
cmVzdWx0CkBAIC01OSw2ICs1OSw4IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkCiAjZGVmaW5l
IEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3JvKGlz
UmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKIAorI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKKwogI2RlZmluZSBERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwK
ICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZN
Jik7CiAKQEAgLTEwNiwyOSArMTA4LDMwIEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgi
CiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFt
ZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50
ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsK
K3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0
IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUg
PQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1
c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5A
cmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25z
dHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1j
b25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29k
ZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJs
ZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNp
YyBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmlu
c2ljID0gSlNDOjpOb0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05h
bWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlc
biIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4i
IFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwK
IDsKQEAgLTEzNyw3ICsxNDAsNyBAQCBjb25zdCBjaGFyKiBzX2ludGVybmFsQ2xhc2hpbmdOYW1l
c0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VO
RVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVu
Y3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAot
ICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUo
KS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7
IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRh
YmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNl
KCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQogSlNDX0ZPUkVBQ0hfQlVJ
TFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJk
LVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBh
cmF0ZS5qcy1yZXN1bHQKaW5kZXggNWI2MWQyZi4uNGUyNTUxNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1B
cmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFy
Yml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xNjIsNiArMTYy
LDcgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBl
cjo6ZXhwb3J0TmFtZXMoKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2lj
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5l
cy5oPgpAQCAtMTcwLDEyICsxNzEsMTIgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9u
YWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1
YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19hcmJpdHJhcnlDb25k
aXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MTsKK2NvbnN0
IGludCBzX2FyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29k
ZUxlbmd0aCA9IDcwOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYXJiaXRyYXJ5Q29u
ZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlSW50cmluc2ljID0gSlNDOjpO
b0ludHJpbnNpYzsKIGNvbnN0IGNoYXIqIHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICAgICAiKGZ1bmN0aW9uIChzdHJlYW0pXG4iIFwKICAg
ICAie1xuIiBcCiAgICAgIiAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAg
IiAgICByZXR1cm4gISFzdHJlYW0uQHJlYWRlcjtcbiIgXAogICAgICJ9KVxuIiBcCiA7CkBAIC0x
ODUsNyArMTg2LDcgQEAgY29uc3QgY2hhciogc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVO
YW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNs
aWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBc
Ci0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5hcmJpdHJhcnlDb25k
aXRpb25hbEd1YXJkQnVpbHRpbnMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBj
bGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1
aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAorICAgIHJldHVybiBjbGllbnREYXRhLT5i
dWlsdGluRnVuY3Rpb25zKCkuYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zKCkuY29k
ZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9u
cygpLmFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2Uo
KSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBcCiB9CiBXRUJDT1JFX0ZPUkVB
Q0hfQVJCSVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5f
R0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2Vi
Q29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWls
dGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1YjE1NDRjLi44M2RlYzU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTYyLDYgKzE2Miw3IEBAIGlubGluZSB2
b2lkIEd1YXJkZWRCdWlsdGluQnVpbHRpbnNXcmFwcGVyOjpleHBvcnROYW1lcygpCiAKICNpbmNs
dWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FeGVjdXRhYmxl
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9JbnRyaW5zaWMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CkBAIC0xNzAsMTIgKzE3MSwxMiBA
QCBpbmxpbmUgdm9pZCBHdWFyZGVkQnVpbHRpbkJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMo
KQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19n
dWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9
IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3Vh
cmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcxOworY29uc3Qg
aW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcw
Oworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxl
U3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFy
KiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVu
Y3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBc
CiAgICAgIn0pXG4iIFwKIDsKQEAgLTE4NSw3ICsxODYsNyBAQCBjb25zdCBjaGFyKiBzX2d1YXJk
ZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNs
aWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNs
aWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5n
dWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwg
Y2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5j
b2RlTmFtZSMjU291cmNlKCkpOyBcCisgICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5j
dGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+
bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJkZWRCdWlsdGluQnVp
bHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmlu
c2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX0dVQVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShE
RUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVz
dWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRl
eCA1M2I1NTUyLi4xYzYxYWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0
aW4tU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1T
ZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTE5NCw2ICsxOTQsNyBAQCBpbmxpbmUgdm9pZCBHdWFyZGVk
SW50ZXJuYWxCdWlsdGluQnVpbHRpbkZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYg
dmlzaQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRp
bWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxs
SW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjAy
LDEyICsyMDMsMTIgQEAgaW5saW5lIHZvaWQgR3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5G
dW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2kKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfZ3VhcmRlZEludGVybmFsQnVpbHRp
bklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFs
QnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQg
c19ndWFyZGVkSW50ZXJuYWxCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGgg
PSA3MDsKK3N0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0
aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7
CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9j
a2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAg
ICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAogICAgICIgICAgcmV0dXJuICEh
c3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMjE3LDcgKzIxOCw3IEBA
IGNvbnN0IGNoYXIqIHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2Nr
ZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpT
Qzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGll
bnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuZ3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5z
KCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1
bmN0aW9ucygpLmd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3Vy
Y2UoKSk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkSW50ZXJuYWxCdWlsdGlu
QnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50
cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJ
TFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5q
cy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4
IDdjOTZiOWYuLmNlZGY4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBh
cmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJl
c3VsdApAQCAtMTU2LDYgKzE1Niw3IEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWls
dGluc1dyYXBwZXI6OmV4cG9ydE5hbWVzKCkKIAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERh
dGEuaCIKICNpbmNsdWRlIDxydW50aW1lL0V4ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxydW50aW1l
L0ludHJpbnNpYy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTQ2VsbElubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaD4KQEAgLTE2NCwxMiArMTY1LDEyIEBAIGlubGluZSB2b2lkIFVuZ3VhcmRl
ZEJ1aWx0aW5CdWlsdGluc1dyYXBwZXI6OmV4cG9ydE5hbWVzKCkKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJp
bGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzE7Citjb25zdCBpbnQgc191bmd1YXJkZWRC
dWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MDsKK3N0YXRpYyBjb25z
dCBKU0M6OkludHJpbnNpYyBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2Vk
Q29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7CiBjb25zdCBjaGFyKiBzX3VuZ3VhcmRl
ZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3Ry
ZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAg
ICJcbiIgXAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlc
biIgXAogOwpAQCAtMTc5LDcgKzE4MCw3IEBAIGNvbnN0IGNoYXIqIHNfdW5ndWFyZGVkQnVpbHRp
bklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBj
b2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRh
KiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkudW5ndWFyZGVk
QnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50
RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVO
YW1lIyNTb3VyY2UoKSk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9u
cygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxp
bmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS51bmd1YXJkZWRCdWlsdGluQnVp
bHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmlu
c2ljKTsgXAogfQogV0VCQ09SRV9GT1JFQUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RF
KERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJD
b3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDcyNmIyODEuLjE1NDRk
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMjA4LDYgKzIwOCw3
IEBAIGlubGluZSB2b2lkIHhtbENhc2luZ1Rlc3RCdWlsdGluRnVuY3Rpb25zOjp2aXNpdChKU0M6
OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50
cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJl
SW5saW5lcy5oPgpAQCAtMjE2LDIzICsyMTcsMjMgQEAgaW5saW5lIHZvaWQgeG1sQ2FzaW5nVGVz
dEJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX3htbENhc2lu
Z1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFi
aWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxDYXNp
bmdUZXN0Q29kZUxlbmd0aCA9IDcxOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdFhNTENhc2lu
Z1Rlc3RDb2RlTGVuZ3RoID0gNzA7CitzdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxD
YXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwog
Y29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVu
Y3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7
XG4iIFwKLSAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBc
CiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfeG1sQ2Fz
aW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0
QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nh
c2luZ1Rlc3RDb2RlTGVuZ3RoID0gNDAyOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENzc0Nh
c2luZ1Rlc3RDb2RlTGVuZ3RoID0gNDAxOworc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
eG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlID0KICAgICAi
KGZ1bmN0aW9uIChzdHJlYW0sIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwi
dXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0
ZSA9PT0gQHJlYWRhYmxlU3RyZWFtQ2xvc2VkKVxuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpO1xuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHJl
YWRhYmxlU3RyZWFtRXJyb3JlZClcbiIgXApAQCAtMjQ0LDEyICsyNDUsMTIgQEAgY29uc3QgY2hh
ciogc194bWxDYXNpbmdUZXN0Q3NzQ2FzaW5nVGVzdENvZGUgPQogOwogCiBjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVDb25zdHJ1Y3RB
YmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBp
bnQgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzg7Citjb25zdCBp
bnQgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzc7CitzdGF0aWMg
Y29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVJbnRy
aW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0VXJs
Q2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rpb24gKG9iamVjdCwga2V5LCBhcmdzKVxuIiBc
CiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwK
ICAgICAiICAgIHRyeSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgbWV0aG9kID0gb2JqZWN0W2tl
eV07XG4iIFwKICAgICAiICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gXCJ1bmRlZmluZWRc
IilcbiIgXApAQCAtMjY4LDcgKzI2OSw3IEBAIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdFVy
bENhc2luZ1Rlc3RDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2Vu
ZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRh
ID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJl
dHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkueG1sQ2FzaW5nVGVzdEJ1aWx0aW5z
KCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1
bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFwK
KyAgICByZXR1cm4gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RC
dWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1
aWx0aW5GdW5jdGlvbnMoKS54bWxDYXNpbmdUZXN0QnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNl
KCksIE51bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAogfQogV0VCQ09SRV9GT1JF
QUNIX1hNTENBU0lOR1RFU1RfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikK
ICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNTY1
OTVmNy4uY2JhZmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKQEAgLTQxLDYgKzQxLDcgQEAgZnVuY3Rp
b24gbmV4dCgpCiAgICAgcmV0dXJuIG5leHQuQGNhbGwodGhpcyk7CiB9CiAKK0BnbG9iYWxQcml2
YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yVmFsdWVOZXh0KCkKIHsKICAgICAidXNlIHN0cmlj
dCI7CkBAIC02Myw2ICs2NCw3IEBAIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JWYWx1ZU5leHQoKQog
ICAgIHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlv
biBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODUsNiAr
ODcsNyBAQCBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiAgICAgcmV0dXJuIHsgZG9u
ZSwgdmFsdWUgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JL
ZXlWYWx1ZU5leHQoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwppbmRleCAwMzMzYzcxLi5iNWQzMjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5
cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBl
LmpzCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogQGNvbnN0cnVjdG9yCitAZ2xvYmFsUHJpdmF0
ZQogZnVuY3Rpb24gY3JlYXRlQXJyYXlJdGVyYXRvcihpdGVyYXRlZE9iamVjdCwga2luZCwgaXRl
cmF0aW9uRnVuY3Rpb24pCiB7CiAgICAgdGhpcy5AaXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRlZE9i
amVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGlu
TmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApp
bmRleCBiNmY0ZTM4Li4wYmJhMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNywxMSArMjcsMTM5IEBACiAjZGVmaW5lIEJ1aWx0aW5OYW1l
c19oCiAKICNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKKyNpbmNsdWRlICJCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRl
ICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2RlZmluZSBKU0NfQ09NTU9O
X1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCisgICAgSlND
X0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfRlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAor
ICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFj
cm8pIFwKKyAgICBtYWNybyhpdGVyYXRlZE9iamVjdCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0
b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNybyhhcnJheUl0ZXJhdGlvbktpbmQpIFwKKyAgICBtYWNy
byhhcnJheUl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwK
KyAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2luZCkgXAorICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwK
KyAgICBtYWNybyhpdGVyYXRlZFN0cmluZykgXAorICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4KSBcCisgICAgbWFjcm8ocHJvbWlzZSkgXAorICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFu
ZGxlcikgXAorICAgIG1hY3JvKHJlamVjdGlvbkhhbmRsZXIpIFwKKyAgICBtYWNybyhpbmRleCkg
XAorICAgIG1hY3JvKGRlZmVycmVkKSBcCisgICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCisg
ICAgbWFjcm8oT2JqZWN0KSBcCisgICAgbWFjcm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykg
XAorICAgIG1hY3JvKE51bWJlcikgXAorICAgIG1hY3JvKEFycmF5KSBcCisgICAgbWFjcm8oU3Ry
aW5nKSBcCisgICAgbWFjcm8oUmVnRXhwKSBcCisgICAgbWFjcm8oTWFwKSBcCisgICAgbWFjcm8o
UHJvbWlzZSkgXAorICAgIG1hY3JvKFJlZmxlY3QpIFwKKyAgICBtYWNybyhJbnRlcm5hbFByb21p
c2UpIFwKKyAgICBtYWNybyhhYnMpIFwKKyAgICBtYWNybyhmbG9vcikgXAorICAgIG1hY3JvKHRy
dW5jKSBcCisgICAgbWFjcm8oaXNGaW5pdGUpIFwKKyAgICBtYWNybyhpc05hTikgXAorICAgIG1h
Y3JvKGNyZWF0ZSkgXAorICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCisgICAgbWFjcm8oZ2V0
UHJvdG90eXBlT2YpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAg
ICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVzKSBcCisgICAgbWFjcm8ob3duS2V5cykgXAorICAg
IG1hY3JvKEVycm9yKSBcCisgICAgbWFjcm8oUmFuZ2VFcnJvcikgXAorICAgIG1hY3JvKFR5cGVF
cnJvcikgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5ndGgpIFwKKyAgICBtYWNybyh0eXBlZEFy
cmF5U29ydCkgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBc
CisgICAgbWFjcm8oQnVpbHRpbkxvZykgXAorICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKKyAgICBt
YWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAorICAgIG1hY3JvKGVucXVldWVKb2IpIFwKKyAgICBt
YWNybyhoYW5kbGVyKSBcCisgICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBcCisgICAgbWFjcm8ocHJv
bWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKKyAgICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25z
KSBcCisgICAgbWFjcm8ocHJvbWlzZVJlc3VsdCkgXAorICAgIG1hY3JvKHB1c2gpIFwKKyAgICBt
YWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKKyAgICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKKyAgICBt
YWNybyhzdGFyRGVmYXVsdCkgXAorICAgIG1hY3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikg
XAorICAgIG1hY3JvKGdldCkgXAorICAgIG1hY3JvKHNldCkgXAorICAgIG1hY3JvKHNoaWZ0KSBc
CisgICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFycmF5KSBcCisgICAgbWFjcm8oSW50OEFycmF5KSBc
CisgICAgbWFjcm8oSW50MTZBcnJheSkgXAorICAgIG1hY3JvKEludDMyQXJyYXkpIFwKKyAgICBt
YWNybyhVaW50OEFycmF5KSBcCisgICAgbWFjcm8oVWludDhDbGFtcGVkQXJyYXkpIFwKKyAgICBt
YWNybyhVaW50MTZBcnJheSkgXAorICAgIG1hY3JvKFVpbnQzMkFycmF5KSBcCisgICAgbWFjcm8o
RmxvYXQzMkFycmF5KSBcCisgICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBcCisgICAgbWFjcm8oZXhl
YykgXAorICAgIG1hY3JvKGdlbmVyYXRvcikgXAorICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwK
KyAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkgXAorICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBc
CisgICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBc
CisgICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1lTW9kZSkgXAorICAgIG1hY3JvKENvbGxhdG9yKSBc
CisgICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQpIFwKKyAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwK
KyAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZhbHVlKSBcCisgICAgbWFjcm8odGhpc1RpbWVWYWx1
ZSkgXAorICAgIG1hY3JvKHRoaXNOdW1iZXJWYWx1ZSkgXAorICAgIG1hY3JvKG5ld1RhcmdldExv
Y2FsKSBcCisgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNCb3Vu
ZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCisgICAg
bWFjcm8oaW5zdGFuY2VPZikgXAorICAgIG1hY3JvKGlzQXJyYXkpIFwKKyAgICBtYWNybyhpc0Fy
cmF5Q29uc3RydWN0b3IpIFwKKyAgICBtYWNybyhpc0NvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8o
aXNSZWdFeHBPYmplY3QpIFwKKyAgICBtYWNybyhjb25jYXRNZW1jcHkpIFwKKyAgICBtYWNybyhh
cHBlbmRNZW1jcHkpIFwKKyAgICBtYWNybyhwcmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRz
KSBcCisgICAgbWFjcm8ocHJpbnQpIFwKKyAgICBtYWNybyhpc1NldCkgXAorICAgIG1hY3JvKGlz
TWFwKSBcCisgICAgbWFjcm8ocmVnRXhwQ3JlYXRlKSBcCisgICAgbWFjcm8oU2V0SXRlcmF0b3Ip
IFwKKyAgICBtYWNybyhzZXRJdGVyYXRvck5leHQpIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdS
ZWdFeHApIFwKKyAgICBtYWNybyhyZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpIFwKKyAgICBtYWNy
byhNYXBJdGVyYXRvcikgXAorICAgIG1hY3JvKG1hcEl0ZXJhdG9yTmV4dCkgXAorICAgIG1hY3Jv
KHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCisgICAgbWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCisgICAg
bWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xv
YmFsR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCisg
ICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQ
cm90b1NvdXJjZUdldHRlcikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBc
CisgICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVnRXhw
UHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAorICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBc
CisgICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFzdCkgXAorICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFz
dCkgXAorICAgIG1hY3JvKHJlZ0V4cFRlc3RGYXN0KSBcCisgICAgbWFjcm8oc3RyaW5nSW5jbHVk
ZXNJbnRlcm5hbCkgXAorICAgIG1hY3JvKHN0cmluZ1NwbGl0RmFzdCkgXAorICAgIG1hY3JvKHN0
cmluZ1N1YnN0ckludGVybmFsKQorCisKICNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BV
QkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZh
dGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKICNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9f
UFJJVkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1w
bCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQcm90b3R5cGUuanMKaW5kZXggNjk0NjNjMy4uM2Mx
NDA2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRv
clByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJh
dG9yUHJvdG90eXBlLmpzCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8vIDI1LjMuMy4zIEdlbmVy
YXRvclJlc3VtZSAoIGdlbmVyYXRvciwgdmFsdWUgKQogLy8gMjUuMy4zLjQgR2VuZXJhdG9yUmVz
dW1lQWJydXB0KGdlbmVyYXRvciwgYWJydXB0Q29tcGxldGlvbikKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiBnZW5lcmF0b3JSZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUp
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9HbG9iYWxPYmplY3QuanMKaW5kZXggOGJhMzQ5MC4uNTc3NmEyMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT2JqZWN0LmpzCkBAIC0yNiw2ICsyNiw3IEBA
CiAKIC8vIEBpbnRlcm5hbAogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9JbnRlZ2VyKHRh
cmdldCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0zOCw2ICszOSw3IEBAIGZ1bmN0aW9uIHRv
SW50ZWdlcih0YXJnZXQpCiAgICAgcmV0dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CiAKK0Bn
bG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJp
Y3QiOwpAQCAtNDgsNiArNTAsNyBAQCBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAgICAgcmV0
dXJuIGxlbmd0aCA+IDAgPyAobGVuZ3RoIDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGggOiBtYXhT
YWZlSW50ZWdlcikgOiAwOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNEaWN0aW9u
YXJ5KG9iamVjdCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC01NywxMSArNjAsMTMgQEAgZnVu
Y3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIAogLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gaGF2
ZSBpdCdzIG5hbWUgY2hhbmdlZCB0byAiZ2V0IFtTeW1ib2wuc3BlY2llc10iLgogLy8gc2VlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitAZ2xvYmFsUHJp
dmF0ZQogZnVuY3Rpb24gc3BlY2llc0dldHRlcigpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAK
K0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0
Q29uc3RydWN0b3IpCiB7CiAgICAgdmFyIGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRp
b25zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25z
LmpzCmluZGV4IGM0ZTU5YmIuLjE5MWRiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNiw3IEBACiAKIC8v
IEBpbnRlcm5hbAogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2Up
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMzIsNiArMzQsNyBAQCBmdW5jdGlvbiBpc1Byb21p
c2UocHJvbWlzZSkKICAgICByZXR1cm4gQGlzT2JqZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5A
cHJvbWlzZVN0YXRlOwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJl
YWN0aW9uKGNhcGFiaWxpdHksIGhhbmRsZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDIs
NiArNDUsNyBAQCBmdW5jdGlvbiBuZXdQcm9taXNlUmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxl
cikKICAgICB9OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFi
aWxpdHkoY29uc3RydWN0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODAsNiArODQsNyBA
QCBmdW5jdGlvbiBuZXdQcm9taXNlQ2FwYWJpbGl0eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4g
cHJvbWlzZUNhcGFiaWxpdHk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2Vy
UHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0
IjsKQEAgLTg4LDYgKzkzLDcgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVh
Y3Rpb25zLCBhcmd1bWVudCkKICAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpv
YiwgW3JlYWN0aW9uc1tpbmRleF0sIGFyZ3VtZW50XSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKIHsKICAgICAidXNlIHN0cmlj
dCI7CkBAIC0xMDMsNiArMTA5LDcgQEAgZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCBy
ZWFzb24pCiAgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsK
IH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZh
bHVlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTExOCw2ICsxMjUsNyBAQCBmdW5jdGlvbiBm
dWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlv
bnMocmVhY3Rpb25zLCB2YWx1ZSk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVh
dGVSZXNvbHZpbmdGdW5jdGlvbnMocHJvbWlzZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0x
NjQsNiArMTcyLDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2Up
CiAgICAgfTsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpv
YihyZWFjdGlvbiwgYXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTgwLDYgKzE4
OSw3IEBAIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAg
ICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJl
c3VsdCk7CiB9CiAKK0BnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5h
YmxlSm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKQEAgLTE5Myw2ICsyMDMsNyBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxl
Sm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogICAgIH0KIH0KIAorQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIGluaXRpYWxpemVQcm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9S
ZWdFeHBQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhw
UHJvdG90eXBlLmpzCmluZGV4IDI5NTdmMTQuLjlkOTQ1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsNiArMjMsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFkdmFu
Y2VTdHJpbmdJbmRleChzdHJpbmcsIGluZGV4LCB1bmljb2RlKQogewogICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaW1wbGVtZW50cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAyMS4y
LjUuMi4zLgpAQCAtNDUsNiArNDYsNyBAQCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3Ry
aW5nLCBpbmRleCwgdW5pY29kZSkKICAgICByZXR1cm4gaW5kZXggKyAyOwogfQogCitAZ2xvYmFs
UHJpdmF0ZQogZnVuY3Rpb24gcmVnRXhwRXhlYyhyZWdleHAsIHN0cikKIHsKICAgICAidXNlIHN0
cmljdCI7CkBAIC02MCw2ICs2Miw3IEBAIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVnZXhwLCBzdHIp
CiAgICAgcmV0dXJuIGJ1aWx0aW5FeGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0KIAorQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNo
KHJlZ2V4cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4cEV4ZWMgaW50
ZXJuYWwgZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJZChyZWdleHAs
ICJleGVjIik7CkBAIC0zMjYsNiArMzI5LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAg
ICByZXR1cm4gcmVzdWx0LmluZGV4OwogfQogCitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaGFz
T2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQocmVnZXhwKSB7CiAgICAgLy8gVGhp
cyBpcyBhY2Nlc3NlZCBieSB0aGUgUmVnRXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlvbi4KICAgICBs
ZXQgcmVnZXhwRXhlYyA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDg5NjUx
MGMuLmVmYjg1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9T
dHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0
cmluZ1Byb3RvdHlwZS5qcwpAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiBtYXRjaChyZWdleHAp
CiAgICAgcmV0dXJuIGNyZWF0ZWRSZWdFeHAuQG1hdGNoU3ltYm9sKHRoaXNTdHJpbmcpOwogfQog
CitAZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBjb3VudCkK
IHsKICAgICAidXNlIHN0cmljdCI7CkBAIC04NCw3ICs4NSw3IEBAIGZ1bmN0aW9uIHJlcGVhdFNs
b3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgfQogfQogCi0KK0BnbG9iYWxQcml2YXRlCiBmdW5j
dGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNl
IHN0cmljdCI7CkBAIC0yMDIsNiArMjAzLDcgQEAgZnVuY3Rpb24gcGFkRW5kKG1heExlbmd0aC8q
LCBmaWxsU3RyaW5nKi8pCiAgICAgcmV0dXJuIHN0cmluZyArIHRydW5jYXRlZFN0cmluZ0ZpbGxl
cjsKIH0KIAorQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclN0cmluZ1JlcGxhY2UocmVnZXhwLCByZXBsYWNlcikgewogICAgIGlmIChyZXBsYWNlciAh
PT0gQHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpCiAgICAgICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmlu
c2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
SW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4IDQ5YmZmNDAuLjE5M2QyODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeS5jcHAKQEAgLTI2LDggKzI2LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rp
b24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKQEAgLTM2LDcgKzM4LDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLSNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNf
VE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMt
Pm5hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9p
bnRyaW5zaWNfIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9CWVRFQ09ERV9JTlRSSU5TSUNf
TkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXAuYWRkKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUjI1ByaXZhdGVOYW1lKCkuaW1wbCgpLCAmQnl0ZWNv
ZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY18jI25hbWUpOwogCiBCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICA6IG1f
dm0odm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM5OWMyZTguLjkxZjVjNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCkBAIC05MTAsMTIgKzkxMCwxMiBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0
aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogCiAg
ICAgICAgIGlmIChtX2NvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiBpc05ld1RhcmdldFVzZWRJ
bklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBvZmZzZXQgPSBmdW5jdGlvblN5
bWJvbFRhYmxlLT50YWtlTmV4dFNjb3BlT2Zmc2V0KCk7Ci0gICAgICAgICAgICBmdW5jdGlvblN5
bWJvbFRhYmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCkubmV3VGFy
Z2V0TG9jYWxQcml2YXRlTmFtZS5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoVmFyT2Zmc2V0KG9m
ZnNldCkpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uU3ltYm9sVGFibGUtPnNldChOb0xvY2tpbmdO
ZWNlc3NhcnksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFBy
aXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29u
c3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2Vk
SW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25T
eW1ib2xUYWJsZS0+dGFrZU5leHRTY29wZU9mZnNldChOb0xvY2tpbmdOZWNlc3NhcnkpOwotICAg
ICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJv
cGVydHlOYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lLmltcGwoKSwgU3ltYm9s
VGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0KSkpOworICAgICAgICAgICAgZnVuY3Rpb25TeW1i
b2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJs
ZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm47
CkBAIC05MzAsMTMgKzkzMCwxMyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXpl
QXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogICAgIH0KICAg
ICAKICAgICBpZiAobV9jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2Vk
SW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRvIGFkZFRhcmdldCA9IGVudmly
b25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7Cisg
ICAgICAgIGF1dG8gYWRkVGFyZ2V0ID0gZW52aXJvbm1lbnQuYWRkKHByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpOwogICAgICAgICBhZGRU
YXJnZXQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICAgICAgYWRkVGFyZ2V0
Lml0ZXJhdG9yLT52YWx1ZS5zZXRJc0xldCgpOwogICAgIH0KIAogICAgIGlmIChpc0NvbnN0cnVj
dG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYm
IGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRvIGRlcml2
ZWRDb25zdHJ1Y3RvciA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENv
bnN0cnVjdG9yUHJpdmF0ZU5hbWUpOworICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9
IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVyaXZlZENv
bnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgIGRlcml2ZWRDb25zdHJ1Y3Rvci5pdGVy
YXRvci0+dmFsdWUuc2V0SXNDYXB0dXJlZCgpOwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3Iu
aXRlcmF0b3ItPnZhbHVlLnNldElzTGV0KCk7CiAgICAgfQpAQCAtMjk3Nyw5ICsyOTc3LDkgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsRXZhbChSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEMKIAogRXhwZWN0ZWRGdW5jdGlvbiBCeXRlY29kZUdlbmVy
YXRvcjo6ZXhwZWN0ZWRGdW5jdGlvbkZvcklkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllcikKIHsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5P
YmplY3QgfHwgaWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5PYmplY3RQcml2YXRl
TmFtZSkKKyAgICBpZiAoaWRlbnRpZmllciA9PSBwcm9wZXJ0eU5hbWVzKCkuT2JqZWN0IHx8IGlk
ZW50aWZpZXIgPT0gcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVO
YW1lKCkpCiAgICAgICAgIHJldHVybiBFeHBlY3RPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICBpZiAo
aWRlbnRpZmllciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5BcnJheSB8fCBpZGVudGlmaWVyID09
IG1fdm0tPnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUpCisgICAgaWYgKGlkZW50aWZp
ZXIgPT0gcHJvcGVydHlOYW1lcygpLkFycmF5IHx8IGlkZW50aWZpZXIgPT0gcHJvcGVydHlOYW1l
cygpLmJ1aWx0aW5OYW1lcygpLkFycmF5UHJpdmF0ZU5hbWUoKSkKICAgICAgICAgcmV0dXJuIEV4
cGVjdEFycmF5Q29uc3RydWN0b3I7CiAgICAgcmV0dXJuIE5vRXhwZWN0ZWRGdW5jdGlvbjsKIH0K
QEAgLTQwNDUsNyArNDA0NSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBUYWdnZWRUZW1wCiAgICAgfQogCiAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGdldFRlbXBsYXRlT2JqZWN0ID0gbnVsbHB0cjsKLSAgICBW
YXJpYWJsZSB2YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZ2V0VGVtcGxhdGVPYmplY3RQ
cml2YXRlTmFtZSk7CisgICAgVmFyaWFibGUgdmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygp
LmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYg
KFJlZ2lzdGVySUQqIGxvY2FsID0gdmFyLmxvY2FsKCkpCiAgICAgICAgIGdldFRlbXBsYXRlT2Jq
ZWN0ID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5KCksIGxvY2FsKTsKICAgICBlbHNlIHsKQEAgLTQy
MzUsMTYgKzQyMzUsMTYgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRUaGlzRnJv
bUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogICAgIAogUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2Fs
RW52aXJvbm1lbnQoKQogewotICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHBy
b3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKTsKKyAgICBWYXJpYWJsZSBu
ZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3
VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKIAotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3Bl
KG1fbmV3VGFyZ2V0UmVnaXN0ZXIsIGVtaXRMb2FkQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9u
bWVudChwcm9wZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSksIG5ld1Rhcmdl
dFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICByZXR1cm4gZW1pdEdldEZyb21TY29wZShtX25l
d1RhcmdldFJlZ2lzdGVyLCBlbWl0TG9hZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQo
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUo
KSksIG5ld1RhcmdldFZhciwgVGhyb3dJZk5vdEZvdW5kKTsKICAgICAKIH0KIAogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9yRnJvbUFycm93
RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAgIFZhcmlhYmxlIHByb3RvU2NvcGVW
YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5h
bWUpOwotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBlbWl0TG9h
ZEFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmRlcml2ZWRD
b25zdHJ1Y3RvclByaXZhdGVOYW1lKSwgcHJvdG9TY29wZVZhciwgVGhyb3dJZk5vdEZvdW5kKTsK
KyAgICBWYXJpYWJsZSBwcm90b1Njb3BlVmFyID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1
aWx0aW5OYW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpOworICAgIHJldHVy
biBlbWl0R2V0RnJvbVNjb3BlKG5ld1RlbXBvcmFyeSgpLCBlbWl0TG9hZEFycm93RnVuY3Rpb25M
ZXhpY2FsRW52aXJvbm1lbnQocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmRlcml2ZWRD
b25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpLCBwcm90b1Njb3BlVmFyLCBUaHJvd0lmTm90Rm91bmQp
OwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW5zdXJlVGhpcygpCkBAIC00
Mjg4LDcgKzQyODgsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0
VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKICAgICBpZiAoaXNOZXdUYXJnZXRVc2VkSW5J
bm5lckFycm93RnVuY3Rpb24oKSkgewogICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29u
dGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgCi0gICAgICAgIFZhcmlh
YmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2Nh
bFByaXZhdGVOYW1lKTsKKyAgICAgICAgVmFyaWFibGUgbmV3VGFyZ2V0VmFyID0gdmFyaWFibGUo
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUo
KSk7CiAgICAgICAgIGVtaXRQdXRUb1Njb3BlKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2Fs
RW52aXJvbm1lbnRSZWdpc3RlciwgbmV3VGFyZ2V0VmFyLCBuZXdUYXJnZXQoKSwgRG9Ob3RUaHJv
d0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgIH0K
IH0KQEAgLTQyOTksNyArNDI5OSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRE
ZXJpdmVkQ29uc3RydWN0b3JUb0Fycm93RnVuY3Rpb25Db250ZXh0U2NvcGUoKQogICAgICAgICBp
ZiAoaXNTdXBlclVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBBU1NF
UlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgVmFyaWFibGUgcHJvdG9TY29wZSA9IHZhcmlhYmxlKHBy
b3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSk7CisgICAgICAgICAg
ICBWYXJpYWJsZSBwcm90b1Njb3BlID0gdmFyaWFibGUocHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkpOwogICAgICAgICAgICAgZW1p
dFB1dFRvU2NvcGUobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lz
dGVyLCBwcm90b1Njb3BlLCAmbV9jYWxsZWVSZWdpc3RlciwgRG9Ob3RUaHJvd0lmTm90Rm91bmQs
IEluaXRpYWxpemF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgICAgICB9CiAgICAgfQpA
QCAtNDU2NCw3ICs0NTY0LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRE
ZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVySUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKIHZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRHZW5lcmF0b3JTdGF0ZUNoYW5nZShpbnQzMl90IHN0YXRlKQogewog
ICAgIFJlZ2lzdGVySUQqIGNvbXBsZXRlZFN0YXRlID0gZW1pdExvYWQobnVsbHB0ciwganNOdW1i
ZXIoc3RhdGUpKTsKLSAgICBlbWl0UHV0QnlJZChnZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0
eU5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSwgY29tcGxldGVkU3RhdGUpOworICAg
IGVtaXRQdXRCeUlkKGdlbmVyYXRvclJlZ2lzdGVyKCksIHByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIGNvbXBsZXRlZFN0YXRlKTsKIH0K
IAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlTGFiZWwoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CmluZGV4IDIzYzAyNmIuLmI2ZDBhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIHN0
YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yKQogewogICAgIGlmIChnZW5lcmF0b3IuaXNEZXJpdmVkQ2xhc3NDb250ZXh0
KCkgfHwgZ2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVjdG9yQ29udGV4dCgpKSB7CiAgICAgICAg
IFJlZ2lzdGVySUQqIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0TG9hZERlcml2
ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCk7Ci0gICAg
ICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBkZXJpdmVkQ29uc3RydWN0b3IsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVj
dFByaXZhdGVOYW1lKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCksIGRlcml2ZWRDb25zdHJ1Y3RvciwgZ2VuZXJhdG9yLnByb3Bl
cnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAg
fQogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KEpTU3RhY2s6
OkNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3
VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuaG9tZU9iamVj
dFByaXZhdGVOYW1lKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRv
ci5uZXdUZW1wb3JhcnkoKSwgJmNhbGxlZSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWls
dGluTmFtZXMoKS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSk7CiB9CiAKIHN0YXRpYyBSZWdpc3Rl
cklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3Ip
CkBAIC00NTcsNyArNDU3LDcgQEAgUmVnaXN0ZXJJRCogT2JqZWN0TGl0ZXJhbE5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3QKIAogc3RhdGljIGlu
bGluZSB2b2lkIGVtaXRQdXRIb21lT2JqZWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3Is
IFJlZ2lzdGVySUQqIGZ1bmN0aW9uLCBSZWdpc3RlcklEKiBob21lT2JqZWN0KQogewotICAgIGdl
bmVyYXRvci5lbWl0UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5o
b21lT2JqZWN0UHJpdmF0ZU5hbWUsIGhvbWVPYmplY3QpOworICAgIGdlbmVyYXRvci5lbWl0UHV0
QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5o
b21lT2JqZWN0UHJpdmF0ZU5hbWUoKSwgaG9tZU9iamVjdCk7CiB9CiAKIFJlZ2lzdGVySUQqIFBy
b3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCkBAIC0zMjgyLDE0ICszMjgyLDE0IEBAIHZvaWQgRnVuY3Rpb25O
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCopCiAgICAgICAgIC8vIEJ1dCB0byBtYWtlIGl0IGVmZmljaWVudCwgd2Ugd2lsbCBpbnRyb2R1
Y2UgSlNHZW5lcmF0b3IgY2xhc3MsIGFkZCBvcGNvZGUgbmV3X2dlbmVyYXRvciBhbmQgdXNlIGl0
cyBDKysgZmllbGRzIGluc3RlYWQgb2YgdGhlc2UgcHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAKLSAg
ICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdp
c3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRlTmFt
ZSwgbmV4dC5nZXQoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CisgICAgICAgIGdlbmVy
YXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2Vu
ZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JOZXh0UHJpdmF0
ZU5hbWUoKSwgbmV4dC5nZXQoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKLSAgICAg
ICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3Rl
cigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFtZSwg
Z2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAg
ICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdp
c3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRv
clRoaXNQcml2YXRlTmFtZSgpLCBnZW5lcmF0b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9k
ZTo6S25vd25EaXJlY3QpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGluaXRpYWxTdGF0ZSA9IGdl
bmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBqc051bWJlcigwKSk7Ci0gICAgICAgIGdlbmVyYXRv
ci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJh
dG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBpbml0aWFsU3Rh
dGUsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERp
cmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBp
bml0aWFsU3RhdGUsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdlbmVy
YXRvci5lbWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2Vu
ZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lLCBnZW5lcmF0
b3IuZW1pdExvYWQobnVsbHB0ciwganNOdWxsKCkpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0
b3JSZWdpc3RlcigpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdl
bmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkKG51bGxwdHIsIGpz
TnVsbCgpKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKICAgICAgICAgQVNTRVJUKHN0
YXJ0T2Zmc2V0KCkgPj0gbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1p
dERlYnVnSG9vayhXaWxsTGVhdmVDYWxsRnJhbWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCks
IGxpbmVTdGFydE9mZnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCmluZGV4IGNjYjAxOTYuLmRmMmM5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkpJ
VC5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CisjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIK
ICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVwYXRjaC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAwZWVm
ODlhLi40YTdkNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw2IEBA
CiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkBAIC0xNzYsOCArMTc1LDcgQEAgSlNWYWx1ZSBK
U0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHZh
bHVlLmluaGVyaXRzKEpTV2Vha1NldDo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJp
dmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWtzZXQiKSk7CiAKLSAgICBpZiAodmFs
dWUuaW5oZXJpdHMoSlNBcnJheUl0ZXJhdG9yOjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmlu
aGVyaXRzKEpTTWFwSXRlcmF0b3I6OmluZm8oKSkKKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNN
YXBJdGVyYXRvcjo6aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1NldEl0ZXJh
dG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU3RyaW5nSXRlcmF0b3I6
OmluZm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
cjo6aW5mbygpKSkKQEAgLTMxOSwyOCArMzE3LDYgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0
SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChKU0FycmF5SXRlcmF0b3IqIGFycmF5SXRlcmF0b3IgPSBqc0R5bmFt
aWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KHZhbHVlKSkgewotICAgICAgICBTdHJpbmcga2luZDsK
LSAgICAgICAgc3dpdGNoIChhcnJheUl0ZXJhdG9yLT5raW5kKGV4ZWMpKSB7Ci0gICAgICAgIGNh
c2UgQXJyYXlJdGVyYXRlS2V5OgotICAgICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJhbCgia2V5
Iik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVWYWx1ZToK
LSAgICAgICAgICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoInZhbHVlIik7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1ZToKLSAgICAgICAgICAgIGtp
bmQgPSBBU0NJSUxpdGVyYWwoImtleSt2YWx1ZSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgdW5zaWduZWQgaW5kZXggPSAwOwotICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgMik7Ci0gICAgICAgIGlmIChV
TkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGNvbnN0cnVj
dEludGVybmFsUHJvcGVydHkoZXhlYywgImFycmF5IiwgYXJyYXlJdGVyYXRvci0+aXRlcmF0ZWRW
YWx1ZShleGVjKSkpOwotICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywgY29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBraW5kKSkpOwotICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgfQotCiAgICAg
aWYgKEpTTWFwSXRlcmF0b3IqIG1hcEl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU01hcEl0ZXJh
dG9yKj4odmFsdWUpKSB7CiAgICAgICAgIFN0cmluZyBraW5kOwogICAgICAgICBzd2l0Y2ggKG1h
cEl0ZXJhdG9yLT5raW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNzcyZjBlMC4uYzE5
NGY5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJB
cnJheVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlQ3JlYXRvci5oIgog
I2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKLSNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRv
ci5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKICNp
bmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKQEAgLTUyLDYgKzUxLDcgQEAKICNpbmNsdWRl
ICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIkxMSW50
RGF0YS5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRh
YmFzZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKICNpbmNsdWRlICJTaGFkb3dD
aGlja2VuLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IGQ2N2Rm
OTQuLjNjOTU5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4g
KHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSwgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA2LTIwMDksIDIwMTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVyb24gWndhcmljaCAo
Y3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhl
cmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMTIg
TWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKQEAgLTkzOSw3ICs5MzksNyBAQCB0ZW1w
bGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5U
eXBlIExleGVyPExDaGFyPjo6cAogICAgICAgICAgICAgaWYgKGlzUHJpdmF0ZU5hbWUpCiAgICAg
ICAgICAgICAgICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5sb29rVXBQcml2YXRlTmFt
ZSgqaWRlbnQpOwogICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5
TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQpCi0gICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVu
dCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsKKyAgICAgICAg
ICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnVuZGVmaW5lZFByaXZhdGVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIWlkZW50KQog
ICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsKICAg
ICAgICAgfQpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRl
SWRlbnRpZmllcj4gQUxXQVlTX0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnAKICAg
ICAgICAgICAgIGlmIChpc1ByaXZhdGVOYW1lKQogICAgICAgICAgICAgICAgIGlkZW50ID0gbV92
bS0+cHJvcGVydHlOYW1lcy0+bG9va1VwUHJpdmF0ZU5hbWUoKmlkZW50KTsKICAgICAgICAgICAg
IGVsc2UgaWYgKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3Jk
KQotICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1l
cy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWU7CisgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVu
dCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS51bmRlZmluZWRQcml2YXRl
TmFtZSgpOwogICAgICAgICAgICAgaWYgKCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4g
SU5WQUxJRF9QUklWQVRFX05BTUVfRVJST1JUT0s7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAppbmRleCA3ZDg1MWNlLi5jODExNjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIE5vZGVzX2gKICNk
ZWZpbmUgTm9kZXNfaAogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJy
b3IuaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNDU3NTc0MS4uYjZjODc3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTg5NywyMyArMTg5Nywy
MyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpG
b3JtYWxQYXJhbWV0ZXJMaXN0IFBhcnNlcjxMZQogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9u
ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yCi0gICAgZGVjbGFy
ZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUHJpdmF0ZU5hbWUpOwot
ICAgIGF1dG8gZ2VuZXJhdG9yID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRp
b24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclByaXZhdGVOYW1lLCBwb3NpdGlvbiwg
cG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAg
ZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2Vu
ZXJhdG9yUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBnZW5lcmF0b3IgPSBjb250ZXh0LmNyZWF0
ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZ2VuZXJhdG9yUHJpdmF0ZU5hbWUoKSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25t
ZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAgIGNvbnRleHQuYXBwZW5kUGFy
YW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRvciwgMCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yU3Rh
dGUKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JT
dGF0ZVByaXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvclN0YXRlID0gY29udGV4dC5jcmVh
dGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRv
clN0YXRlUHJpdmF0ZU5hbWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6
OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJlUGFyYW1ldGVyKCZtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCkpOwor
ICAgIGF1dG8gZ2VuZXJhdG9yU3RhdGUgPSBjb250ZXh0LmNyZWF0ZUJpbmRpbmdMb2NhdGlvbihs
b2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yU3Rh
dGVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpE
ZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1l
dGVycywgZ2VuZXJhdG9yU3RhdGUsIDApOwogCiAgICAgLy8gQGdlbmVyYXRvclZhbHVlCi0gICAg
ZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yVmFsdWVQcml2
YXRlTmFtZSk7Ci0gICAgYXV0byBnZW5lcmF0b3JWYWx1ZSA9IGNvbnRleHQuY3JlYXRlQmluZGlu
Z0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVBy
aXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJh
dGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRv
IGdlbmVyYXRvclZhbHVlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24s
IG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclZhbHVlUHJpdmF0
ZU5hbWUoKSwgcG9zaXRpb24sIHBvc2l0aW9uLCBBc3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRp
b25TdGF0ZW1lbnQpOwogICAgIGNvbnRleHQuYXBwZW5kUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGdl
bmVyYXRvclZhbHVlLCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JSZXN1bWVNb2RlCi0gICAgZGVj
bGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUmVzdW1lTW9kZVBy
aXZhdGVOYW1lKTsKLSAgICBhdXRvIGdlbmVyYXRvclJlc3VtZU1vZGUgPSBjb250ZXh0LmNyZWF0
ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9y
UmVzdW1lTW9kZVByaXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250
ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lTW9kZVByaXZhdGVO
YW1lKCkpOworICAgIGF1dG8gZ2VuZXJhdG9yUmVzdW1lTW9kZSA9IGNvbnRleHQuY3JlYXRlQmlu
ZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5nZW5lcmF0b3JSZXN1bWVNb2RlUHJpdmF0ZU5hbWUoKSwgcG9zaXRpb24sIHBvc2l0aW9uLCBB
c3NpZ25tZW50Q29udGV4dDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQpOwogICAgIGNvbnRleHQuYXBw
ZW5kUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGdlbmVyYXRvclJlc3VtZU1vZGUsIDApOwogCiAgICAg
cmV0dXJuIHBhcmFtZXRlcnM7CkBAIC0yODcxLDE1ICsyODcxLDE1IEBAIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHBv
cnREZWNsYXJhCiAgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VB
c3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgICAgIGZhaWxJZkZhbHNlKGV4
cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogCi0gICAgICAgICAgICBEZWNs
YXJhdGlvblJlc3VsdE1hc2sgZGVjbGFyYXRpb25SZXN1bHQgPSBkZWNsYXJlVmFyaWFibGUoJm1f
dm0tPnByb3BlcnR5TmFtZXMtPnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUsIERlY2xhcmF0aW9uVHlw
ZTo6Q29uc3REZWNsYXJhdGlvbik7CisgICAgICAgICAgICBEZWNsYXJhdGlvblJlc3VsdE1hc2sg
ZGVjbGFyYXRpb25SZXN1bHQgPSBkZWNsYXJlVmFyaWFibGUoJm1fdm0tPnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUoKSwgRGVjbGFyYXRpb25UeXBl
OjpDb25zdERlY2xhcmF0aW9uKTsKICAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvblJlc3VsdCAm
IERlY2xhcmF0aW9uUmVzdWx0OjpJbnZhbGlkRHVwbGljYXRlRGVjbGFyYXRpb24pCiAgICAgICAg
ICAgICAgICAgaW50ZXJuYWxGYWlsV2l0aE1lc3NhZ2UoZmFsc2UsICJPbmx5IG9uZSAnZGVmYXVs
dCcgZXhwb3J0IGlzIGFsbG93ZWQiKTsKIAotICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gYXNz
aWdubWVudCA9IGNvbnRleHQuY3JlYXRlQXNzaWduUmVzb2x2ZShsb2NhdGlvbiwgbV92bS0+cHJv
cGVydHlOYW1lcy0+c3RhckRlZmF1bHRQcml2YXRlTmFtZSwgZXhwcmVzc2lvbiwgc3RhcnQsIHN0
YXJ0LCB0b2tlbkVuZFBvc2l0aW9uKCksIEFzc2lnbm1lbnRDb250ZXh0OjpDb25zdERlY2xhcmF0
aW9uU3RhdGVtZW50KTsKKyAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGFzc2lnbm1lbnQgPSBj
b250ZXh0LmNyZWF0ZUFzc2lnblJlc29sdmUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnN0YXJEZWZhdWx0UHJpdmF0ZU5hbWUoKSwgZXhwcmVzc2lvbiwgc3Rh
cnQsIHN0YXJ0LCB0b2tlbkVuZFBvc2l0aW9uKCksIEFzc2lnbm1lbnRDb250ZXh0OjpDb25zdERl
Y2xhcmF0aW9uU3RhdGVtZW50KTsKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnRleHQuY3JlYXRl
RXhwclN0YXRlbWVudChsb2NhdGlvbiwgYXNzaWdubWVudCwgc3RhcnQsIHRva2VuRW5kUG9zaXRp
b24oKSk7CiAgICAgICAgICAgICBpZiAoIWlzRnVuY3Rpb25PckNsYXNzRGVjbGFyYXRpb24pCiAg
ICAgICAgICAgICAgICAgZmFpbElmRmFsc2UoYXV0b1NlbWlDb2xvbigpLCAiRXhwZWN0ZWQgYSAn
OycgZm9sbG93aW5nIGEgdGFyZ2V0ZWQgZXhwb3J0IGRlY2xhcmF0aW9uIik7Ci0gICAgICAgICAg
ICBsb2NhbE5hbWUgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+c3RhckRlZmF1bHRQcml2YXRlTmFt
ZTsKKyAgICAgICAgICAgIGxvY2FsTmFtZSA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5zdGFyRGVmYXVsdFByaXZhdGVOYW1lKCk7CiAgICAgICAgIH0KICAgICAgICAgZmFp
bElmRmFsc2UocmVzdWx0LCAiQ2Fubm90IHBhcnNlIHRoZSBkZWNsYXJhdGlvbiIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuY3BwCmluZGV4IDAxYjEwMDQuLjg4OTU3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCkBAIC0y
OCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIgog
I2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKQEAgLTM4LDcgKzM3LDYgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLQogY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIkFycmF5IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgJmFycmF5SXRlcmF0
b3JQcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShBcnJheUl0ZXJhdG9yUHJvdG90
eXBlKSB9OwogCiAvKiBTb3VyY2UgZm9yIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuaAppbmRleCBiOTcwN2ExLi5iNTE1YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCkBAIC0zMCw2ICsz
MCwxMiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorZW51bSBBcnJheUl0ZXJhdGlvbktpbmQgOiB1
aW50MzJfdCB7CisgICAgQXJyYXlJdGVyYXRlS2V5LAorICAgIEFycmF5SXRlcmF0ZVZhbHVlLAor
ICAgIEFycmF5SXRlcmF0ZUtleVZhbHVlCit9OworCiBjbGFzcyBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNO
b25GaW5hbE9iamVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDgxZDIxZjguLjhjYzZjYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTM2LDcgKzM2
LDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1
ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmdCdWlsZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggNDc1ZGYyNS4uOTI2NTI4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA5LCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDcsIDIwMDksIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDcgKzQzLDYgQEAgQ29tbW9uSWRlbnRpZmll
cnM6OkNvbW1vbklkZW50aWZpZXJzKFZNKiB2bSkKICAgICAsIG1fYnVpbHRpbk5hbWVzKG5ldyBC
dWlsdGluTmFtZXModm0sIHRoaXMpKQogICAgIEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9L
RVlXT1JEKElOSVRJQUxJWkVfS0VZV09SRCkKICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VB
Q0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BST1BFUlRZX05BTUUpCi0gICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZB
VEVfTkFNRSkKICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tO
T1dOX1NZTUJPTChJTklUSUFMSVpFX1NZTUJPTCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDViYjBiYWUuLjg1Y2Vi
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaApAQCAtMjEsNyArMjEsNiBAQAogI2lmbmRlZiBDb21tb25JZGVudGlmaWVyc19oCiAj
ZGVmaW5lIENvbW1vbklkZW50aWZpZXJzX2gKIAotI2luY2x1ZGUgIkJ5dGVjb2RlSW50cmluc2lj
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAKQEAgLTMyNiwxMzIgKzMyNSw2IEBACiAgICAgbWFjcm8odG9TdHJpbmdUYWcp
IFwKICAgICBtYWNybyh1bnNjb3BhYmxlcykKIAotI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVf
SURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCi0gICAgSlNDX0NPTU1PTl9C
WVRFQ09ERV9JTlRSSU5TSUNfRlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAotICAgIEpTQ19D
T01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKLSAg
ICBtYWNybyhpdGVyYXRlZE9iamVjdCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0SW5k
ZXgpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdGlvbktpbmQpIFwKLSAgICBtYWNybyhhcnJheUl0
ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKLSAgICBtYWNy
byhhcnJheUl0ZXJhdG9yS2luZCkgXAotICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwKLSAgICBtYWNy
byhpdGVyYXRlZFN0cmluZykgXAotICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBc
Ci0gICAgbWFjcm8ocHJvbWlzZSkgXAotICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFuZGxlcikgXAot
ICAgIG1hY3JvKHJlamVjdGlvbkhhbmRsZXIpIFwKLSAgICBtYWNybyhpbmRleCkgXAotICAgIG1h
Y3JvKGRlZmVycmVkKSBcCi0gICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCi0gICAgbWFjcm8o
T2JqZWN0KSBcCi0gICAgbWFjcm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykgXAotICAgIG1h
Y3JvKE51bWJlcikgXAotICAgIG1hY3JvKEFycmF5KSBcCi0gICAgbWFjcm8oU3RyaW5nKSBcCi0g
ICAgbWFjcm8oUmVnRXhwKSBcCi0gICAgbWFjcm8oTWFwKSBcCi0gICAgbWFjcm8oUHJvbWlzZSkg
XAotICAgIG1hY3JvKFJlZmxlY3QpIFwKLSAgICBtYWNybyhJbnRlcm5hbFByb21pc2UpIFwKLSAg
ICBtYWNybyhhYnMpIFwKLSAgICBtYWNybyhmbG9vcikgXAotICAgIG1hY3JvKHRydW5jKSBcCi0g
ICAgbWFjcm8oaXNGaW5pdGUpIFwKLSAgICBtYWNybyhpc05hTikgXAotICAgIG1hY3JvKGNyZWF0
ZSkgXAotICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCi0gICAgbWFjcm8oZ2V0UHJvdG90eXBl
T2YpIFwKLSAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKLSAgICBtYWNybyhn
ZXRPd25Qcm9wZXJ0eU5hbWVzKSBcCi0gICAgbWFjcm8ob3duS2V5cykgXAotICAgIG1hY3JvKEVy
cm9yKSBcCi0gICAgbWFjcm8oUmFuZ2VFcnJvcikgXAotICAgIG1hY3JvKFR5cGVFcnJvcikgXAot
ICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5ndGgpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5U29ydCkg
XAotICAgIG1hY3JvKHR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBcCi0gICAgbWFj
cm8oQnVpbHRpbkxvZykgXAotICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKLSAgICBtYWNybyhnZXRU
ZW1wbGF0ZU9iamVjdCkgXAotICAgIG1hY3JvKGVucXVldWVKb2IpIFwKLSAgICBtYWNybyhoYW5k
bGVyKSBcCi0gICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBcCi0gICAgbWFjcm8ocHJvbWlzZUZ1bGZp
bGxSZWFjdGlvbnMpIFwKLSAgICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25zKSBcCi0gICAg
bWFjcm8ocHJvbWlzZVJlc3VsdCkgXAotICAgIG1hY3JvKHB1c2gpIFwKLSAgICBtYWNybyhyZXBl
YXRDaGFyYWN0ZXIpIFwKLSAgICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKLSAgICBtYWNybyhzdGFy
RGVmYXVsdCkgXAotICAgIG1hY3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikgXAotICAgIG1h
Y3JvKGdldCkgXAotICAgIG1hY3JvKHNldCkgXAotICAgIG1hY3JvKHNoaWZ0KSBcCi0gICAgbWFj
cm8oYWxsb2NhdGVUeXBlZEFycmF5KSBcCi0gICAgbWFjcm8oSW50OEFycmF5KSBcCi0gICAgbWFj
cm8oSW50MTZBcnJheSkgXAotICAgIG1hY3JvKEludDMyQXJyYXkpIFwKLSAgICBtYWNybyhVaW50
OEFycmF5KSBcCi0gICAgbWFjcm8oVWludDhDbGFtcGVkQXJyYXkpIFwKLSAgICBtYWNybyhVaW50
MTZBcnJheSkgXAotICAgIG1hY3JvKFVpbnQzMkFycmF5KSBcCi0gICAgbWFjcm8oRmxvYXQzMkFy
cmF5KSBcCi0gICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBcCi0gICAgbWFjcm8oZXhlYykgXAotICAg
IG1hY3JvKGdlbmVyYXRvcikgXAotICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwKLSAgICBtYWNy
byhnZW5lcmF0b3JTdGF0ZSkgXAotICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBcCi0gICAgbWFj
cm8oZ2VuZXJhdG9yVmFsdWUpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBcCi0gICAgbWFj
cm8oZ2VuZXJhdG9yUmVzdW1lTW9kZSkgXAotICAgIG1hY3JvKENvbGxhdG9yKSBcCi0gICAgbWFj
cm8oRGF0ZVRpbWVGb3JtYXQpIFwKLSAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKLSAgICBtYWNy
byhpbnRsU3Vic3RpdHV0ZVZhbHVlKSBcCi0gICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAotICAg
IG1hY3JvKHRoaXNOdW1iZXJWYWx1ZSkgXAotICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCi0g
ICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9u
KSBcCi0gICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCi0gICAgbWFjcm8oaW5z
dGFuY2VPZikgXAotICAgIG1hY3JvKGlzQXJyYXkpIFwKLSAgICBtYWNybyhpc0FycmF5Q29uc3Ry
dWN0b3IpIFwKLSAgICBtYWNybyhpc0NvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNSZWdFeHBP
YmplY3QpIFwKLSAgICBtYWNybyhjb25jYXRNZW1jcHkpIFwKLSAgICBtYWNybyhhcHBlbmRNZW1j
cHkpIFwKLSAgICBtYWNybyhwcmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRzKSBcCi0gICAg
bWFjcm8ocHJpbnQpIFwKLSAgICBtYWNybyhpc1NldCkgXAotICAgIG1hY3JvKGlzTWFwKSBcCi0g
ICAgbWFjcm8ocmVnRXhwQ3JlYXRlKSBcCi0gICAgbWFjcm8oU2V0SXRlcmF0b3IpIFwKLSAgICBt
YWNybyhzZXRJdGVyYXRvck5leHQpIFwKLSAgICBtYWNybyhyZXBsYWNlVXNpbmdSZWdFeHApIFwK
LSAgICBtYWNybyhyZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpIFwKLSAgICBtYWNybyhNYXBJdGVy
YXRvcikgXAotICAgIG1hY3JvKG1hcEl0ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKHJlZ0V4cEJ1
aWx0aW5FeGVjKSBcCi0gICAgbWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCi0gICAgbWFjcm8ocmVn
RXhwUHJvdG9GbGFnc0dldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVy
KSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCi0gICAgbWFjcm8o
cmVnRXhwUHJvdG9NdWx0aWxpbmVHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1NvdXJj
ZUdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBcCi0gICAgbWFj
cm8ocmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG90eXBl
U3ltYm9sUmVwbGFjZSkgXAotICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBcCi0gICAgbWFj
cm8ocmVnRXhwU2VhcmNoRmFzdCkgXAotICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFzdCkgXAotICAg
IG1hY3JvKHJlZ0V4cFRlc3RGYXN0KSBcCi0gICAgbWFjcm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5h
bCkgXAotICAgIG1hY3JvKHN0cmluZ1NwbGl0RmFzdCkgXAotICAgIG1hY3JvKHN0cmluZ1N1YnN0
ckludGVybmFsKSBcCi0KIG5hbWVzcGFjZSBKU0MgewogICAgIAogICAgIGNsYXNzIEJ1aWx0aW5O
YW1lczsKQEAgLTQ4NCwxMCArMzU3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTQ19D
T01NT05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKEpTQ19JREVOVElGSUVSX0RFQ0xB
UkVfUFJPUEVSVFlfTkFNRV9HTE9CQUwpCiAjdW5kZWYgSlNDX0lERU5USUZJRVJfREVDTEFSRV9Q
Uk9QRVJUWV9OQU1FX0dMT0JBTAogCi0jZGVmaW5lIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJ
VkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTChuYW1lKSBjb25zdCBJZGVudGlmaWVyIG5hbWUjI1By
aXZhdGVOYW1lOwotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1F
X0dMT0JBTCkKLSN1bmRlZiBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfUFJPUEVSVFlf
TkFNRV9HTE9CQUwKLQogI2RlZmluZSBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfV0VM
TF9LTk9XTl9TWU1CT0xfR0xPQkFMKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbmFtZSMjU3ltYm9s
OwogICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dO
X1NZTUJPTChKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BSSVZBVEVfV0VMTF9LTk9XTl9TWU1CT0xf
R0xPQkFMKQogI3VuZGVmIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dO
X1NZTUJPTF9HTE9CQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25TbG93UGF0aHMuY3BwCmluZGV4IGU1NDQzMTAuLmE2ZWNmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMjUsNyArMjUs
OSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgi
CisKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVz
LmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ2xvbmVkQXJndW1lbnRzLmgi
CiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgpAQCAtNzE3LDcgKzcxOSw3IEBAIFNMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9zYXZlKQogICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBnZW5lcmF0
b3IgPSBPUCgxKS5qc1ZhbHVlKCk7CiAgICAgR2VuZXJhdG9yRnJhbWUqIGZyYW1lID0gbnVsbHB0
cjsKLSAgICBKU1ZhbHVlIHZhbHVlID0gZ2VuZXJhdG9yLmdldChleGVjLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9
IGdlbmVyYXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygp
LmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkK
ICAgICAgICAgZnJhbWUgPSBqc0Nhc3Q8R2VuZXJhdG9yRnJhbWUqPih2YWx1ZSk7CiAgICAgZWxz
ZSB7CkBAIC03MjUsNyArNzI3LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3NhdmUpCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1NDUK
ICAgICAgICAgZnJhbWUgPSBHZW5lcmF0b3JGcmFtZTo6Y3JlYXRlKGV4ZWMtPnZtKCksICBleGVj
LT5jb2RlQmxvY2soKS0+bnVtQ2FsbGVlTG9jYWxzKCkpOwogICAgICAgICBQdXRQcm9wZXJ0eVNs
b3Qgc2xvdChnZW5lcmF0b3IsIHRydWUsIFB1dFByb3BlcnR5U2xvdDo6UHV0QnlJZCk7Ci0gICAg
ICAgIGFzT2JqZWN0KGdlbmVyYXRvciktPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5wdXQoYXNP
YmplY3QoZ2VuZXJhdG9yKSwgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZy
YW1lUHJpdmF0ZU5hbWUsIGZyYW1lLCBzbG90KTsKKyAgICAgICAgYXNPYmplY3QoZ2VuZXJhdG9y
KS0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0b3IpLCBleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJhbWVQcml2
YXRlTmFtZSgpLCBmcmFtZSwgc2xvdCk7CiAgICAgfQogICAgIHVuc2lnbmVkIGxpdmVDYWxsZWVM
b2NhbHNJbmRleCA9IHBjWzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+c2F2ZShleGVj
LCBleGVjLT5jb2RlQmxvY2soKS0+bGl2ZUNhbGxlZUxvY2Fsc0F0WWllbGQobGl2ZUNhbGxlZUxv
Y2Fsc0luZGV4KSk7CkBAIC03MzYsNyArNzM4LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3Jlc3VtZSkKIHsKICAgICBCRUdJTigpOwogICAgIEpTVmFsdWUgZ2VuZXJhdG9yID0gT1AoMSku
anNWYWx1ZSgpOwotICAgIEdlbmVyYXRvckZyYW1lKiBmcmFtZSA9IGpzQ2FzdDxHZW5lcmF0b3JG
cmFtZSo+KGdlbmVyYXRvci5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRv
ckZyYW1lUHJpdmF0ZU5hbWUpKTsKKyAgICBHZW5lcmF0b3JGcmFtZSogZnJhbWUgPSBqc0Nhc3Q8
R2VuZXJhdG9yRnJhbWUqPihnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCkpKTsKICAgICB1bnNp
Z25lZCBsaXZlQ2FsbGVlTG9jYWxzSW5kZXggPSBwY1syXS51LnVuc2lnbmVkVmFsdWU7CiAgICAg
ZnJhbWUtPnJlc3VtZShleGVjLCBleGVjLT5jb2RlQmxvY2soKS0+bGl2ZUNhbGxlZUxvY2Fsc0F0
WWllbGQobGl2ZUNhbGxlZUxvY2Fsc0luZGV4KSk7CiAgICAgRU5EKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCA0
ODM4OWNkLi4zYTgwNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDE1IEFuZHkgVmFuV2Fnb25lciAodGhldGFsZWNyYWZ0ZXJAZ21haWwuY29tKQor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKaW5k
ZXggZTFkZDNlNC4uZGU1MDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkRhdGVDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5j
bHVkZSAiSW50bERhdGVUaW1lRm9ybWF0LmgiCkBAIC0xMTYsNyArMTE3LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3Jt
YXQoRXhlY1N0YXRlKgogICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0
aWJpbGl0eSB3aXRoIEVDTUEtNDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIWR0
ZikKLSAgICAgICAgZHRmID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0
ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5pbnRs
U3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgZHRmID0ganNEeW5hbWljQ2Fz
dDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0
ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVl
UHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgLy8gMi4gUmV0dXJuSWZBYnJ1cHQoZHRmKS4KICAgICBp
ZiAoIWR0ZikKQEAgLTE1Myw3ICsxNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoRXhlYwogICAg
IC8vIEZJWE1FOiBXb3JrYXJvdW5kIHRvIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRoIEVDTUEt
NDAyIDEuMCBjYWxsL2FwcGx5IHBhdHRlcm5zLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzkKICAgICBpZiAoIWRhdGVUaW1lRm9ybWF0KQotICAg
ICAgICBkYXRlVGltZUZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4o
c3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+
aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CisgICAgICAgIGRhdGVUaW1lRm9ybWF0
ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQqPihzdGF0ZS0+dGhpc1ZhbHVlKCku
Z2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbnRs
U3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOwogCiAgICAgaWYgKCFkYXRlVGltZUZvcm1h
dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0ZSwg
QVNDSUlMaXRlcmFsKCJJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZE9wdGlv
bnMgY2FsbGVkIG9uIHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxpemVkIGFzIGEg
RGF0ZVRpbWVGb3JtYXQiKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAwYTVkNTYzLi5m
ZTJjOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5j
b20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOSw3IEBACiAKICNp
ZiBFTkFCTEUoSU5UTCkKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkVy
cm9yLmgiCiAjaW5jbHVkZSAiSW50bE51bWJlckZvcm1hdC5oIgogI2luY2x1ZGUgIkpTQm91bmRG
dW5jdGlvbi5oIgpAQCAtMTA1LDcgKzEwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChFeGVjU3RhdGUqIHN0CiAg
ICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGggRUNN
QS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghbmYpCi0gICAgICAgIG5mID0g
anNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChz
dGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZh
dGVOYW1lKSk7CisgICAgICAgIG5mID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4o
c3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCkpKTsKIAogICAg
IGlmICghbmYpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Io
c3RhdGUsIEFTQ0lJTGl0ZXJhbCgiSW50bC5OdW1iZXJGb3JtYXQucHJvdG90eXBlLmZvcm1hdCBj
YWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMgYSBOdW1i
ZXJGb3JtYXQiKSkpOwpAQCAtMTQxLDcgKzE0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoRXhlY1N0
CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGgg
RUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghbnVtYmVyRm9ybWF0KQot
ICAgICAgICBudW1iZXJGb3JtYXQgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihz
dGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5p
bnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUpKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0ID0g
anNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1ZSgpLmdldChz
dGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW50bFN1YnN0
aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCkpKTsKIAogICAgIGlmICghbnVtYmVyRm9ybWF0KQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBBU0NJSUxp
dGVyYWwoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZE9wdGlvbnMgY2FsbGVk
IG9uIHZhbHVlIHRoYXQncyBub3QgYW4gb2JqZWN0IGluaXRpYWxpemVkIGFzIGEgTnVtYmVyRm9y
bWF0IikpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
SW5saW5lcy5oCmluZGV4IDEyOWQ5ODUuLmUzYmZmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVraSA8eXVzdWtlLnN1enVraUBzc2xh
Yi5pY3Mua2Vpby5hYy5qcD4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTlRMKQogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgi
CiAjaW5jbHVkZSAiSW50bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ5
LDcgKzUxLDcgQEAgSlNWYWx1ZSBjb25zdHJ1Y3RJbnRsSW5zdGFuY2VXaXRoV29ya2Fyb3VuZEZv
ckxlZ2FjeUludGxDb25zdHJ1Y3RvcihFeGVjU3RhdGUmIHMKICAgICAgICAgICAgIGlmIChzdGF0
ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IAotICAgICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUsIGluc3RhbmNlKTsKKyAgICAgICAgICAg
IHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuaW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKCksIGluc3RhbmNlKTsKICAgICAgICAg
ICAgIHJldHVybiB0aGlzT2JqZWN0OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEwMTA1YjguLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKLQotI2luY2x1
ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2lu
Y2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMu
aCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU0FycmF5SXRlcmF0b3I6
OnNfaW5mbyA9IHsgIkFycmF5IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU0FycmF5SXRlcmF0b3IpIH07Ci0KLXZvaWQgSlNBcnJheUl0ZXJhdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlJdGVyYXRpb25LaW5k
IGtpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7Ci0gICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0gICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lLCBpdGVyYXRl
ZE9iamVjdCk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJh
dG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUsIGpzTnVtYmVyKDApKTsKLSAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmFycmF5SXRlcmF0aW9uS2luZFByaXZhdGVOYW1lLCBqc051bWJl
cihraW5kKSk7Ci19Ci0KLUFycmF5SXRlcmF0aW9uS2luZCBKU0FycmF5SXRlcmF0b3I6OmtpbmQo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIEpTVmFsdWUga2luZFZhbHVlID0gZ2V0RGly
ZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+YXJyYXlJdGVyYXRpb25L
aW5kUHJpdmF0ZU5hbWUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxBcnJheUl0ZXJhdGlvbktp
bmQ+KGtpbmRWYWx1ZS5hc0ludDMyKCkpOwotfQotCi1KU1ZhbHVlIEpTQXJyYXlJdGVyYXRvcjo6
aXRlcmF0ZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdldERp
cmVjdChleGVjLT52bSgpLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVkT2JqZWN0
UHJpdmF0ZU5hbWUpOwotfQotCi0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUl0ZXJhdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNjZi
ZDIuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0
ZXJhdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTQXJyYXlJdGVyYXRvcl9o
Ci0jZGVmaW5lIEpTQXJyYXlJdGVyYXRvcl9oCi0KLSNpbmNsdWRlICJKU09iamVjdC5oIgotCi1u
YW1lc3BhY2UgSlNDIHsKLQotZW51bSBBcnJheUl0ZXJhdGlvbktpbmQgOiB1aW50MzJfdCB7Ci0g
ICAgQXJyYXlJdGVyYXRlS2V5LAotICAgIEFycmF5SXRlcmF0ZVZhbHVlLAotICAgIEFycmF5SXRl
cmF0ZUtleVZhbHVlCi19OwotCi1jbGFzcyBKU0FycmF5SXRlcmF0b3IgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7
Ci0KLSAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQXJyYXlJdGVyYXRvciogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5SXRlcmF0aW9u
S2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpCi0gICAgewotICAgICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwotICAgICAgICBKU0FycmF5SXRlcmF0b3IqIGluc3RhbmNlID0gbmV3
IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNBcnJheUl0ZXJhdG9yPih2bS5oZWFwKSkgSlNBcnJh
eUl0ZXJhdG9yKHZtLCBzdHJ1Y3R1cmUpOwotICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRp
b24odm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCksIGtpbmQsIGl0ZXJhdGVkT2JqZWN0KTsK
LSAgICAgICAgcmV0dXJuIGluc3RhbmNlOwotICAgIH0KLQotICAgIEFycmF5SXRlcmF0aW9uS2lu
ZCBraW5kKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgIEpTVmFsdWUgaXRlcmF0ZWRWYWx1ZShFeGVj
U3RhdGUqKSBjb25zdDsKLSAgICBKU0FycmF5SXRlcmF0b3IqIGNsb25lKEV4ZWNTdGF0ZSopOwot
Ci0gICAgdXNpbmcgSlNOb25GaW5hbE9iamVjdDo6YXJyYXlTdG9yYWdlT3JOdWxsOwotcHJpdmF0
ZToKLSAgICBKU0FycmF5SXRlcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIEFycmF5SXRlcmF0aW9uS2luZCwgSlNP
YmplY3QqIGl0ZXJhdGVkT2JqZWN0KTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vICFkZWZpbmVkKEpT
QXJyYXlJdGVyYXRvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJ
bmxpbmVzLmgKaW5kZXggNmViMDg5Mi4uY2NjM2IwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzX2gKICNkZWZpbmUgSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXNfaAogCisjaW5jbHVkZSAiQnVpbHRp
bk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJdGVyYXRvck9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCkBAIC01Miw3ICs1Myw3IEBAIHZvaWQg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPkJZVEVTX1BFUl9FTEVNRU5ULCBqc051bWJlcihWaWV3Q2xhc3M6OmVs
ZW1lbnRTaXplKSwgRG9udEVudW0gfCBSZWFkT25seSB8IERvbnREZWxldGUpOwogCiAgICAgaWYg
KHByaXZhdGVBbGxvY2F0b3IpCi0gICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRl
TmFtZSwgcHJpdmF0ZUFsbG9jYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
OworICAgICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWxsb2NhdGVUeXBlZEFycmF5UHJpdmF0ZU5h
bWUoKSwgcHJpdmF0ZUFsbG9jYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaAppbmRleCA0ZjNiOGVjLi4wYjAyM2Q4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTMwLDcg
KzMwLDYgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMu
aCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKLSNpbmNsdWRlICJKU0Fy
cmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0pT
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDQwYTkyZmMuLmFi
MDE5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlclByb3RvdHlwZS5oIgotI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJK
U0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKQEAgLTQyNiw3ICs0MjUsNyBAQCB2b2lkIEpTR2xvYmFs
T2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICAgICAgICAgIGluaXQuc2V0UHJvdG90eXBlKEpTICMj
IHR5cGUgIyMgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgSlMg
IyMgdHlwZSAjIyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQu
Z2xvYmFsLCBpbml0Lmdsb2JhbC0+bV90eXBlZEFycmF5UHJvdG8uZ2V0KGluaXQuZ2xvYmFsKSkp
KTsgXAogICAgICAgICAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoSlMgIyMgdHlwZSAjIyBBcnJheTo6
Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0LnByb3RvdHlwZSkpOyBc
CiAgICAgICAgICAgICBpbml0LnNldENvbnN0cnVjdG9yKEpTICMjIHR5cGUgIyMgQXJyYXlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAjIyB0eXBlICMjIEFycmF5
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgaW5pdC5n
bG9iYWwtPm1fdHlwZWRBcnJheVN1cGVyQ29uc3RydWN0b3IuZ2V0KGluaXQuZ2xvYmFsKSksIGlu
aXQucHJvdG90eXBlLCBBU0NJSUxpdGVyYWwoI3R5cGUgIkFycmF5IiksIHR5cGVkQXJyYXlDb25z
dHJ1Y3RvckFsbG9jYXRlICMjIHR5cGUgIyMgQXJyYXlDb2RlR2VuZXJhdG9yKGluaXQudm0pKSk7
IFwKLSAgICAgICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihp
bml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSwg
aW5pdC5jb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCisgICAgICAgICAgICBpbml0Lmdsb2JhbC0+
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oaW5pdC52bSwgaW5pdC52bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS50eXBlICMjIEFycmF5UHJpdmF0ZU5hbWUoKSwgaW5pdC5jb25zdHJ1
Y3RvciwgRG9udEVudW0pOyBcCiAgICAgICAgIH0pOwogICAgIEZPUl9FQUNIX1RZUEVEX0FSUkFZ
X1RZUEVfRVhDTFVESU5HX0RBVEFfVklFVyhJTklUX1RZUEVEX0FSUkFZX0xBVEVSKQogI3VuZGVm
IElOSVRfVFlQRURfQVJSQVlfTEFURVIKQEAgLTYxOSw4ICs2MTgsOCBAQCBtXyAjIyBsb3dlck5h
bWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5SYW5nZUVycm9yLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVu
dW0pOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5UeXBlRXJyb3IsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtKTsKIAot
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5PYmpl
Y3RQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBv
YmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5BcnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAogI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCiBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKQEAg
LTY1Myw4ICs2NTIsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsKIAogICAgIEpTRnVuY3Rp
b24qIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7Ci0gICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUb0xlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgZ2xvYmFsT2JqZWN0VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNG
dW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlz
KTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVG
dW5jTGVuZ3RoKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmln
aW5hbENvbnN0cnVjdG9yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmco
KSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQgPSBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7
CkBAIC02NjgsMTMgKzY2NSw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDAsIFN0cmluZygpLCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQ29uY2F0U2xvd1BhdGggPSBKU0Z1bmN0aW9uOjpjcmVh
dGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBlQ29uY2F0U2xvd1BhdGhDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyk7CiAKLSAgICBKU09iamVjdCogYXJyYXlJdGVyYXRvclByb3RvdHlw
ZSA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgQXJyYXlJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0ZXJhdG9yUHJvdG90eXBl
LmdldCgpKSk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNDcmVhdGVBcnJheUl0ZXJhdG9y
ID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBhcnJheVByb3RvdHlwZUNy
ZWF0ZUFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAg
ICBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0b3ItPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVh
dGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9y
VmFsdWVOZXh0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwotICAgIEpTRnVuY3Rpb24qIHByaXZh
dGVGdW5jQXJyYXlJdGVyYXRvcktleU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5TmV4dENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0FycmF5SXRl
cmF0b3JLZXlWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0Q29kZUdlbmVy
YXRvcih2bSksIHRoaXMpOwotCiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJP
YmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5w
cm9wZXJ0eU5hbWVzLT5mbGFncyk7CiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvR2xvYmFsR2V0
dGVyT2JqZWN0ID0gZ2V0R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwg
dm0ucHJvcGVydHlOYW1lcy0+Z2xvYmFsKTsKICAgICBtX3JlZ0V4cFByb3RvR2xvYmFsR2V0dGVy
LnNldCh2bSwgdGhpcywgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QpOwpAQCAtNjg5LDcw
ICs2NzksNjEgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU09iamVjdCogcmVnRXhw
U3ltYm9sUmVwbGFjZSA9IGFzT2JqZWN0KG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wpLmFzQ2VsbCgpKTsKICAgICBtX3JlZ0V4
cFByb3RvU3ltYm9sUmVwbGFjZS5zZXQodm0sIHRoaXMsIHJlZ0V4cFN5bWJvbFJlcGxhY2UpOwog
CisjZGVmaW5lIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTihuYW1lLCBjb2RlKSBKU0Z1
bmN0aW9uKiBuYW1lICMjIFByaXZhdGVGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgY29kZSAjIyBDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CisgICAgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKENSRUFURV9QUklW
QVRFX0dMT0JBTF9GVU5DVElPTikKKyN1bmRlZiBDUkVBVEVfUFJJVkFURV9HTE9CQUxfRlVOQ1RJ
T04KKworICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gQXJyYXlJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBj
cmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZUZ1bmN0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZSk7CisKKwogICAgIEds
b2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CisjZGVmaW5lIElOSVRfUFJJVkFU
RV9HTE9CQUwobmFtZSwgY29kZSkgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLm5hbWUgIyMgUHJpdmF0ZU5hbWUoKSwgbmFtZSAjIyBQcml2YXRlRnVu
Y3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgSlNDX0ZP
UkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKElOSVRfUFJJVkFURV9H
TE9CQUwpCisjdW5kZWYgSU5JVF9QUklWQVRFX0dMT0JBTAogICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZp
bml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCwganNVbmRl
ZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+b3duRW51bWVyYWJsZVByb3BlcnR5S2V5
c1ByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBv
d25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Z2V0VGVt
cGxhdGVPYmplY3RQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+ZW5xdWV1ZUpvYlByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+RXJyb3JQcml2YXRlTmFtZSwgbV9lcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5SYW5nZUVycm9yUHJpdmF0ZU5hbWUsIG1fcmFuZ2VFcnJvckNv
bnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJyb3JQcml2YXRl
TmFtZSwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+dHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5n
dGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVj
dG9yUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUsIHBy
aXZhdGVGdW5jVHlwZWRBcnJheVNvcnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQm91bmRG
dW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lzQm91bmRGdW5jdGlvbiwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZh
dGVGdW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5p
bnN0YW5jZU9mUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSW5zdGFuY2VPZiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+QnVpbHRpbkxvZ1ByaXZhdGVOYW1lLCBidWlsdGluTG9nLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5OdW1iZXJQcml2YXRlTmFtZSwgbnVtYmVyQ29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPlJlZ0V4cFByaXZhdGVOYW1lLCBtX3JlZ0V4cENvbnN0cnVjdG9y
LmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5TdHJpbmdQcml2YXRlTmFtZSwgc3RyaW5n
Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmFic1ByaXZhdGVOYW1lLCBwcml2
YXRlRnVuY0FicywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Zmxvb3JQcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNGbG9vciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHJ1bmNQcml2YXRlTmFtZSwg
cHJpdmF0ZUZ1bmNUcnVuYywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNGaW5pdGVQcml2YXRl
TmFtZSwgcHJpdmF0ZUZ1bmNJc0Zpbml0ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNOYU5Q
cml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc05hTiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+UHJv
bWlzZVByaXZhdGVOYW1lLCBwcm9taXNlQ29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPlJlZmxlY3RQcml2YXRlTmFtZSwgcmVmbGVjdE9iamVjdCwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+SW50ZXJuYWxQcm9taXNlUHJpdmF0ZU5hbWUsIGludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlcGVhdENoYXJhY3RlclByaXZhdGVOYW1l
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBzdHJpbmdQcm90b0Z1
bmNSZXBlYXRDaGFyYWN0ZXIpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5yZXBlYXRTbG93UGF0aFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5G
dW5jdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlUmVwZWF0U2xvd1BhdGhDb2RlR2VuZXJhdG9yKHZt
KSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGVhdENo
YXJhY3RlcnNTbG93UGF0aFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5G
dW5jdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlUmVwZWF0Q2hhcmFjdGVyc1Nsb3dQYXRoQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0K
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzU2V0UHJpdmF0
ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVG
dW5jSXNTZXQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5TZXRJdGVyYXRvclByaXZhdGVOYW1l
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY1Nl
dEl0ZXJhdG9yKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+c2V0SXRlcmF0b3JOZXh0UHJpdmF0
ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHByaXZhdGVG
dW5jU2V0SXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNNYXBQcml2YXRl
TmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1
bmNJc01hcCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQXJyYXlQcml2YXRlTmFtZSwgYXJy
YXlDb25zdHJ1Y3Rvci0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5KSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheUNvbnN0cnVjdG9yUHJpdmF0ZU5hbWUsIHBy
aXZhdGVGdW5jSXNBcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5jb25j
YXRNZW1jcHlQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNDb25jYXRNZW1jcHksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmFwcGVuZE1lbWNweVByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0FwcGVuZE1l
bWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkub3duRW51bWVyYWJs
ZVByb3BlcnR5S2V5c1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lKCksIHBy
aXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmVucXVldWVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuRXJyb3JQcml2YXRlTmFtZSgpLCBtX2Vycm9yQ29uc3RydWN0b3IuZ2V0
KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJhbmdlRXJyb3JQcml2
YXRlTmFtZSgpLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuVHlwZUVycm9yUHJpdmF0ZU5hbWUoKSwgbV90eXBlRXJy
b3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkudHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJheUxl
bmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudHlwZWRBcnJheUdl
dE9yaWdpbmFsQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlH
ZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJheVNv
cnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQm91bmRGdW5jdGlv
blByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2YXRl
TmFtZSgpLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW5zdGFuY2VPZlByaXZhdGVOYW1lKCksIHByaXZh
dGVGdW5jSW5zdGFuY2VPZiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
QnVpbHRpbkxvZ1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5Mb2csIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLk51bWJlclByaXZhdGVOYW1lKCksIG51bWJlckNvbnN0cnVjdG9y
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SZWdFeHBQcml2YXRlTmFt
ZSgpLCBtX3JlZ0V4cENvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5TdHJpbmdQcml2YXRlTmFtZSgpLCBzdHJpbmdDb25zdHJ1Y3RvciwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWJzUHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNBYnMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZsb29y
UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNGbG9vciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkudHJ1bmNQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RydW5jLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0Zpbml0ZVByaXZhdGVOYW1lKCks
IHByaXZhdGVGdW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmlzTmFOUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc05hTiwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUHJvbWlzZVByaXZhdGVOYW1lKCksIHByb21pc2VDb25z
dHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmVmbGVjdFBy
aXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLkludGVybmFsUHJvbWlzZVByaXZhdGVOYW1lKCksIGludGVybmFsUHJvbWlzZUNv
bnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGVh
dENoYXJhY3RlclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwg
U3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzU2V0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJc1NldCksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlNldEl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJ
dGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNldEl0ZXJh
dG9yTmV4dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuaXNNYXBQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzTWFwKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3Ry
dWN0b3ItPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheSksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQXJyYXlDb25zdHJ1Y3RvclByaXZhdGVO
YW1lKCksIHByaXZhdGVGdW5jSXNBcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5jb25jYXRNZW1jcHlQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y0NvbmNhdE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXBw
ZW5kTWVtY3B5UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdFNsb3dQYXRoUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TWFw
SXRlcmF0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJp
bmcoKSwgcHJpdmF0ZUZ1bmNNYXBJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPm1h
cEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAs
IFN0cmluZygpLCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yTmV4dCksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JWYWx1ZU5leHRQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JWYWx1ZU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JLZXlOZXh0UHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNBcnJheUl0ZXJhdG9yS2V5TmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dFByaXZhdGVOYW1lKCksIHByaXZh
dGVGdW5jQXJyYXlJdGVyYXRvcktleVZhbHVlTmV4dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuY3JlYXRlQXJyYXlJdGVyYXRvclByaXZhdGVOYW1lKCksIHByaXZhdGVG
dW5jQ3JlYXRlQXJyYXlJdGVyYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS50b0xlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVG9MZW5ndGgsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvSW50ZWdlclByaXZhdGVOYW1lKCks
IHByaXZhdGVGdW5jVG9JbnRlZ2VyLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pc0RpY3Rpb25hcnlQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdElzRGljdGlvbmFyeUNvZGVHZW5lcmF0b3Iodm0pLCB0
aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNQcm9taXNlUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNl
T3BlcmF0aW9uc0lzUHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZVJlYWN0aW9uUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9u
c05ld1Byb21pc2VSZWFjdGlvbkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubmV3UHJvbWlzZUNhcGFiaWxpdHlQcml2YXRlTmFt
ZSgpLCBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRyaWdnZXJQcm9taXNlUmVhY3Rpb25zUHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0
aW9uc1RyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcm9taXNlUHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0
aW9uc1JlamVjdFByb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZ1bGZpbGxQcm9taXNlUHJpdmF0ZU5hbWUoKSwgSlNG
dW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0Z1bGZp
bGxQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5jcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNQcml2YXRlTmFtZSgpLCBK
U0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zQ3Jl
YXRlUmVzb2x2aW5nRnVuY3Rpb25zQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVhY3Rpb25Kb2JQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRp
b25zUHJvbWlzZVJlYWN0aW9uSm9iQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNl
T3BlcmF0aW9uc1Byb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhp
cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk1hcEl0ZXJhdG9yUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJp
dmF0ZUZ1bmNNYXBJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLm1hcEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMCwgU3RyaW5nKCksIHByaXZhdGVGdW5jTWFwSXRlcmF0b3JOZXh0KSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Q
cml2YXRlTmFtZSgpLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSh2bSwg
dGhpcywgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pk1hcFByaXZhdGVOYW1lLCBtYXBDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yUmVzdW1lUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnZW5lcmF0b3JQcm90b3R5cGVHZW5lcmF0b3JSZXN1
bWVDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLk1hcFByaXZhdGVOYW1lKCksIG1hcENvbnN0cnVjdG9yLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50aGlzVGltZVZhbHVlUHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNUaGlzVGltZVZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS50aGlzTnVtYmVyVmFsdWVQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RoaXNOdW1iZXJW
YWx1ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogI2lmIEVOQUJMRShJTlRM
KQpAQCAtNzYxLDM2ICs3NDIsMzAgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk51bWJl
ckZvcm1hdFByaXZhdGVOYW1lKCksIGludGwtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+TnVtYmVyRm9ybWF0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogI2Vu
ZGlmIC8vIEVOQUJMRShJTlRMKQogCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5pc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMSwgU3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNSZWdFeHBPYmplY3RQcml2YXRlTmFtZSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNSZWdFeHBPYmplY3Qs
IElzUmVnRXhwT2JqZWN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuc3BlY2llc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RTcGVjaWVzQ29uc3RydWN0b3JDb2Rl
R2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDEsIFN0cmluZygpLCBlc1NwZWNJc0NvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzUmVnRXhwT2JqZWN0UHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNS
ZWdFeHBPYmplY3QsIElzUmVnRXhwT2JqZWN0SW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5yZWdFeHBQcm90b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvRmxh
Z3NHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvR2xvYmFs
R2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJQcml2YXRlTmFtZSwg
cmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5yZWdFeHBQcm90b011bHRpbGluZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b011bHRp
bGluZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9Tb3Vy
Y2VHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyUHJpdmF0ZU5hbWUsIHJl
Z0V4cFByb3RvU3RpY2t5R2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdF
eHBQcm90b1VuaWNvZGVHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVy
T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90
b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVjdCwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9HbG9iYWxH
ZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0
dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyT2JqZWN0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b011bHRpbGluZUdl
dHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyT2JqZWN0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b1NvdXJjZUdldHRl
clByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvU291cmNlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b1N0aWNreUdldHRlclByaXZh
dGVOYW1lKCksIHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJQcml2YXRlTmFt
ZSgpLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBSZWdFeHAucHJvdG90eXBlIGhlbHBlcnMuCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBCdWlsdGlu
RXhlY1ByaXZhdGVOYW1lLCBidWlsdGluUmVnRXhwRXhlYywgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+cmVnRXhwQ3JlYXRlUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MiwgU3RyaW5nKCksIGVzU3BlY1JlZ0V4cENyZWF0ZSwgTm9JbnRyaW5zaWMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JS
ZWdFeHBNYXRjaFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgcmVnRXhwUHJvdG90eXBlSGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwTWF0
Y2hDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0UHJpdmF0ZU5h
bWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdFeHBQcm90b3R5
cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdENvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWR2YW5jZVN0
cmluZ0luZGV4UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9u
KHZtLCByZWdFeHBQcm90b3R5cGVBZHZhbmNlU3RyaW5nSW5kZXhDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cEV4ZWNQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4
cFByb3RvdHlwZVJlZ0V4cEV4ZWNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPnJlZ0V4cE1hdGNoRmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBTZWFyY2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZh
c3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBTcGxpdEZhc3RQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5j
U3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG90eXBlU3ltYm9s
UmVwbGFjZVByaXZhdGVOYW1lLCBtX3JlZ0V4cFByb3RvdHlwZS0+Z2V0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5yZXBsYWNlU3ltYm9sKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVn
RXhwVGVzdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBT
dHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50cmluc2lj
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwQnVpbHRpbkV4
ZWNQcml2YXRlTmFtZSgpLCBidWlsdGluUmVnRXhwRXhlYywgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwQ3JlYXRlUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgZXNTcGVjUmVnRXhwQ3JlYXRlLCBOb0ludHJp
bnNpYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlZ0V4cE1hdGNo
RmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5n
KCksIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnJlZ0V4cFNlYXJjaEZhc3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwU3BsaXRGYXN0UHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgcmVn
RXhwUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZVByaXZhdGVOYW1lKCksIG1fcmVnRXhw
UHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wp
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBUZXN0RmFzdFBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJl
Z0V4cFByb3RvRnVuY1Rlc3RGYXN0LCBSZWdFeHBUZXN0RmFzdEludHJpbnNpYyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBTdHJpbmcucHJvdG90eXBl
IGhlbHBlcnMuCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5oYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBzdHJpbmdQ
cm90b3R5cGVIYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlQ29kZUdlbmVy
YXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJbmNsdWRlc0lu
dGVybmFsUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5n
KCksIGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+c3RyaW5nU3BsaXRGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPnN0cmluZ1N1YnN0ckludGVybmFsUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJJbnRlcm5hbCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0luY2x1ZGVzSW50
ZXJuYWxQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmlu
ZygpLCBidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ1NwbGl0RmFzdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFz
dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ1N1YnN0cklu
dGVybmFsUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJp
bmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogICAgIH07CiAgICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxz
LCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAppbmRleCBhMzI0
MDU1Li5hYmE3NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKaW5kZXggZmVmZGVjZC4uOGEy
N2Q5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlMKIAogICAgIEpTVmFsdWUgZGVmZXJyZWQgPSBuZXdQcm9taXNlQ2FwYWJp
bGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29u
c3RydWN0b3IoKSk7CiAKLSAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywg
dm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVByaXZhdGVOYW1lKTsKKyAgICBKU1ZhbHVlIHByb21p
c2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
cHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAgIEFTU0VSVChwcm9taXNlLmluaGVyaXRzKEpTSW50
ZXJuYWxQcm9taXNlOjppbmZvKCkpKTsKICAgICBKU1ZhbHVlIHJlc29sdmUgPSBkZWZlcnJlZC5n
ZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVzb2x2ZVByaXZhdGVO
YW1lKCkpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1lKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKaW5kZXggNTZlMmY1YS4uMDIwMmUx
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCiAK
KyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUg
IkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtNTgs
MTAgKzU5LDEwIEBAIEpTUHJvbWlzZTo6SlNQcm9taXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiB2b2lkIEpTUHJvbWlzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb21pc2VTdGF0ZVByaXZhdGVOYW1lLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU3RhdHVzOjpQZW5kaW5nKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQoKSk7Ci0g
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVqZWN0UmVhY3Rpb25z
UHJpdmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvbWlzZVJlc3VsdFByaXZhdGVOYW1lLCBqc1VuZGVmaW5lZCgpKTsKKyAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VTdGF0
ZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBl
bmRpbmcpKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlRnVsZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkp
OworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJv
bWlzZVJlamVjdFJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOworICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc3Vs
dFByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOwogfQogCiB2b2lkIEpTUHJvbWlzZTo6aW5p
dGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgZXhlY3V0b3IpCkBAIC03OCwxNCArNzksMTQgQEAgdm9pZCBKU1Byb21pc2U6OmluaXRp
YWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHUKIAogYXV0byBKU1Byb21pc2U6OnN0YXR1cyhWTSYgdm0pIGNvbnN0IC0+IFN0YXR1cwogewot
ICAgIEpTVmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21p
c2VTdGF0ZVByaXZhdGVOYW1lKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlU3RhdGVQcml2YXRlTmFtZSgp
KTsKICAgICBBU1NFUlQodmFsdWUuaXNVSW50MzIoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFN0YXR1cz4odmFsdWUuYXNVSW50MzIoKSk7CiB9CiAKIEpTVmFsdWUgSlNQcm9taXNlOjpyZXN1
bHQoVk0mIHZtKSBjb25zdAogewotICAgIHJldHVybiBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb21pc2VSZXN1bHRQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGdldERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc3VsdFByaXZhdGVO
YW1lKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCAwYWFkMzcwLi42NWQ3
MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VE
ZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNl
RGVmZXJyZWQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC01OSw3ICs1OSw3IEBAIEpTUHJvbWlzZURlZmVycmVkKiBKU1Byb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsCiAKICAg
ICBKU1ZhbHVlIGRlZmVycmVkID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUg
cHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJp
dmF0ZU5hbWUpOworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAg
QVNTRVJUKHByb21pc2UuaW5oZXJpdHMoSlNQcm9taXNlOjppbmZvKCkpKTsKICAgICBKU1ZhbHVl
IHJlc29sdmUgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJy
ZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZh
dGVOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmdJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Z0l0ZXJhdG9yLmNwcAppbmRleCBjNmZlZGU3Li43YmZkOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAK
KyNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVz
LmgiCkBAIC0zOCwyMyArNDAsMjMgQEAgdm9pZCBKU1N0cmluZ0l0ZXJhdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIGl0ZXJhdGUKIHsKICAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwot
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2YXRl
TmFtZSwgaXRlcmF0ZWRTdHJpbmcpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwganNOdW1iZXIoMCkpOworICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRT
dHJpbmdQcml2YXRlTmFtZSgpLCBpdGVyYXRlZFN0cmluZyk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFBy
aXZhdGVOYW1lKCksIGpzTnVtYmVyKDApKTsKIH0KIAogSlNWYWx1ZSBKU1N0cmluZ0l0ZXJhdG9y
OjppdGVyYXRlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0
RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJp
bmdQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGdldERpcmVjdChleGVjLT52bSgpLCBleGVjLT52
bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5nUHJpdmF0ZU5h
bWUoKSk7CiB9CiAKIEpTU3RyaW5nSXRlcmF0b3IqIEpTU3RyaW5nSXRlcmF0b3I6OmNsb25lKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTVmFsdWUg
aXRlcmF0ZWRTdHJpbmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdGVk
U3RyaW5nUHJpdmF0ZU5hbWUpOwotICAgIEpTVmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lKTsK
KyAgICBKU1ZhbHVlIGl0ZXJhdGVkU3RyaW5nID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1lKCkpOworICAgIEpT
VmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lKCkpOwogCiAgICAgYXV0
byBjbG9uZSA9IEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+
Z2xvYmFsT2JqZWN0KCktPnN0cmluZ0l0ZXJhdG9yU3RydWN0dXJlKCksIGFzU3RyaW5nKGl0ZXJh
dGVkU3RyaW5nKSk7Ci0gICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
c3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSwgbmV4dEluZGV4KTsKKyAgICBjbG9u
ZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJ
dGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lKCksIG5leHRJbmRleCk7CiAgICAgcmV0dXJuIGNs
b25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBl
LmNwcAppbmRleCA0YjYzMGMyLi5hN2Y1MTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKQEAgLTc4LDggKzc4LDggQEAgdm9pZCBNYXBQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNOYW1lKCksIG1hcFByb3RvRnVuY1Zh
bHVlcywgRG9udEVudW0sIDApOwogCiAgICAgLy8gUHJpdmF0ZSBnZXQgLyBzZXQgb3BlcmF0aW9u
cy4KLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5nZXRQcml2YXRlTmFtZSwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51bSwgMSk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+c2V0UHJpdmF0ZU5hbWUsIG1hcFByb3RvRnVuY1NldCwgRG9udEVudW0sIDIpOworICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmdldFByaXZhdGVOYW1lKCksIG1hcFByb3RvRnVuY0dldCwgRG9udEVudW0s
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNldFByaXZhdGVOYW1lKCksIG1hcFByb3RvRnVuY1Nl
dCwgRG9udEVudW0sIDIpOwogCiAgICAgSlNGdW5jdGlvbiogZW50cmllcyA9IEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLnN0cmluZygpLCBtYXBQcm90b0Z1bmNFbnRyaWVzKTsK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwgZW50cmllcywgRG9udEVudW0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
CmluZGV4IDA4ZGExZGIuLjNjMjkzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVk
ZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1
ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCkBAIC05OSwxMCAr
MTAwLDEwIEBAIHZvaWQgT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqCiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50
cyBmb3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8
IERvbnREZWxldGUpOwogCi0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+Y3JlYXRlUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9y
Q3JlYXRlLCBEb250RW51bSwgMik7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+ZGVmaW5lUHJvcGVydHlQcml2YXRlTmFtZSwgb2Jq
ZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSwgRG9udEVudW0sIDMpOwotICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldFByb3Rv
dHlwZU9mUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YsIERvbnRF
bnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcywgRG9udEVudW0sIDEpOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmNyZWF0ZVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlLCBEb250RW51
bSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZGVmaW5lUHJvcGVydHlQcml2YXRlTmFtZSgpLCBv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCBEb250RW51bSwgMyk7CisgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuZ2V0UHJvdG90eXBlT2ZQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3Rvckdl
dFByb3RvdHlwZU9mLCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ2V0T3duUHJv
cGVydHlOYW1lc1ByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlO
YW1lcywgRG9udEVudW0sIDEpOwogfQogCiBKU0Z1bmN0aW9uKiBPYmplY3RDb25zdHJ1Y3Rvcjo6
YWRkRGVmaW5lUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVj
dE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0
LmNwcAppbmRleCAwYWMzMjBmLi4xNzUxMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiUmVmbGVjdE9iamVjdC5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5h
bWVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgpAQCAtODUs
OCArODYsOCBAQCB2b2lkIFJlZmxlY3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogCi0gICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+b3duS2V5c1ByaXZhdGVOYW1l
LCByZWZsZWN0T2JqZWN0T3duS2V5cywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmdldE93blByb3BlcnR5RGVzY3JpcHRvclByaXZhdGVOYW1lLCByZWZsZWN0T2Jq
ZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkub3duS2V5c1ByaXZhdGVOYW1lKCksIHJlZmxl
Y3RPYmplY3RPd25LZXlzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMSk7Cisg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yUHJpdmF0ZU5hbWUoKSwg
cmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHksIDIpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0Njk5
MTgyLi5hN2JhN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKICNpbmNsdWRlICJDYWNoZWRDYWxsLmgi
CiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCkBAIC0xMzcsOCArMTM4LDggQEAgdm9p
ZCBTdHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNTdHIKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiY29uY2F0Iiwgc3RyaW5nUHJvdG9GdW5jQ29uY2F0LCBEb250RW51bSwgMSk7CiAg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJp
bmdQcm90b0Z1bmNJbmRleE9mLCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jTGFzdElu
ZGV4T2YsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+cmVwbGFjZVVzaW5nUmVnRXhwUHJp
dmF0ZU5hbWUsIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCwgRG9udEVudW0sIDIs
IFN0cmluZ1Byb3RvdHlwZVJlcGxhY2VSZWdFeHBJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VVc2lu
Z1N0cmluZ1NlYXJjaFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJp
bmdTZWFyY2gsIERvbnRFbnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVw
bGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5n
UmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cEludHJpbnNp
Yyk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5h
bWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoLCBEb250RW51bSwg
Mik7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNsaWNlIiwg
c3RyaW5nUHJvdG9GdW5jU2xpY2UsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyIiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBE
b250RW51bSwgMik7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
InN1YnN0cmluZyIsIHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZywgRG9udEVudW0sIDIpOwpAQCAt
MTc1LDcgKzE3Niw3IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyCiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIm5vcm1hbGl6ZSIsIHN0cmluZ1Byb3RvRnVuY05v
cm1hbGl6ZSwgRG9udEVudW0sIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBzdHJpbmdQcm90b0Z1
bmNJdGVyYXRvciwgRG9udEVudW0sIDApOwogCi0gICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmNoYXJDb2RlQXRQcml2
YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVBdCwgRG9udEVudW0sIDEsIENoYXJDb2Rl
QXRJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jaGFyQ29kZUF0UHJp
dmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVBdCwgRG9udEVudW0sIDEsIENoYXJD
b2RlQXRJbnRyaW5zaWMpOwogCiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQg
bGF0ZXIsIGFmdGVyIFN0cmluZ0NvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5SW5saW5lcy5oCmluZGV4IDdhZjFmOWYu
LmYzZmMzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVk
QXJyYXlJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRB
cnJheUlubGluZXMuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZD
b3VudGVkSW5saW5lcy5oIgogI2luY2x1ZGUgIkdlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKLSNpbmNsdWRlICJKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlSW5saW5lcy5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQxMmNmOC4uNjJjMTU0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA2LTIwICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEl0IHNob3VsZCBiZSBlYXN5IHRv
IGFkZCBhIHByaXZhdGUgZ2xvYmFsIGhlbHBlciBmdW5jdGlvbiBmb3IgYnVpbHRpbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODg5MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEFkZCBKU0NKU1ZhbHVlSW5saW5l
cy5oIHRvIGZpeCBidWlsZCBpc3N1ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tCb3guY3BwOgorCiAyMDE2LTA2LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHBvc3QtbGFuZGluZyByZXZpZXcg
Y29tbWVudCBmcm9tIERhcmluIG9uIHIyMDIxODguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBjMDljZTAyLi43MWU0
ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja0JveC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCiAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0YVZpZXcuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>