<?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>158207</bug_id>
          
          <creation_ts>2016-05-30 09:11:14 -0700</creation_ts>
          <short_desc>Move CrossThreadCopier/CrossThreadTask to WTF</short_desc>
          <delta_ts>2016-05-30 21:41:10 -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>Web Template Framework</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>
          
          <blocked>158208</blocked>
    
    <blocked>158215</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1197626</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-30 09:11:14 -0700</bug_when>
    <thetext>Move CrossThreadCopier/CrossThreadTask to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197680</commentid>
    <comment_count>1</comment_count>
      <attachid>280112</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-30 14:19:04 -0700</bug_when>
    <thetext>Created attachment 280112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197681</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-30 14:21:54 -0700</bug_when>
    <thetext>Attachment 280112 did not pass style-queue:


ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:44:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:49:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:54:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadTask.h:36:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/CrossThreadTask.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 5 in 25 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>1197683</commentid>
    <comment_count>3</comment_count>
      <attachid>280113</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-30 14:47:41 -0700</bug_when>
    <thetext>Created attachment 280113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197684</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-30 14:49:05 -0700</bug_when>
    <thetext>Attachment 280113 did not pass style-queue:


ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:44:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:49:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:54:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadTask.h:36:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/CrossThreadTask.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 5 in 25 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>1197688</commentid>
    <comment_count>5</comment_count>
      <attachid>280113</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-30 16:22:37 -0700</bug_when>
    <thetext>Comment on attachment 280113
Patch

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

&gt; Source/WebCore/platform/WebCoreCrossThreadCopier.cpp:2
&gt; + * Copyright (C) 2009 Google Inc. All rights reserved.

Google? Isn&apos;t this a new file?

&gt; Source/WebCore/platform/WebCoreCrossThreadCopier.h:44
&gt; +    typedef WebCore::SessionID Type;

Darin has been using using for typedefs recently</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197708</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-30 20:12:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 280113 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280113&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.cpp:2
&gt; &gt; + * Copyright (C) 2009 Google Inc. All rights reserved.
&gt; 
&gt; Google? Isn&apos;t this a new file?

Ahhhhhhhh git. Not always getting file version history.

(No, it&apos;s not)

&gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.h:44
&gt; &gt; +    typedef WebCore::SessionID Type;
&gt; 
&gt; Darin has been using using for typedefs recently

I&apos;ll decline to change that at this point as the typedef is established in the copiers.

Interesting that we&apos;re starting to do that. I&apos;m not sure I see the advantage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197711</commentid>
    <comment_count>7</comment_count>
      <attachid>280113</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-30 20:34:30 -0700</bug_when>
    <thetext>Comment on attachment 280113
Patch

Clearing flags on attachment: 280113

Committed r201504: &lt;http://trac.webkit.org/changeset/201504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197712</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-30 20:34:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197717</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-30 21:01:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 280113 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=280113&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.cpp:2
&gt; &gt; &gt; + * Copyright (C) 2009 Google Inc. All rights reserved.
&gt; &gt; 
&gt; &gt; Google? Isn&apos;t this a new file?
&gt; 
&gt; Ahhhhhhhh git. Not always getting file version history.
&gt; 
&gt; (No, it&apos;s not)
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.h:44
&gt; &gt; &gt; +    typedef WebCore::SessionID Type;
&gt; &gt; 
&gt; &gt; Darin has been using using for typedefs recently
&gt; 
&gt; I&apos;ll decline to change that at this point as the typedef is established in
&gt; the copiers.
&gt; 
&gt; Interesting that we&apos;re starting to do that. I&apos;m not sure I see the advantage.

Not a big deal, but I prefer &quot;using&quot; as well because I find it more readable than a typedef (I am always confused about which comes first in a typedef statement, the alias or the type). Also, using can be templated, unlike typedef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197719</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-30 21:41:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; Comment on attachment 280113 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=280113&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.cpp:2
&gt; &gt; &gt; &gt; + * Copyright (C) 2009 Google Inc. All rights reserved.
&gt; &gt; &gt; 
&gt; &gt; &gt; Google? Isn&apos;t this a new file?
&gt; &gt; 
&gt; &gt; Ahhhhhhhh git. Not always getting file version history.
&gt; &gt; 
&gt; &gt; (No, it&apos;s not)
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/WebCoreCrossThreadCopier.h:44
&gt; &gt; &gt; &gt; +    typedef WebCore::SessionID Type;
&gt; &gt; &gt; 
&gt; &gt; &gt; Darin has been using using for typedefs recently
&gt; &gt; 
&gt; &gt; I&apos;ll decline to change that at this point as the typedef is established in
&gt; &gt; the copiers.
&gt; &gt; 
&gt; &gt; Interesting that we&apos;re starting to do that. I&apos;m not sure I see the advantage.
&gt; 
&gt; Not a big deal, but I prefer &quot;using&quot; as well because I find it more readable
&gt; than a typedef (I am always confused about which comes first in a typedef
&gt; statement, the alias or the type).

This is certainly subjective. I&apos;m the opposite. typedef has exactly one use, and has for the entire existence of C++, and the order has never changed. I also think the context almost always makes it clear which is the newly declared type.

Whereas with using I always have to get over a mental hurdle of &quot;why am I seeing this here, and why with an &apos;=&apos;? Statements that use &apos;using&apos; have never had &apos;=&apos;...&quot;

&gt; Also, using can be templated, unlike typedef.

This is definitely an objective advantage.

One I&apos;ve never seen in practice, though. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280112</attachid>
            <date>2016-05-30 14:19:04 -0700</date>
            <delta_ts>2016-05-30 14:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158207-20160530142019.patch</filename>
            <type>text/plain</type>
            <size>93513</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4OGJlZDA5Zjc1NTZhMTdlODFmOGZj
ZTJjYjQ4NTU4YTQxODA5M2IuLjk0ZTUxMzhkNTIwMDhkMjNhOWM5ZGQ4MmUwNGZlZjQ5MDg0MGJj
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMDUtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgQ3Jvc3NUaHJlYWRDb3BpZXIvQ3Jvc3NUaHJl
YWRUYXNrIHRvIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODIwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NN
YWtlTGlzdHMudHh0OgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcC4K
KyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmguCisgICAgICAgIChXVEY6OkNyb3Nz
VGhyZWFkQ29waWVyUGFzc1Rocm91Z2g6OmNvcHkpOgorICAgICAgICAKKyAgICAgICAgKiB3dGYv
Q3Jvc3NUaHJlYWRUYXNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZFRhc2suaC4KKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrOjpDcm9zc1Ro
cmVhZFRhc2spOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2s6OnBlcmZvcm1UYXNrKToK
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKToKKwogMjAxNi0wNS0yOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFRlbXBsYXRpemUgTm9uY29w
eWFibGVGdW5jdGlvbiBjbGFzcyBzaW1pbGFybHkgdG8gc3RkOjpmdW5jdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGJjZDAxYjMxZjBlMzZhMWViOGFjNjY1YTZkYjExNmZlYTZiNzUwZGIuLmYwOTBkY2JkYzcx
Zjc2NTI4MzFjY2U4MzU2ZDRlMzJmODVhMzEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBA
QAorMjAxNi0wNS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTW92ZSBDcm9zc1RocmVhZENvcGllci9Dcm9zc1RocmVhZFRhc2sgdG8gV1RGLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChS
ZWZhY3Rvciwgbm8gYmVoYXZpb3IgY2hhbmdlKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
CisgICAgICAgICogcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcDogQWRkZWQu
CisgICAgICAgIChXVEY6OldlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkpOgorICAgICAgICAoV1RG
OjpXZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj46OmNvcHkpOgorICAgICAgICAqIHBsYXRm
b3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oOiBBZGRlZC4KKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yOjppc29sYXRlZENvcHkpOgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6Omlzb2xhdGVkQ29weSk6CisKIDIwMTYtMDUtMzAgIEphdmllciBGZXJuYW5k
ZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBCb3ggQWxpZ25tZW50
XSBOZXcgQ1NTIFZhbHVlICdub3JtYWwnIGZvciBTZWxmIEFsaWdubWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGEzY2Y5NDc0Y2EzYTYyZGNkODZiODFjNWFlNjhkN2E2Zjk0MjZkOTEuLjUxMjJhZDc0YjZmNWRi
NmZiNmY3NGY3OWJiZmJlM2RmZjgxYjdhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNi0wNS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBDcm9zc1RocmVhZENvcGllci9Dcm9zc1RocmVhZFRhc2sgdG8gV1RGLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6CisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDcm9zc1RocmVh
ZENvcGllci5oOiBSZW1vdmVkLgorCiAyMDE2LTA1LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVtcGxhdGl6ZSBOb25jb3B5YWJsZUZ1bmN0aW9uIGNsYXNz
IHNpbWlsYXJseSB0byBzdGQ6OmZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMWZiYTE3ZDgwM2Q4ZGMwNWRkOWY1ZDRiYTljOTkwNjFkNzMxMDdm
Li5kODI2ODgxNDExYzRjMjMxM2Q0MzQ2Mjg1ZWZmODU2YzE2Y2E4NDQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMSw2ICsxMDEsOSBAQAogCQkyQ0RF
RDBGNDE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxv
b3AuaCAqLzsgfTsKIAkJNDMwQjQ3ODkxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMwQjQ3ODcx
QUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oICovOyB9OwogCQk1MTNFMTcwQjFDRDdE
NUJGMDBFMzY1MEIgLyogTG9nZ2luZ0FjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNFMTcwQTFDRDdENUJGMDBFMzY1MEIgLyogTG9n
Z2luZ0FjY3VtdWxhdG9yLmggKi87IH07CisJCTUxNUY3OTRFMUNGQzlGNEEwMENDRUQ5MyAvKiBD
cm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwICovOyB9OworCQk1MTVGNzk0RjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNUY3
OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyB9OworCQk1MTVG
Nzk1MDFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVGNzk0RDFDRkM5RjRBMDBDQ0VEOTMg
LyogQ3Jvc3NUaHJlYWRUYXNrLmggKi87IH07CiAJCTU1MzA3MUNBMUM0MDQyNzIwMDM4NDg5OCAv
KiBUaW55TFJVQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1MzA3MUM5MUM0MDQyNzIwMDM4NDg5OCAvKiBUaW55TFJVQ2FjaGUuaCAqLzsgfTsK
IAkJNzBBOTkzRkUxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lzdHJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwQTk5M0ZDMUFENzE1MTMw
MEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5jcHAgKi87IH07CiAJCTcwQTk5M0ZGMUFENzE1MTMw
MEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzBBOTkzRkQxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lz
dHJ5LmggKi87IH07CkBAIC00MjAsNiArNDIzLDkgQEAKIAkJMkNERUQwRjIxODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9v
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzBCNDc4NzFBQUFBQzFBMDAxMjIz
REEgLyogU3RyaW5nQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmluZ0NvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTNFMTcwQTFDRDdE
NUJGMDBFMzY1MEIgLyogTG9nZ2luZ0FjY3VtdWxhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dpbmdBY2N1bXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTVGNzk0QzFDRkM5RjRBMDBDQ0VE
OTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE1
Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUzMDcxQzkxQzQwNDI3MjAwMzg0ODk4IC8qIFRpbnlMUlVDYWNoZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW55TFJVQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5h
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZl
LmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXVEYuYTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUQyNDdCNkUxNDY4OUM0NzAwRTc4Qjc2IC8qIEJhc2Uu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTc5Nyw2ICs4MDMsOSBAQAogCQkJCTBGOEYyQjkwMTcyRTAwRjAwMDdEQkRB
NSAvKiBDb21waWxhdGlvblRocmVhZC5oICovLAogCQkJCUE4QTQ3MjcwMTUxQTgyNUEwMDQxMjNG
RiAvKiBDb21waWxlci5oICovLAogCQkJCTBGREI2OThEMUI3QzY0M0EwMDBDMTA3OCAvKiBDb25k
aXRpb24uaCAqLywKKwkJCQk1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwICovLAorCQkJCTUxNUY3OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZENvcGllci5oICovLAorCQkJCTUxNUY3OTREMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZFRhc2suaCAqLywKIAkJCQlBOEE0NzI3MzE1MUE4MjVBMDA0MTIzRkYgLyogQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuY3BwICovLAogCQkJCUE4QTQ3Mjc0MTUxQTgyNUEwMDQxMjNGRiAv
KiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICovLAogCQkJCUUxNTU1NkYzMThBMEND
MTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAqLywKQEAgLTEyNDcsNiAr
MTI1Niw3IEBACiAJCQkJMEZFMTY0NkIxQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0UzMTUxQTgyNUIwMDQxMjNGRiAvKiBMb2NrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0U2MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTVGNzk0RjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjMzQzdEMTdEQUE2RTMwMEE5M0FDRiAvKiBN
YWxsb2NQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0U4MTUxQTgyNUIwMDQxMjNGRiAv
KiBNYXRoRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQTE1MUE4MjVCMDA0MTIz
RkYgLyogTUQ1LmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTQsNiArMTMwNCw3IEBACiAJCQkJODZG
NDZGNjExQTI4NDBFRTAwQ0NCRjIyIC8qIFJlZkNvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDFDMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDFFMTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxNUY3OTUwMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTA5OEIwMDFDMTY5RTA3MDAwODc3OTcgLyogU2FuZGJveFNQ
SS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTIxLDYgKzE1MzIsNyBAQAogCQkJCUE3NDg3NDUyMTdB
MEJEQUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4QTQ3NDI1MTUxQTgyNUIwMDQxMjNGRiAvKiBTaXplTGltaXRzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3NDI3MTUxQTgyNUIwMDQxMjNGRiAvKiBTdGFja0JvdW5kcy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0
YWNrU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0M0MxNTFBODI1QjAwNDEyM0ZG
IC8qIFN0cmluZ0J1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RkIxODI0MzVB
NjAwQTgyRTY5IC8qIFN0cmluZ0NGLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAppbmRleCBjODM5YTI2NjgxYmY3NzYyYzkyNDU4NWQwM2IxZmVkZWNmZjVhY2ZjLi44YmE4NjBl
MmQzMDRiMWU0ZWJhOTQwYTFjMTllNTNlMjY0NTI2YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApA
QCAtMTMsNiArMTMsOCBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBDb21waWxhdGlvblRocmVhZC5o
CiAgICAgQ29tcGlsZXIuaAogICAgIENvbmRpdGlvbi5oCisgICAgQ3Jvc3NUaHJlYWRDb3BpZXIu
aAorICAgIENyb3NzVGhyZWFkVGFzay5oCiAgICAgQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5oCiAg
ICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKQEAg
LTE1OSw2ICsxNjEsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBBdG9taWNzLmNwcAogICAgIEJp
dFZlY3Rvci5jcHAKICAgICBDb21waWxhdGlvblRocmVhZC5jcHAKKyAgICBDcm9zc1RocmVhZENv
cGllci5jcHAKICAgICBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcAogICAgIENyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tTnVtYmVyLmNwcAogICAgIEN1cnJlbnRUaW1lLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dURi93dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5N2FkNzhjMWFhNmY2MWY2NmE5YTY4YjJk
ZWEwMzViMWUxM2U2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gVGVz
dCBDcm9zc1RocmVhZENvcGllciB1c2luZyBDT01QSUxFX0FTU0VSVC4KKworLy8gVmVyaWZ5IHRo
YXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQgb2JqZWN0cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCitj
bGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiB7Cit9OworCitDT01QSUxF
X0FTU0VSVCgoc3RkOjppc19zYW1lPAorICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENv
cGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sCisgICAgICAgICAgICAgICAgICAgIENyb3Nz
VGhyZWFkQ29waWVyPFBhc3NSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46
OlR5cGUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgUGFzc1Jl
ZlB0clRlc3QpOworQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKKyAgICAgICAgICAgICAg
ICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAorICAgICAg
ICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJl
ZkNvdW50ZWRUZXN0Pj46OlR5cGUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCisgICAgICAg
ICAgICAgICAgUmVmUHRyVGVzdCk7CitDT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAorICAg
ICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVz
dD4sCisgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPENvcGllclRocmVhZFNh
ZmVSZWZDb3VudGVkVGVzdCo+OjpUeXBlCisgICAgICAgICAgICAgICAgPjo6dmFsdWUpLAorICAg
ICAgICAgICAgICAgIFJhd1BvaW50ZXJUZXN0KTsKKworLy8gQWRkIHNwZWNpYWxpemF0aW9ucyBm
b3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxldCB1cyB2ZXJpZnkgdGhhdCBubyBvdGhl
ciB0ZW1wbGF0ZSBtYXRjaGVzLgordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0cjxUPj4geworICAgIHR5cGVkZWYgaW50
IFR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc1JlZlB0cjxUPj4geworICAgIHR5cGVkZWYgaW50IFR5
cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKKyAgICB0eXBlZGVmIGludCBUeXBlOworfTsKKworLy8g
VmVyaWZ5IHRoYXQgUmVmQ291bnRlZCBvYmplY3RzIG9ubHkgbWF0Y2ggdGhlIGFib3ZlIHRlbXBs
YXRlcyB3aGljaCBleHBvc2UgVHlwZSBhcyBpbnQuCitjbGFzcyBDb3BpZXJSZWZDb3VudGVkVGVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPENvcGllclJlZkNvdW50ZWRUZXN0PiB7Cit9OworCitzdGF0
aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGllcjxQYXNzUmVmUHRy
PENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksICJDcm9zc1RocmVhZENvcGll
ciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gUGFzc1JlZlB0cjw+IG9mIGEg
UmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOworc3RhdGlj
X2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NUaHJlYWRDb3BpZXI8UmVmUHRyPENvcGll
clJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksICJDcm9zc1RocmVhZENvcGllciBzcGVj
aWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gUmVmUHRyPD4gb2YgYSBSZWZDb3VudGVk
IChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0eXBlIik7CitzdGF0aWNfYXNzZXJ0KChz
dGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGllcjxDb3BpZXJSZWZDb3VudGVkVGVzdCo+
OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NUaHJlYWRDb3BpZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9w
ZXJseSBhcHBsaWVkIHRvIHJhdyBwb2ludGVyIG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJl
YWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9D
cm9zc1RocmVhZENvcGllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYzg2ZTU1MDVhMDA1NGQ1Yzc1NmVlODk0
MmU3NDc2YzI1MTEyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQsIDIwMTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2VIZWxw
ZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1vdmVQb2ludGVyIHsKKyAg
ICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUmVtb3ZlUG9pbnRlcjxUKj4geworICAgICAgICB0eXBlZGVmIFQgVHlwZTsKKyAgICB9
OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZVBvaW50ZXI8UmVmUHRy
PFQ+PiB7CisgICAgICAgIHR5cGVkZWYgVCBUeXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRlcjxQYXNzUmVmUHRyPFQ+PiB7CisgICAgICAg
IHR5cGVkZWYgVCBUeXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdlciB7CisgICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUgfHwgc3RkOjppc19lbnVtPFQ+
Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7Cisg
ICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1RocmVhZFNhZmVSZWZD
b3VudGVkUG9pbnRlciB7CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3RkOjpp
c19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7Cisg
ICAgfTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
clBhc3NUaHJvdWdoIHsKKyAgICB0eXBlZGVmIFQgVHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5
KGNvbnN0IFQmIHBhcmFtZXRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBwYXJhbWV0ZXI7Cisg
ICAgfQorfTsKKwordGVtcGxhdGU8Ym9vbCBpc0VudW1PckNvbnZlcnRpYmxlVG9JbnRlZ2VyLCBi
b29sIGlzVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U7CisKKy8vIEludGVnZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFu
eSBjaGFuZ2VzLgordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVy
QmFzZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3Vn
aDxUPiB7Cit9OworCisvLyBDbGFzc2VzIHRoYXQgaGF2ZSBhbiBpc29sYXRlZENvcHkoKSBtZXRo
b2QgZ2V0IGEgZGVmYXVsdCBzcGVjaWFsaXphdGlvbi4KK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUPiB7CisgICAgc3RhdGljIFQg
Y29weShjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZS5pc29sYXRl
ZENvcHkoKTsKKyAgICB9Cit9OworCisvLyBDdXN0b20gY29weSBtZXRob2RzLgordGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgdHJ1ZSwgVD4g
eworICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOjpSZW1v
dmVQb2ludGVyPFQ+OjpUeXBlIFJlZkNvdW50ZWRUeXBlOworICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19jb252ZXJ0aWJsZTxSZWZDb3VudGVkVHlwZSosIFRocmVhZFNhZmVSZWZDb3VudGVkPFJl
ZkNvdW50ZWRUeXBlPio+Ojp2YWx1ZSwgIlQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFRocmVhZFNh
ZmVSZWZDb3VudGVkISIpOworCisgICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNvdW50ZWRUeXBl
PiBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHJlZlB0cjsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50PiB7CisgICAgdHlwZWRlZiBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IFR5cGU7CisgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBUeXBlJiBzb3VyY2Up
CisgICAgeworICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KK307CisKK3RlbXBsYXRlPD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdURjo6QVNDSUlMaXRl
cmFsPiB7CisgICAgdHlwZWRlZiBXVEY6OkFTQ0lJTGl0ZXJhbCBUeXBlOworICAgIHN0YXRpYyBU
eXBlIGNvcHkoY29uc3QgVHlwZSYgc291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNvdXJj
ZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IENyb3NzVGhyZWFk
Q29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFzZTxDcm9zc1RocmVhZENvcGllckJh
c2VIZWxwZXI6OklzRW51bU9yQ29udmVydGlibGVUb0ludGVnZXI8VD46OnZhbHVlLCBDcm9zc1Ro
cmVhZENvcGllckJhc2VIZWxwZXI6OklzVGhyZWFkU2FmZVJlZkNvdW50ZWRQb2ludGVyPFQ+Ojp2
YWx1ZSwgVD4geworfTsKKworLy8gRGVmYXVsdCBzcGVjaWFsaXphdGlvbiBmb3IgVmVjdG9ycyBv
ZiBDcm9zc1RocmVhZENvcHlhYmxlIGNsYXNzZXMuCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPFQ+PiB7CisgICAg
dHlwZWRlZiBWZWN0b3I8VD4gVHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFR5cGUm
IHNvdXJjZSkKKyAgICB7CisgICAgICAgIFR5cGUgZGVzdGluYXRpb247CisgICAgICAgIGRlc3Rp
bmF0aW9uLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc291cmNlLnNpemUoKSk7CisgICAgICAgIGZv
ciAoYXV0byYgb2JqZWN0IDogc291cmNlKQorICAgICAgICAgICAgZGVzdGluYXRpb24udW5jaGVj
a2VkQXBwZW5kKENyb3NzVGhyZWFkQ29waWVyPFQ+Ojpjb3B5KG9iamVjdCkpOworICAgICAgICBy
ZXR1cm4gZGVzdGluYXRpb247CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOwordXNpbmcgV1RGOjpDcm9zc1Ro
cmVhZENvcGllckJhc2U7Cit1c2luZyBXVEY6OkNyb3NzVGhyZWFkQ29waWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9z
c1RocmVhZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWMyYWI5MDRlMmU0MGEyNzEzMTBmMmIxNzg3N2Ey
MGEyYTU1NDU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRU
YXNrLmgKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgorI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBDcm9z
c1RocmVhZFRhc2sgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyb3NzVGhyZWFkVGFzayk7
CitwdWJsaWM6CisgICAgQ3Jvc3NUaHJlYWRUYXNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAo
KT4mJiB0YXNrRnVuY3Rpb24pCisgICAgICAgIDogbV90YXNrRnVuY3Rpb24oV1RGTW92ZSh0YXNr
RnVuY3Rpb24pKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHRhc2tGdW5jdGlvbik7CisgICAgfQor
CisgICAgdm9pZCBwZXJmb3JtVGFzaygpCisgICAgeworICAgICAgICBtX3Rhc2tGdW5jdGlvbigp
OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIENyb3NzVGhyZWFkVGFzaygpIHsgfQorCisgICAg
Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiBtX3Rhc2tGdW5jdGlvbjsKK307CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitjbGFzcyBDcm9zc1RocmVh
ZFRhc2tJbXBsIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFzayB7CitwdWJsaWM6CisgICAg
Q3Jvc3NUaHJlYWRUYXNrSW1wbChUKiBjYWxsZWUsIHZvaWQgKFQ6OiptZXRob2QpKEFyZ3VtZW50
cy4uLiksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIG1fdGFza0Z1
bmN0aW9uID0gW2NhbGxlZSwgbWV0aG9kLCBhcmd1bWVudHMuLi5dIHsKKyAgICAgICAgICAgIChj
YWxsZWUtPiptZXRob2QpKGFyZ3VtZW50cy4uLik7CisgICAgICAgIH07CisgICAgfQorfTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KK2NsYXNzIENyb3NzVGhyZWFkVGFza1N0
YXRpY0ltcGwgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrIHsKK3B1YmxpYzoKKyAgICBD
cm9zc1RocmVhZFRhc2tTdGF0aWNJbXBsKHZvaWQgKCptZXRob2QpKEFyZ3VtZW50cy4uLiksIEFy
Z3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIG1fdGFza0Z1bmN0aW9uID0g
W21ldGhvZCwgYXJndW1lbnRzLi4uXSB7CisgICAgICAgICAgICBtZXRob2QoYXJndW1lbnRzLi4u
KTsKKyAgICAgICAgfTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQm
IGNhbGxlZSwKKyAgICB2b2lkIChUOjoqbWV0aG9kKSgpKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VD4+KCZjYWxsZWUsIG1ldGhvZCk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDE+CitzdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCisgICAgVCYg
Y2FsbGVlLAorICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSksCisgICAgY29uc3QgUDEmIHBhcmFt
ZXRlcjEpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrSW1w
bDxULCBNUDE+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAorICAgICAgICBX
VEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0
eXBlbmFtZSBNUDI+CitzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9z
c1RocmVhZFRhc2soCisgICAgVCYgY2FsbGVlLAorICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwg
TVAyKSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVy
MikKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQs
IE1QMSwgTVAyPj4oCisgICAgICAgICZjYWxsZWUsCisgICAgICAgIG1ldGhvZCwKKyAgICAgICAg
V1RGOjpDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCisgICAgICAgIFdU
Rjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpKTsKKworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgorc3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQmIGNhbGxlZSwK
KyAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzKSwKKyAgICBjb25zdCBQMSYgcGFy
YW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1l
dGVyMykKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBs
PFQsIE1QMSwgTVAyLCBNUDM+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1l
IE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMz4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICB2b2lkICgqbWV0aG9kKShNUDEs
IE1QMiwgTVAzKSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFy
YW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMykKK3sKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tTdGF0aWNJbXBsPE1QMSwgTVAyLCBNUDM+PigKKyAg
ICAgICAgbWV0aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShw
YXJhbWV0ZXIxKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFy
YW1ldGVyMiksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFt
ZXRlcjMpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1Q
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QND4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVh
ZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9pZCAo
VDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0KSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVy
MSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywK
KyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyLCBNUDMsIE1QND4+KAorICAgICAgICAm
Y2FsbGVlLAorICAgICAgICBtZXRob2QsCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8
UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMz46
OmNvcHkocGFyYW1ldGVyMyksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpj
b3B5KHBhcmFtZXRlcjQpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5
cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIE1QNT4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIs
IE1QMywgTVA0LCBNUDUpLAorICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAorICAgIGNvbnN0IFAy
JiBwYXJhbWV0ZXIyLAorICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAorICAgIGNvbnN0IFA0JiBw
YXJhbWV0ZXI0LAorICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1KQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDU+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAorICAgICAgICBXVEY6OkNy
b3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKKyAgICAgICAgV1RGOjpDcm9z
c1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisgICAgICAgIFdURjo6Q3Jvc3NU
aHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAorICAgICAgICBXVEY6OkNyb3NzVGhy
ZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVh
ZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0
eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBl
bmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2Pgorc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQm
IGNhbGxlZSwKKyAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwg
TVA2KSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVy
MiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKKyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwK
KyAgICBjb25zdCBQNSYgcGFyYW1ldGVyNSwKKyAgICBjb25zdCBQNiYgcGFyYW1ldGVyNikKK3sK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwg
TVAyLCBNUDMsIE1QNCwgTVA1LCBNUDY+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0
aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIx
KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
CisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUg
UDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQs
IHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5
cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNz4KK3N0ZDo6dW5pcXVlX3B0cjxD
cm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisg
ICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3KSwK
KyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAg
ICBjb25zdCBQMyYgcGFyYW1ldGVyMywKKyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKKyAgICBj
b25zdCBQNSYgcGFyYW1ldGVyNSwKKyAgICBjb25zdCBQNiYgcGFyYW1ldGVyNiwKKyAgICBjb25z
dCBQNyYgcGFyYW1ldGVyNykKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1Ro
cmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNz4+KAorICAg
ICAgICAmY2FsbGVlLAorICAgICAgICBtZXRob2QsCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRD
b3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29w
aWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGll
cjxQMz46OmNvcHkocGFyYW1ldGVyMyksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8
UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA1
Pjo6Y29weShwYXJhbWV0ZXI1KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNj46
OmNvcHkocGFyYW1ldGVyNiksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpj
b3B5KHBhcmFtZXRlcjcpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5
cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1l
IE1QNywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9p
ZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3LCBNUDgpLAor
ICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAorICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAorICAg
IGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAorICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAorICAgIGNv
bnN0IFA1JiBwYXJhbWV0ZXI1LAorICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LAorICAgIGNvbnN0
IFA3JiBwYXJhbWV0ZXI3LAorICAgIGNvbnN0IFA4JiBwYXJhbWV0ZXI4KQoreworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywg
TVA0LCBNUDUsIE1QNiwgTVA3LCBNUDg+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0
aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIx
KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
CisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpLAorICAgICAg
ICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJhbWV0ZXI3KSwKKyAgICAgICAg
V1RGOjpDcm9zc1RocmVhZENvcGllcjxQOD46OmNvcHkocGFyYW1ldGVyOCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpDcm9zc1RocmVhZFRhc2s7Cit1c2luZyBXVEY6
OmNyZWF0ZUNyb3NzVGhyZWFkVGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDdjYjMyYjcy
NmU0YjM3MzdiYzQ1NTc4MmQyZjlkMjBhZDIxNTUxNS4uZTllYWY4ODFlMThkZmY2YjIwYmY1ODcx
NWNkMjEwYmJhYTQ2OWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwOTcsNyArMjA5Nyw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAKICAg
ICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
Y3BwCi0gICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAgcGxhdGZvcm0vQ3Vy
c29yLmNwcAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcAogICAgIHBsYXRmb3JtL0Rl
Y2ltYWwuY3BwCkBAIC0yMTQyLDYgKzIxNDEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vVVJMLmNwcAogICAgIHBsYXRmb3JtL1VVSUQuY3BwCiAgICAgcGxhdGZvcm0vVXNl
ckFjdGl2aXR5LmNwcAorICAgIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAK
ICAgICBwbGF0Zm9ybS9XaWRnZXQuY3BwCiAKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3QuaAppbmRleCA0ZWQ4YjJmYTIwMGJmMmQzMTliYTllYmI4MDhjZWNmYzM4
MzA2MWMxLi44NDJkY2U0MTg4OWNkMjczNTgzYjk3NDJmYjNjODg4YjU1Y2Y1YWFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmpl
Y3QuaApAQCAtMjYsOCArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVlLmNwcAppbmRl
eCA2ZWExYzI0NmI3ZDA2MTA0YTAwMGMwNjliNTU1MDdlNjMzYjNkMDg4Li5kODI0NzA3Yzk1YTQ1
M2UwM2Y4NDE4YTM0NDljMzJiMDg0YmEyZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVmFsdWUuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIkNyb3NzVGhyZWFkQ29waWVyLmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFk
VGFzay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApp
bmRleCA4OWQyNzE2ZGRjNWEwMTJlY2Q0Y2QwZjBlMDQ5MTAzYmQ3NzI2ZDkwLi44ZmY2YTY2MDRj
YmFiODc4ODM1NzA5NGRmMDRkZDliOTE0MzhjMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
CkBAIC0yNywxMSArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0j
aW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVHJh
bnNhY3Rpb25PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cAppbmRleCA0NTc5ZGQ4ZjZiNjMxYTgyMDBlMGQzOGI0NWNmOTg0YTFhZTBmY2RkLi4zZGUxZWYy
OTEyNDNiMTA0YTkwMWVkYmQ1NDY2YTkzMzI3Njc2M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJDcm9z
c1RocmVhZENvcGllci5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAi
SURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTM2LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDgzMjA5ZTRkYjY3ZTcyY2ZiNTA1ZTVlMGZjOWUw
OTkzZWE0MWQyYmUuLjA3NzBjMWMwM2Y2YzcyZTc4ODdiZGEzMzgxNjc4ZTFiMGJhZDgyOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmgKQEAgLTI3LDExICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKLSNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJJREJDb25uZWN0aW9u
VG9DbGllbnQuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJVbmlxdWVJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VR
dWV1ZS5oPgpAQCAtNDEsNyArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IENyb3NzVGhyZWFkVGFzazsKIGNsYXNzIElEQkN1cnNvckluZm87CiBjbGFzcyBJREJSZXF1ZXN0
RGF0YTsKIGNsYXNzIElEQlZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCAwMTFkNjRm
MDQ1M2QwNmRlN2I3MmViNDU2YzAxMTdhYmFiNzkzYWExLi5lOTcwMjU2NzIwM2Q0NzJiN2I5M2Zi
ZmZlMjIwYzhkZDdmNDA0MDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMjcsNyArMjcs
NiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJDcm9zc1Ro
cmVhZFRhc2suaCIKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJC
aW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCkBA
IC0zOCw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZjI5YTQ0YjQyM2Y0ZmJhZmRlYTI5OTI3ZjA4YzZmMGMwMGJiZjYyMi4u
NDU3ZjY4MTQ2NGYzYjBiZjliMTdkYmE1ZDVlNGNmYWFmOTZkNTQ0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1MSw4ICsx
MjUxLDYgQEAKIAkJMkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjQxMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTQwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTQzNDY0MjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmNwcCAqLzsgfTsK
IAkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlclRocmVhZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTJFNDM0NjU4MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9Owot
CQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU3MEY1NDZBOTkw
MEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFNzU4MkVFMTI3NjRGMjYwMDYyNjI4QiAvKiBKU0Zp
bGVSZWFkZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU3NTgyRUQxMjc2NEYyNjAwNjI2MjhCIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5j
cHAgKi87IH07CiAJCTJFNzU4NDFEMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4
NDFBMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmNwcCAqLzsgfTsKIAkJMkU3
NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4NDFCMTI3NzlBREEwMDYyNjI4
QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggKi87IH07CkBAIC0yMDM4LDYgKzIwMzYsOCBAQAogCQk1
MTRDNzY3RDBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NjgwQ0U5MjNBMTAw
N0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRDNzY3RTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVz
b3VyY2VSZXNwb25zZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VC
YXNlLmNwcCAqLzsgfTsKIAkJNTE0Qzc2N0YwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVz
cG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRDNzY2QTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTVGNzk1MzFD
RkNBM0QwMDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNUY3OTUxMUNGQ0EzQzcwMEND
RUQ5MyAvKiBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9OworCQk1MTVGNzk1NDFD
RkNBM0Q1MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVGNzk1MjFDRkNBM0M3MDBDQ0VE
OTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE2MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZp
bGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTYwMzAwQTBDQzQyNTEyMDBDOEFDMjUgLyogRmlsZVN5c3RlbVBPU0lYLmNwcCAq
LzsgfTsKIAkJNTE2MDMwNkMwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYwMzA2QjBDQzQz
NjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCAqLzsgfTsKIAkJNTE2MDcxMkUxQkQ4MzA3
ODAwREJDNEYyIC8qIElEQk9iamVjdFN0b3JlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYwNzEyQzFCRDgzMDcyMDBEQkM0RjIgLyogSURC
T2JqZWN0U3RvcmVJbmZvLmNwcCAqLzsgfTsKQEAgLTIyMjEsNyArMjIyMSw2IEBACiAJCTUxRTNG
OUQ2MERBMDVFMUQwMDI1MDkxMSAvKiBKU1N0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFM0Y5RDQwREEwNUUxRDAwMjUwOTExIC8qIEpT
U3RvcmFnZS5jcHAgKi87IH07CiAJCTUxRTQxNDM0MTZBNjU5NjMwMEM2MzNDNyAvKiBSZXNvdXJj
ZUhhbmRsZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRTY4MjEw
MTYzODczMDIwMDNCQkYzQyAvKiBMb2FkZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNjgyMEYxNjM4NzMwMjAwM0JCRjNDIC8qIExv
YWRlclN0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNTFFNkZBN0MxQkJCNEZDMzAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkZBN0IxQkJC
NEZCNTAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBK
U0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpT
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi87IH07CiAJCTUxRUU3QjM4MUFB
NTBCMDUwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVFN0IzNzFBQTUwQjA1MDBGOTJCMjEgLyogUmVz
b3VyY2VMb2FkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUxRUU3QjNBMUFBNTEyMzEwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUU3QjM5
MUFBNTEyMzEwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmNwcCAqLzsgfTsKQEAgLTg3NDIs
OCArODc0MSw2IEBACiAJCTJFNDM0NjQxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlclJ1bkxvb3AuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2NDIwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3Jr
ZXJUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDY0MzBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdvcmtlclRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRTQz
NDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJl
YWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NTgyRUQxMjc2NEYy
NjAwNjI2MjhCIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRTc1ODQxQTEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlUmVhZGVyTG9h
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NTg0MUIxMjc3OUFEQTAw
NjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVJlYWRlckxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTYxMiw2ICs5NjA5LDggQEAKIAkJNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVzcG9uc2VCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
c291cmNlUmVzcG9uc2VCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
Qzc2NkEwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlUmVzcG9uc2VCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNUU1RkVGMTk1MTAxNDcwMDg2Q0E1RSAvKiBQbGF0Zm9y
bUdhbWVwYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1HYW1lcGFkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxNUY3OTUxMUNGQ0EzQzcwMENDRUQ5MyAvKiBXZWJDb3JlQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2MDMwMEEwQ0M0MjUxMjAwQzhB
QzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTYwMzA2QjBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1DRi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNjA3MTJCMUJEODMwNTMwMERCQzRGMiAvKiBUcmFuc2FjdGlv
bk9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFuc2FjdGlv
bk9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgxMiw3ICs5ODEx
LDYgQEAKIAkJNTFFM0Y5RDUwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFNDE0MzIxNkE2NTk1MTAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVUeXBl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2ODIwRjE2Mzg3MzAyMDAzQkJG
M0MgLyogTG9hZGVyU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9hZGVyU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFNkZBN0Ix
QkJCNEZCNTAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFFQUM1QjAxODE2M0Y0RTAwNEYxQkE0IC8qIElEQlJlY29yZElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVjb3JkSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyog
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRUU3QjM3MUFBNTBCMDUwMEY5MkIyMSAv
KiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyOTAwLDkg
KzIyODk4LDYgQEAKIAkJCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8s
CiAJCQkJMzM5QjVCNjIxMzFEQUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNTdHJhdGVneS5oICovLAog
CQkJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggKi8s
Ci0JCQkJMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAq
LywKLQkJCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAq
LywKLQkJCQk1MUU2RkE3QjFCQkI0RkI1MDA4NzAwRDkgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8s
CiAJCQkJRTExQUYxNTAxMUI5QTFBMzAwODA1MTAzIC8qIEN1cnNvci5jcHAgKi8sCiAJCQkJRjU4
Nzg2ODQwMkRFM0I4NjAxRUE0MTIyIC8qIEN1cnNvci5oICovLAogCQkJCUE1NzMyQjA4MTM2QTE2
MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8sCkBAIC0yMzA0Niw2ICsyMzA0MSw4
IEBACiAJCQkJOUExMTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZhbHVlVG9TdHJpbmcuaCAqLywK
IAkJCQk0NkRCN0Q1ODFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmNwcCAqLywKIAkJ
CQk0NkRCN0Q1OTFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmggKi8sCisJCQkJNTE1
Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAgKi8s
CisJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5oICovLAogCQkJCTkzODBGNDcxMDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuY3BwICovLAog
CQkJCTkzODBGNDcyMDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuaCAqLywKIAkJCQlFMUUxQkVG
RjExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMuaCAqLywKQEAgLTI1Mzcx
LDggKzI1MzY4LDYgQEAKIAkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzQxNjEyMEY2NTYyRkQwMDky
RDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
QzQxNURBMEY2NTVENkYwMDkyRDJGQiAvKiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRTZGQTdDMUJCQjRGQzMwMDg3MDBE
OSAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjk4MDNEMTEzMzU0
MkQwMDg5NDExNSAvKiBDUnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0Ey
OEIxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MkFG
NkUxODBGMjRDNjAwRkJBREI5IC8qIENyeXB0b0FsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODM5NCw2ICsyODM4OSw3IEBACiAJCQkJNDk4NzcwRjMxMjQyQzUzNTAwMjIyNkJBIC8qIFRp
bGluZ0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzRERDMTI1MUYxMkQwMDNFRjI2OSAv
KiBUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTUzQ0ZFODEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTVG
Nzk1NDFDRkNBM0Q1MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0NDYxM0IwMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDdFRDBBQjFCQUU5OTE3MDA0M0IzRTUgLyogVGltZXJFdmVudEJh
c2VkTW9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTI5NSw3ICsyOTI5MSw2IEBACiAJCQkJMkQ0
ODFGMDAxNDZCNUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQzQxNjE3MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDNDE1REUwRjY1NUQ3QzAwOTJE
MkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxNjk4MDQ5MTEzMzY0NDcwMDg5NDExNSAvKiBDUnVudGltZU9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzVDQTI4QTEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNzJBRjZEMTgwRjI0QzYwMEZCQURCOSAv
KiBDcnlwdG9BbGdvcml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMxNSw2ICszMTMxMCw3
IEBACiAJCQkJNUE1NzRGMjQxMzFEQjkzOTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUQ3MEFENjU3MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFOTNGNDcxNTE3QzZENTAwOENDRjc0IC8qIFJlbmRl
clJlZ2lvblNldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTVGNzk1MzFDRkNBM0QwMDBDQ0VE
OTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDRCRTUyQTFDRTEzNkVGMDA5RDg3REEgLyogR2VuZXJpY1Rhc2tRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0E4NDZENjBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVw
bGljYS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCmluZGV4IDI2ZWE1ZDkyMGQ3NmQxNjU5NjFjOThmMTU4MzVkMzY5OGFiNzg0
M2UuLmZlNzVkMjU1OWQzN2FiNDNkMDE2NGFkYWQ3NjRhMGY0NTQyOGY4ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjgsMTIgKzI4LDEyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAi
U3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGM1OThhYzM0ZmQy
NzA3YTlkZDc4MTc4MWRlMTIxNmY1MDY4NTZmMWQuLmZmODE5NGUwY2ZiNzUzMDVhYjMzN2MxYTVk
Nzc2ZThkMDJjYmQ3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcApAQCAtMzUsOSArMzUsOSBAQAogI2luY2x1ZGUgIkJsb2JQYXJ0
LmgiCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgotI2lu
Y2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRl
IDx3dGYvTWVzc2FnZVF1ZXVlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZDczOWM2YjZj
OTgxNzIxYThlYjU0OTYxYjU4Nzk5ODFjZTQzNzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgotCi0jaW5jbHVkZSAiVVJMLmgi
Ci0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkRhdGEuaCIKLSNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKLSNpbmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgotI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwg
VVJMPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBVUkw+Ojpjb3B5
KGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0K
LUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFN0cmluZz46OlR5cGUgQ3Jvc3NU
aHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgU3RyaW5nPjo6Y29weShjb25zdCBTdHJpbmcm
IHN0cikKLXsKLSAgICByZXR1cm4gc3RyLmlzb2xhdGVkQ29weSgpOwotfQotCi1Dcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPjo6VHlwZSBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPjo6Y29weShjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICByZXR1cm4gZXJyb3IuY29weSgpOwotfQotCi1Dcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+OjpUeXBlIENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVxdWVzdD46OmNvcHko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiByZXF1ZXN0LmNv
cHlEYXRhKCk7Ci19Ci0KLUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291
cmNlUmVzcG9uc2U+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJl
c291cmNlUmVzcG9uc2U+Ojpjb3B5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQot
ewotICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwotfQotCi1Dcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBTZWN1cml0eU9yaWdpbkRhdGE+OjpUeXBlIENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luRGF0YT46OmNvcHkoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQotewotICAgIHJldHVybiBvcmlnaW5EYXRh
Lmlzb2xhdGVkQ29weSgpOwotfQotCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNl
LCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNl
c3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0gICAgcmV0dXJu
IHNlc3Npb25JRDsKLX0KLQotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhy
ZWFkU2FmZURhdGFCdWZmZXI+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFs
c2UsIFRocmVhZFNhZmVEYXRhQnVmZmVyPjo6Y29weShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZl
ciYgYnVmZmVyKQotewotICAgIHJldHVybiBUaHJlYWRTYWZlRGF0YUJ1ZmZlcihidWZmZXIpOwot
fQotCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2Us
IGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6Y29weShjb25z
dCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50JiB0aW1lUG9pbnQpCi17Ci0g
ICAgcmV0dXJuIHRpbWVQb2ludDsKLX0KLQotLy8gVGVzdCBDcm9zc1RocmVhZENvcGllciB1c2lu
ZyBDT01QSUxFX0FTU0VSVC4KLQotLy8gVmVyaWZ5IHRoYXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQg
b2JqZWN0cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCi1jbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVm
Q291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRUZXN0PiB7Ci19OwotCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAot
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRl
c3Q+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UGFzc1JlZlB0cjxDb3Bp
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZQotICAgICAgICAgICAgICAgICAgPjo6
dmFsdWUpLAotICAgICAgICAgICAgICAgUGFzc1JlZlB0clRlc3QpOwotQ09NUElMRV9BU1NFUlQo
KHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Q29waWVyVGhyZWFk
U2FmZVJlZkNvdW50ZWRUZXN0PiwKLSAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVy
PFJlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZQotICAgICAgICAg
ICAgICAgICAgPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgUmVmUHRyVGVzdCk7Ci1DT01QSUxF
X0FTU0VSVCgoc3RkOjppc19zYW1lPAotICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3Bp
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJl
YWRDb3BpZXI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Kj46OlR5cGUKLSAgICAgICAg
ICAgICAgICAgID46OnZhbHVlKSwKLSAgICAgICAgICAgICAgIFJhd1BvaW50ZXJUZXN0KTsKLQot
Ly8gQWRkIHNwZWNpYWxpemF0aW9ucyBmb3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxl
dCB1cyB2ZXJpZnkgdGhhdCBubyBvdGhlciB0ZW1wbGF0ZSBtYXRjaGVzLgotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0
cjxUPj4gewotICAgIHR5cGVkZWYgaW50IFR5cGU7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc1JlZlB0cjxU
Pj4gewotICAgIHR5cGVkZWYgaW50IFR5cGU7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKLSAgICB0eXBl
ZGVmIGludCBUeXBlOwotfTsKLQotLy8gVmVyaWZ5IHRoYXQgUmVmQ291bnRlZCBvYmplY3RzIG9u
bHkgbWF0Y2ggdGhlIGFib3ZlIHRlbXBsYXRlcyB3aGljaCBleHBvc2UgVHlwZSBhcyBpbnQuCi1j
bGFzcyBDb3BpZXJSZWZDb3VudGVkVGVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENvcGllclJlZkNv
dW50ZWRUZXN0PiB7Ci19OwotCi1zdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9z
c1RocmVhZENvcGllcjxQYXNzUmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2
YWx1ZSksICJDcm9zc1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxp
ZWQgdG8gUGFzc1JlZlB0cjw+IG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVm
Q291bnRlZCkgdHlwZSIpOwotc3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NU
aHJlYWRDb3BpZXI8UmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSks
ICJDcm9zc1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8g
UmVmUHRyPD4gb2YgYSBSZWZDb3VudGVkIChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0
eXBlIik7Ci1zdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGll
cjxDb3BpZXJSZWZDb3VudGVkVGVzdCo+OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NUaHJlYWRDb3Bp
ZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9wZXJseSBhcHBsaWVkIHRvIHJhdyBwb2ludGVyIG9mIGEg
UmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE4M2M2NzI3NDU2ZmQxZmIz
MzQwMDY2NDU5YjQwYjc4NWQ0YTg2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxNCwgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRT
aXplOwotY2xhc3MgVVJMOwotY2xhc3MgUmVzb3VyY2VFcnJvcjsKLWNsYXNzIFJlc291cmNlUmVx
dWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTZXNzaW9uSUQ7Ci1jbGFzcyBU
aHJlYWRTYWZlRGF0YUJ1ZmZlcjsKLXN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhOwotc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YTsKLXN0cnVjdCBTZWN1
cml0eU9yaWdpbkRhdGE7Ci1zdHJ1Y3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM7Ci0KLXN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2VIZWxwZXIgewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBSZW1vdmVQb2ludGVyIHsKLSAgICAgICAgdHlwZWRlZiBUIFR5cGU7Ci0gICAgfTsK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRlcjxUKj4gewotICAg
ICAgICB0eXBlZGVmIFQgVHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IFJlbW92ZVBvaW50ZXI8UmVmUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgVCBUeXBl
OwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRl
cjxQYXNzUmVmUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgVCBUeXBlOwotICAgIH07Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdl
ciB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3RkOjppc19pbnRlZ3JhbDxU
Pjo6dmFsdWUgfHwgc3RkOjppc19lbnVtPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZlcnRpYmxl
PFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBJc1RocmVhZFNhZmVSZWZDb3VudGVkUG9pbnRlciB7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gc3RkOjppc19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQ
b2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9p
bnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7Ci0gICAgfTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllclBhc3NUaHJvdWdoIHsKLSAgICB0eXBlZGVmIFQg
VHlwZTsKLSAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFQmIHBhcmFtZXRlcikKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBwYXJhbWV0ZXI7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Ym9vbCBpc0Vu
dW1PckNvbnZlcnRpYmxlVG9JbnRlZ2VyLCBib29sIGlzVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHR5
cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U7Ci0KLS8vIEludGVnZXJzIGdl
dCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFueSBjaGFuZ2VzLgotdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMg
Q3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxUPiB7Ci19OwotCi0vLyBUbyBhbGxvdyBhIHR5
cGUgdG8gYmUgcGFzc2VkIGFjcm9zcyB0aHJlYWRzIHVzaW5nIGl0cyBjb3B5IGNvbnN0cnVjdG9y
LCBhZGQgYSBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSB0eXBlIGFuZAotLy8gYSBDb3B5VGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFR5cGVOYW1lPiA6IHB1YmxpYyBDcm9zc1RocmVh
ZENvcGllclBhc3NUaHJvdWdoPFR5cGVOYW1lPiB7IH07IHRvIHRoaXMgZmlsZS4KLXRlbXBsYXRl
PD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIEludFJlY3Q+IDog
cHVibGljIENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8SW50UmVjdD4gewotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSW50U2l6
ZT4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxJbnRTaXplPiB7Ci19Owot
Ci0vLyBDbGFzc2VzIHRoYXQgaGF2ZSBhbiBpc29sYXRlZENvcHkoKSBtZXRob2QgZ2V0IGEgZGVm
YXVsdCBzcGVjaWFsaXphdGlvbi4KLXRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUPiB7Ci0gICAgc3RhdGljIFQgY29weShjb25zdCBU
JiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB2YWx1ZS5pc29sYXRlZENvcHkoKTsKLSAg
ICB9Ci19OwotCi0vLyBDdXN0b20gY29weSBtZXRob2RzLgotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgdHJ1ZSwgVD4gewotICAgIHR5cGVk
ZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOjpSZW1vdmVQb2ludGVyPFQ+
OjpUeXBlIFJlZkNvdW50ZWRUeXBlOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19jb252ZXJ0
aWJsZTxSZWZDb3VudGVkVHlwZSosIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlZkNvdW50ZWRUeXBl
Pio+Ojp2YWx1ZSwgIlQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFRocmVhZFNhZmVSZWZDb3VudGVk
ISIpOwotCi0gICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNvdW50ZWRUeXBlPiBUeXBlOwotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHJlZlB0cjsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBD
cm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBVUkw+IHsKLSAgICB0eXBlZGVmIFVS
TCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVVJMJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZh
bHNlLCBTdHJpbmc+IHsKLSAgICB0eXBlZGVmIFN0cmluZyBUeXBlOwotICAgIHN0YXRpYyBUeXBl
IGNvcHkoY29uc3QgU3RyaW5nJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPiB7Ci0gICAgdHlwZWRlZiBS
ZXNvdXJjZUVycm9yIFR5cGU7Ci0gICAgc3RhdGljIFR5cGUgY29weShjb25zdCBSZXNvdXJjZUVy
cm9yJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IFR5cGU7Ci0gICAgc3RhdGljIFR5cGUg
Y29weShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+IHsKLSAg
ICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
PiBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxz
ZSwgU2VjdXJpdHlPcmlnaW5EYXRhPiB7Ci0gICAgdHlwZWRlZiBTZWN1cml0eU9yaWdpbkRhdGEg
VHlwZTsKLSAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxz
ZSwgU2Vzc2lvbklEPiB7Ci0gICAgdHlwZWRlZiBTZXNzaW9uSUQgVHlwZTsKLSAgICBzdGF0aWMg
VHlwZSBjb3B5KGNvbnN0IFNlc3Npb25JRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IHsK
LSAgICB0eXBlZGVmIFRocmVhZFNhZmVEYXRhQnVmZmVyIFR5cGU7Ci0gICAgc3RhdGljIFR5cGUg
Y29weShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludD4gewotICAgIHR5cGVkZWYgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVHlwZSYg
c291cmNlKTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQ3Jvc3NUaHJlYWRD
b3BpZXIgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPENyb3NzVGhyZWFkQ29waWVyQmFz
ZUhlbHBlcjo6SXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdlcjxUPjo6dmFsdWUsIENyb3NzVGhy
ZWFkQ29waWVyQmFzZUhlbHBlcjo6SXNUaHJlYWRTYWZlUmVmQ291bnRlZFBvaW50ZXI8VD46OnZh
bHVlLCBUPiB7Ci19OwotCi0vLyBEZWZhdWx0IHNwZWNpYWxpemF0aW9uIGZvciBWZWN0b3JzIG9m
IENyb3NzVGhyZWFkQ29weWFibGUgY2xhc3Nlcy4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8VD4+IHsKLSAgICB0
eXBlZGVmIFZlY3RvcjxUPiBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVHlwZSYg
c291cmNlKQotICAgIHsKLSAgICAgICAgVHlwZSBkZXN0aW5hdGlvbjsKLSAgICAgICAgZGVzdGlu
YXRpb24ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzb3VyY2Uuc2l6ZSgpKTsKLSAgICAgICAgZm9y
IChhdXRvJiBvYmplY3QgOiBzb3VyY2UpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbi51bmNoZWNr
ZWRBcHBlbmQoQ3Jvc3NUaHJlYWRDb3BpZXI8VD46OmNvcHkob2JqZWN0KSk7Ci0gICAgICAgIHJl
dHVybiBkZXN0aW5hdGlvbjsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZFRhc2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiODIzYmMxNWE4ZTNjMWExMmJlMjg1OWY2NTAzY2ViMzAwZmI3YmFhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsMjUzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyb3NzVGhyZWFkVGFza19oCi0jZGVm
aW5lIENyb3NzVGhyZWFkVGFza19oCi0KLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgot
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3Jv
c3NUaHJlYWRUYXNrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDcm9zc1RocmVhZFRhc2sp
OwotcHVibGljOgotICAgIENyb3NzVGhyZWFkVGFzayhjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IHRhc2tGdW5jdGlvbikKLSAgICAgICAgOiBtX3Rhc2tGdW5jdGlvbih0YXNrRnVuY3Rpb24p
Ci0gICAgewotICAgICAgICBBU1NFUlQodGFza0Z1bmN0aW9uKTsKLSAgICB9Ci0KLSAgICB2b2lk
IHBlcmZvcm1UYXNrKCkKLSAgICB7Ci0gICAgICAgIG1fdGFza0Z1bmN0aW9uKCk7Ci0gICAgfQot
Ci1wcm90ZWN0ZWQ6Ci0gICAgQ3Jvc3NUaHJlYWRUYXNrKCkgeyB9Ci0KLSAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IG1fdGFza0Z1bmN0aW9uOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIENyb3NzVGhyZWFkVGFza0ltcGwgZmluYWwg
OiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrIHsKLXB1YmxpYzoKLSAgICBDcm9zc1RocmVhZFRhc2tJ
bXBsKFQqIGNhbGxlZSwgdm9pZCAoVDo6Km1ldGhvZCkoQXJndW1lbnRzLi4uKSwgQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgbV90YXNrRnVuY3Rpb24gPSBbY2FsbGVl
LCBtZXRob2QsIGFyZ3VtZW50cy4uLl0gewotICAgICAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCko
YXJndW1lbnRzLi4uKTsKLSAgICAgICAgfTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgotY2xhc3MgQ3Jvc3NUaHJlYWRUYXNrU3RhdGljSW1wbCBmaW5hbCA6
IHB1YmxpYyBDcm9zc1RocmVhZFRhc2sgewotcHVibGljOgotICAgIENyb3NzVGhyZWFkVGFza1N0
YXRpY0ltcGwodm9pZCAoKm1ldGhvZCkoQXJndW1lbnRzLi4uKSwgQXJndW1lbnRzJiYuLi4gYXJn
dW1lbnRzKQotICAgIHsKLSAgICAgICAgbV90YXNrRnVuY3Rpb24gPSBbbWV0aG9kLCBhcmd1bWVu
dHMuLi5dIHsKLSAgICAgICAgICAgIG1ldGhvZChhcmd1bWVudHMuLi4pOwotICAgICAgICB9Owot
ICAgIH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NU
aHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZv
aWQgKFQ6OiptZXRob2QpKCkpCi17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NU
aHJlYWRUYXNrSW1wbDxUPj4oJmNhbGxlZSwgbWV0aG9kKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KLXN0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9p
ZCAoVDo6Km1ldGhvZCkoTVAxKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSkKLXsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMT4+KAotICAg
ICAgICAmY2FsbGVlLAotICAgICAgICBtZXRob2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhy
ZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDI+
Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2so
Ci0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyKSwKLSAgICBj
b25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMikKLXsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyPj4o
Ci0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAgICAgICAgV2ViQ29yZTo6Q3Jv
c3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBXZWJDb3JlOjpD
cm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMikpOwotCi19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBl
bmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jv
c3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAg
IHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0
ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIz
KQotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwg
TVAxLCBNUDIsIE1QMz4+KAotICAgICAgICAmY2FsbGVlLAotICAgICAgICBtZXRob2QsCi0gICAg
ICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAg
ICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMykp
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgotc3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIHZvaWQgKCptZXRo
b2QpKE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0
IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza1N0YXRpY0ltcGw8TVAxLCBNUDIsIE1Q
Mz4+KAotICAgICAgICBtZXRob2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVy
PFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3Bp
ZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENv
cGllcjxQMz46OmNvcHkocGFyYW1ldGVyMykpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBl
bmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0Pgotc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQm
IGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQpLAotICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNv
bnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0KQotewotICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1Q
MywgTVA0Pj4oCi0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAgICAgICAgV2Vi
Q29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBX
ZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAg
IFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwKLSAgICAg
ICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5h
bWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUg
UDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNT4KLXN0ZDo6dW5pcXVl
X3B0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxs
ZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUpLAotICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNv
bnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0
IFA1JiBwYXJhbWV0ZXI1KQotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhy
ZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDU+PigKLSAgICAgICAgJmNhbGxl
ZSwKLSAgICAgICAgbWV0aG9kLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQ
MT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVy
PFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3Bp
ZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENv
cGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFk
Q29waWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5
cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVu
YW1lIFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDY+Ci1zdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYg
Y2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBN
UDYpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIy
LAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAot
ICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBN
UDIsIE1QMywgTVA0LCBNUDUsIE1QNj4+KAotICAgICAgICAmY2FsbGVlLAotICAgICAgICBtZXRo
b2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0
ZXIxKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFt
ZXRlcjIpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFy
YW1ldGVyMyksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShw
YXJhbWV0ZXI0KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5
KHBhcmFtZXRlcjUpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNj46OmNv
cHkocGFyYW1ldGVyNikpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5h
bWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUg
TVA3Pgotc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAz
LCBNUDQsIE1QNSwgTVA2LCBNUDcpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNv
bnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0
IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2
JiBwYXJhbWV0ZXI2LAotICAgIGNvbnN0IFA3JiBwYXJhbWV0ZXI3KQotewotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0
LCBNUDUsIE1QNiwgTVA3Pj4oCi0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAg
ICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
Ci0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIz
KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRl
cjQpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1l
dGVyNSksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA2Pjo6Y29weShwYXJh
bWV0ZXI2KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpjb3B5KHBh
cmFtZXRlcjcpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVu
YW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1l
IE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1Q
NSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNywg
dHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KLXN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRh
c2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6
Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3LCBNUDgpLAotICAgIGNv
bnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0
IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1
JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LAotICAgIGNvbnN0IFA3JiBw
YXJhbWV0ZXI3LAotICAgIGNvbnN0IFA4JiBwYXJhbWV0ZXI4KQotewotICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDUsIE1QNiwgTVA3LCBNUDg+PigKLSAgICAgICAgJmNhbGxlZSwKLSAgICAgICAgbWV0aG9kLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSks
Ci0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIy
KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRl
cjMpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1l
dGVyNCksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA1Pjo6Y29weShwYXJh
bWV0ZXI1KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBh
cmFtZXRlcjYpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNz46OmNvcHko
cGFyYW1ldGVyNyksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA4Pjo6Y29w
eShwYXJhbWV0ZXI4KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IENyb3NzVGhyZWFkVGFza19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
ZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2Vi
Q29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjFhODZjYjEzNmRkMzEwMDY4
NzY0YzExNGRkYmVmNjIzNGM0OWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvcmVDcm9zc1RocmVhZENvcGllci5oIgor
CisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSAiVGhyZWFkU2FmZURhdGFCdWZmZXIu
aCIKKworbmFtZXNwYWNlIFdURiB7CisKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFs
c2UsIFdlYkNvcmU6OlNlc3Npb25JRD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNl
LCBmYWxzZSwgV2ViQ29yZTo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9u
SUQmIHNlc3Npb25JRCkKK3sKKyAgICByZXR1cm4gc2Vzc2lvbklEOworfQorCitDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj46
OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2ViQ29yZTo6VGhyZWFk
U2FmZURhdGFCdWZmZXI+Ojpjb3B5KGNvbnN0IFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVmZmVy
JiBidWZmZXIpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVmZmVyKGJ1
ZmZlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTNiOWJjMTE4
MmJlNzRlZWE0M2RmZWI0OGU3Njk5YjU2NWIzMDg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1LCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZXNzaW9uSUQ7Citj
bGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgV2ViQ29yZTo6U2Vzc2lvbklEIFR5cGU7CisgICAg
c3RhdGljIFR5cGUgY29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKK307CisKK3RlbXBs
YXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlRocmVhZFNhZmVEYXRhQnVmZmVyPiB7CisgICAgdHlwZWRlZiBXZWJDb3JlOjpUaHJlYWRTYWZl
RGF0YUJ1ZmZlciBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgV2ViQ29yZTo6VGhy
ZWFkU2FmZURhdGFCdWZmZXImKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAppbmRleCBi
MzI4YmExNzE1MDQxMGY1M2Y3NzE2NjkyMDg1MTRiNmE3NzQ2ZjY3Li5iOGZkNmE3OWU5YTU3ZGIy
ZTdjZDJkOGVlNDdhMTU3NGZmYzVmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaApAQCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgQ0ZFcnJvclJlZiBjZkVycm9yKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgb3BlcmF0b3IgQ0ZFcnJvclJlZigpIGNvbnN0OwogCisgICAgUmVzb3VyY2VF
cnJvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiBjb3B5KCk7IH0KKwogI2lmIFVTRShD
Rk5FVFdPUkspCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIFJlc291cmNlRXJyb3IoY29uc3QgU3Ry
aW5nJiBkb21haW4sIGludCBlcnJvckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3Qg
U3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbiwgQ0ZEYXRhUmVmIGNlcnRpZmljYXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dC5oCmluZGV4IDZjOTIwMmIwODdjYWI5YjVhZjNkYjE2OWYwNThkNDVmMTk5YWFhOTIuLmMzMGY0
YTExMmUyNWJkNzQ2YTc0ZmM0NGE3MTEzN2M0ZWU1Njc3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMjQsOCAr
MjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJlc291cmNlUmVxdWVzdF9o
Ci0jZGVmaW5lIFJlc291cmNlUmVxdWVzdF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdEJhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC04Miw2
ICs4MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogI2VuZGlmCiAKKyAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuICpSZXNvdXJj
ZVJlcXVlc3Q6OmFkb3B0KGNvcHlEYXRhKCkpOyB9CisKICAgICAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkUHJvcGVydGllcyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE2Miw1ICsxNjMsMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gUmVzb3VyY2VSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgKaW5kZXggYzhlNDY2NWJmOTFkNjQ5ZWMwMDBl
YmMwN2M1MGVmZGVmMzk5OWNkMC4uYTBmN2QyZGRlMTA1ODJmN2UxYWVlNjJmY2Y4NzlhMDliODk3
Yjk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlc3BvbnNlLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKLSNpZm5kZWYgUmVzb3VyY2VSZXNwb25zZV9oCi0jZGVmaW5lIFJlc291cmNlUmVzcG9uc2Vf
aAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlQmFzZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTczLDYgKzcyLDggQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKKyAgICBSZXNvdXJjZVJlc3BvbnNlIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0
dXJuICpSZXNvdXJjZVJlc3BvbnNlOjphZG9wdChjb3B5RGF0YSgpKTsgfQorCiAgICAgdW5zaWdu
ZWQgbWVtb3J5VXNhZ2UoKSBjb25zdAogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgc29t
ZSBwcm9ncmFtbWF0aWMgbGlnaHdlaWdodCB3YXkgdG8gY2FsY3VsYXRlIFJlc291cmNlUmVzcG9u
c2UgYW5kIGFzc29jaWF0ZWQgY2xhc3Nlcy4KQEAgLTEyNCw1ICsxMjUsMyBAQCBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhQgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
UmVzb3VyY2VSZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGI0ZDIzOGE5MjRlZjdl
MjA3NTVmNDVhMTVjNjM5YmNiOWQyMWFlN2MuLjNhNzQ5N2RlNmFmOTYwZTg0MDk1MjhmNDQzMjli
YWVkMjI5YTNiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0yNTksNyArMjU5LDYgQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwCiAgICAg
U2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCiAgICAgU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKLSAgICBTaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAg
U2hhcmVkL1dlYkV2ZW50LmNwcAogICAgIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCiAg
ICAgU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4IGJlZWI4YTg5MDgw
ZTM2NzViYTQ5NTZmYmMzYjk4YTM3NzkzMThmZTkuLjk5ODA3MGYwYjRmZjE0MWE4NDY1NmU3OWFi
OTAyZjQ0YzU5M2ZlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDcm9zc1RocmVhZENvcGllci5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1RocmVhZFRh
c2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRh
c2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAppbmRleCA3MWUxZWQwMzIxZjQ0Mjg1NTk3ZGFjYjkzMDU2MWUxMjUzNTNiMjI4Li5mMGJi
OTdjNjg5NzA1OTgwNmRhYzhhMzFjM2QxYjY5MWQ2ODkxMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC0yMyw4ICsyMyw3IEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBEYXRh
YmFzZVByb2Nlc3NfaAotI2RlZmluZSBEYXRhYmFzZVByb2Nlc3NfaAorI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIApAQCAtMzMsMTAgKzMyLDEwIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9JREJCYWNraW5nU3RvcmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQlNl
cnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5pcXVlSURCRGF0YWJhc2UuaD4KKyNpbmNsdWRl
IDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENyb3NzVGhyZWFkVGFzazsKIGNsYXNzIFNl
c3Npb25JRDsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiB9CkBAIC02OSw3ICs2OCw3IEBA
IHB1YmxpYzoKIAogICAgIFdvcmtRdWV1ZSYgcXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgp
OyB9CiAKLSAgICB2b2lkIHBvc3REYXRhYmFzZVRhc2soc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkNyb3NzVGhyZWFkVGFzaz4pOworICAgIHZvaWQgcG9zdERhdGFiYXNlVGFzayhzdGQ6OnVuaXF1
ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPik7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICAvLyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZUZpbGVIYW5kbGVyCkBA
IC0xMjcsMTIgKzEyNiwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
U2FuZGJveEV4dGVuc2lvbj4+IG1fYmxvYlRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9uczsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5Jik+PiBtX3NhbmRib3hFeHRlbnNpb25Gb3JCbG9ic0NvbXBs
ZXRpb25IYW5kbGVyczsKIAotICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDcm9z
c1RocmVhZFRhc2s+PiBtX2RhdGFiYXNlVGFza3M7CisgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkVGFzaz4+IG1fZGF0YWJhc2VUYXNrczsKICAgICBMb2NrIG1fZGF0YWJhc2VU
YXNrTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShEQVRBQkFTRV9QUk9DRVNTKQotCi0jZW5kaWYgLy8gRGF0YWJhc2VQcm9jZXNzX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDE3OGZlN2E5Nzk4Yjk0YTNkOTY0NzljMDZjZjdmNDA0MTFj
MzliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJDcm9zc1RocmVhZENvcGllci5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL0lEQktleURhdGEuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WZWN0b3I8Y2hhcj4gQ3Jvc3NUaHJlYWRD
b3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPGNoYXI+Pjo6Y29weShjb25zdCBWZWN0b3I8
Y2hhcj4mIHZlY3RvcikKLXsKLSAgICBWZWN0b3I8Y2hhcj4gcmVzdWx0OwotICAgIHJlc3VsdC5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZlY3Rvci5zaXplKCkpOwotICAgIHJlc3VsdC5hcHBlbmRW
ZWN0b3IodmVjdG9yKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1WZWN0b3I8aW50NjRfdD4g
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPGludDY0X3Q+Pjo6Y29w
eShjb25zdCBWZWN0b3I8aW50NjRfdD4mIHZlY3RvcikKLXsKLSAgICBWZWN0b3I8aW50NjRfdD4g
cmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZlY3Rvci5zaXplKCkp
OwotICAgIHJlc3VsdC5hcHBlbmRWZWN0b3IodmVjdG9yKTsKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1WZWN0b3I8dWludDhfdD4gQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwg
VmVjdG9yPHVpbnQ4X3Q+Pjo6Y29weShjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlY3RvcikKLXsK
LSAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHZlY3Rvci5zaXplKCkpOwotICAgIHJlc3VsdC5hcHBlbmRWZWN0b3IodmVjdG9yKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1BU0NJSUxpdGVyYWwgQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlPGZhbHNlLCBmYWxzZSwgQVNDSUlMaXRlcmFsPjo6Y29weShjb25zdCBBU0NJSUxpdGVyYWwm
IGxpdGVyYWwpCi17Ci0gICAgcmV0dXJuIGxpdGVyYWw7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDdmYjE0NDk3ODlhYTQ3MTI0NzEwYTljYTYzNDkxZTYwYTRlOTY5Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkNyb3NzVGhyZWFkQ29waWVyX2gKLSNkZWZpbmUg
V2ViQ3Jvc3NUaHJlYWRDb3BpZXJfaAotCi0jaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1RocmVhZENv
cGllci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWVudW0gY2xhc3MgTGVnYWN5VW5pcXVlSURCRGF0
YWJhc2VTaHV0ZG93blR5cGU7Ci19Ci0KLW5hbWVzcGFjZSBXVEYgewotY2xhc3MgQVNDSUlMaXRl
cmFsOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENyb3Nz
VGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYktpdDo6TGVnYWN5VW5pcXVlSURCRGF0
YWJhc2VTaHV0ZG93blR5cGU+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpMZWdhY3lVbmlxdWVJREJE
YXRhYmFzZVNodXRkb3duVHlwZSBjb3B5KGNvbnN0IFdlYktpdDo6TGVnYWN5VW5pcXVlSURCRGF0
YWJhc2VTaHV0ZG93blR5cGUmIHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gdHlwZTsKLSAg
ICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2Us
IGZhbHNlLCBWZWN0b3I8Y2hhcj4+IHsKLSAgICBzdGF0aWMgVmVjdG9yPGNoYXI+IGNvcHkoY29u
c3QgVmVjdG9yPGNoYXI+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8aW50NjRfdD4+IHsKLSAgICBzdGF0aWMgVmVj
dG9yPGludDY0X3Q+IGNvcHkoY29uc3QgVmVjdG9yPGludDY0X3Q+Jik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8dWlu
dDhfdD4+IHsKLSAgICBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvcHkoY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIGZhbHNlLCBXVEY6OkFTQ0lJTGl0ZXJhbD4gewotICAgIHN0YXRpYyBXVEY6OkFTQ0lJ
TGl0ZXJhbCBjb3B5KGNvbnN0IFdURjo6QVNDSUlMaXRlcmFsJik7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSNlbmRp
ZiAvLyBXZWJDcm9zc1RocmVhZENvcGllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWNlZmExMWY0NWI1ZGU1YTc1MzM0MzI2
YWJjYzliMWE1YzE2MTNiMS4uMjllODdjMmU1M2FkYjM4ZWM5ZjAzNGE4MDNkNDVhZjY4ZDljYmMw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTI5LDcgKzkyOSw2IEBACiAJCTUxNUU3NzJCMTg0MDA4QjkwMDA3MjAzRiAvKiBE
YXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1RTc3MjkxODQwMDhCOTAwMDcyMDNGIC8qIERh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi87IH07CiAJCTUxNUU3NzJDMTg0
MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNUU3NzJBMTg0MDA4
QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsK
IAkJNTE2MEJGRTExMzM4MURGOTAwOTE4OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MEJGRTAxMzM4MURG
OTAwOTE4OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9uLm1tICovOyB9OwotCQk1MTYzMTE4NzE4NTg0
NDY2MDA1MzQ2NDcgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjMxMTg2MTg1ODQ0NjYwMDUzNDY0NyAvKiBX
ZWJDcm9zc1RocmVhZENvcGllci5oICovOyB9OwogCQk1MTYzMTk5MjE2Mjg5ODBBMDBFMjJGMDAg
LyogTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjMxOTkxMTYyODk4MEEwMEUyMkYwMCAvKiBOZXR3b3JrUHJv
Y2Vzc1Byb3h5TWFjLm1tICovOyB9OwogCQk1MTYzMTk5NDE2Mjg5QTYwMDBFMjJGMDAgLyogTmV0
d29ya1Byb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQ0M5MzQxNjI4MDY0ODAwMzQyNTUwIC8qIE5ldHdvcmtQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE2MzE5OTUxNjI4OUE2MzAwRTIy
RjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUNDOTM1MTYyODA2NDgwMDM0MjU1MCAvKiBOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CkBAIC05NzIsNyArOTcxLDYgQEAKIAkJNTFBQ0JCQTEx
MjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFDQkI5RjEyN0E4RjJDMDBEMjAz
QjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSAqLzsgfTsKIAkJNTFCMTVBODQxMzg0M0Ez
OTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjE1QTgyMTM4NDNBMzkwMDMyMUFEOCAvKiBF
bnZpcm9ubWVudFV0aWxpdGllcy5jcHAgKi87IH07CiAJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFE
OCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFCMTVBODMxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50
VXRpbGl0aWVzLmggKi87IH07Ci0JCTUxQkEyNDQ2MTg1OEY1NUQwMEVBMjgxMSAvKiBXZWJDcm9z
c1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUJBMjQ0NTE4NThGNDE1MDBFQTI4MTEgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwICovOyB9OwogCQk1MUNEMUM1RDFCMzQ5M0FGMDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdp
blJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUNEMUM1OTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5jcHAgKi87IH07
CiAJCTUxQ0QxQzVFMUIzNDkzQjQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luUmVmLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUNEMUM1QTFCMzQ5
M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQ0QxQzY1MUIzNEI5RDQwMDE0MkNBNSAv
KiBXS1NlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUNEMUM1RjFCMzRCOUM5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAgLTI5NTMs
NyArMjk1MSw2IEBACiAJCTUxNUU3NzI5MTg0MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE1RTc3MkExODQwMDhCOTAwMDcyMDNGIC8qIERhdGFiYXNlUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE2MEJGRTAxMzM4MURGOTAwOTE4OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9u
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9nZ2luZ0ZvdW5k
YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNjMxMTg2MTg1ODQ0NjYw
MDUzNDY0NyAvKiBXZWJDcm9zc1RocmVhZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDcm9zc1RocmVhZENvcGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTYzMTk5MTE2Mjg5ODBBMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NQcm94eU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtQcm9j
ZXNzUHJveHlNYWMubW07IHBhdGggPSBtYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NEMwOTQxQjA1Qjc1NzAwNEYxMDJBIC8qIENo
aWxkUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGlsZFByb2Nl
c3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNkE0QTVCMTIw
QTJDQ0QwMEMwNUI3RiAvKiBBUElFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBUElFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAwMSw3ICsy
OTk4LDYgQEAKIAkJNTFBQ0M5MzUxNjI4MDY0ODAwMzQyNTUwIC8qIE5ldHdvcmtQcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxNUE4MjEzODQzQTM5
MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwOyBwYXRoID0gdW5peC9F
bnZpcm9ubWVudFV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
QjE1QTgzMTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFbnZpcm9ubWVudFV0aWxpdGllcy5oOyBwYXRoID0g
dW5peC9FbnZpcm9ubWVudFV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1MUJBMjQ0NTE4NThGNDE1MDBFQTI4MTEgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUNEMUM1OTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9y
aWdpblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1NlY3Vy
aXR5T3JpZ2luUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDRDFDNUEx
QjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpblJlZi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUNEMUM1RjFCMzRCOUM5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdp
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTI1LDggKzQ1MjEsNiBAQAogCQkJCTUx
MEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi8sCiAJ
CQkJOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAg
Ki8sCiAJCQkJQkMxREQ3QjExMTREQzM5NjAwNUFEQUYzIC8qIFdlYkNvcmVBcmd1bWVudENvZGVy
cy5oICovLAotCQkJCTUxQkEyNDQ1MTg1OEY0MTUwMEVBMjgxMSAvKiBXZWJDcm9zc1RocmVhZENv
cGllci5jcHAgKi8sCi0JCQkJNTE2MzExODYxODU4NDQ2NjAwNTM0NjQ3IC8qIFdlYkNyb3NzVGhy
ZWFkQ29waWVyLmggKi8sCiAJCQkJQzAzMzdEQUQxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50
LmNwcCAqLywKIAkJCQlCQzAzMkRBRjEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCAqLywK
IAkJCQlCQzAzMkRCMDEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCAq
LywKQEAgLTc3MDQsNyArNzY5OCw2IEBACiAJCQkJMzMwOTM0NEExMzE1QjkyMjAwOTdBN0JDIC8q
IFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFE
RDdCMjExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTJGNTg5QjEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE2MzExODcxODU4NDQ2NjAwNTM0NjQ3IC8qIFdlYkNyb3NzVGhy
ZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4M0Y2RDFBNUI2M0ZGMDAwMjZFQzYg
LyogV2ViRGF0YWJhc2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxOUEyNkUxQTEz
RTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTVCMUM1NTE4OTg3RURGMDA0RkNGOUIgLyogV2ViRG9jdW1lbnRMb2FkZXIuaCBp
biBIZWFkZXJzICovLApAQCAtOTE4OSw3ICs5MTgyLDYgQEAKIAkJCQk5MzlBRTc2NjEzMTZFOTlD
MDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRTIzMjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1MTJGNTg5QTEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVu
dGlhbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUJBMjQ0NjE4NThGNTVEMDBFQTI4MTEgLyog
V2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBODNGNkMxQTVC
NjNGRjAwMDI2RUM2IC8qIFdlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNUIxQzU0MTg5ODdFREYwMDRGQ0Y5QiAvKiBXZWJE
b2N1bWVudExvYWRlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280113</attachid>
            <date>2016-05-30 14:47:41 -0700</date>
            <delta_ts>2016-05-30 20:34:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158207-20160530144856.patch</filename>
            <type>text/plain</type>
            <size>93601</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4OGJlZDA5Zjc1NTZhMTdlODFmOGZj
ZTJjYjQ4NTU4YTQxODA5M2IuLjk0ZTUxMzhkNTIwMDhkMjNhOWM5ZGQ4MmUwNGZlZjQ5MDg0MGJj
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMDUtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgQ3Jvc3NUaHJlYWRDb3BpZXIvQ3Jvc3NUaHJl
YWRUYXNrIHRvIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODIwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NN
YWtlTGlzdHMudHh0OgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcC4K
KyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmguCisgICAgICAgIChXVEY6OkNyb3Nz
VGhyZWFkQ29waWVyUGFzc1Rocm91Z2g6OmNvcHkpOgorICAgICAgICAKKyAgICAgICAgKiB3dGYv
Q3Jvc3NUaHJlYWRUYXNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZFRhc2suaC4KKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrOjpDcm9zc1Ro
cmVhZFRhc2spOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2s6OnBlcmZvcm1UYXNrKToK
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKToKKwogMjAxNi0wNS0yOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFRlbXBsYXRpemUgTm9uY29w
eWFibGVGdW5jdGlvbiBjbGFzcyBzaW1pbGFybHkgdG8gc3RkOjpmdW5jdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGJjZDAxYjMxZjBlMzZhMWViOGFjNjY1YTZkYjExNmZlYTZiNzUwZGIuLmYwOTBkY2JkYzcx
Zjc2NTI4MzFjY2U4MzU2ZDRlMzJmODVhMzEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBA
QAorMjAxNi0wNS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTW92ZSBDcm9zc1RocmVhZENvcGllci9Dcm9zc1RocmVhZFRhc2sgdG8gV1RGLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChS
ZWZhY3Rvciwgbm8gYmVoYXZpb3IgY2hhbmdlKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
CisgICAgICAgICogcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcDogQWRkZWQu
CisgICAgICAgIChXVEY6OldlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkpOgorICAgICAgICAoV1RG
OjpXZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj46OmNvcHkpOgorICAgICAgICAqIHBsYXRm
b3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oOiBBZGRlZC4KKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yOjppc29sYXRlZENvcHkpOgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6Omlzb2xhdGVkQ29weSk6CisKIDIwMTYtMDUtMzAgIEphdmllciBGZXJuYW5k
ZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBCb3ggQWxpZ25tZW50
XSBOZXcgQ1NTIFZhbHVlICdub3JtYWwnIGZvciBTZWxmIEFsaWdubWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGEzY2Y5NDc0Y2EzYTYyZGNkODZiODFjNWFlNjhkN2E2Zjk0MjZkOTEuLjUxMjJhZDc0YjZmNWRi
NmZiNmY3NGY3OWJiZmJlM2RmZjgxYjdhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNi0wNS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBDcm9zc1RocmVhZENvcGllci9Dcm9zc1RocmVhZFRhc2sgdG8gV1RGLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6CisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDcm9zc1RocmVh
ZENvcGllci5oOiBSZW1vdmVkLgorCiAyMDE2LTA1LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVtcGxhdGl6ZSBOb25jb3B5YWJsZUZ1bmN0aW9uIGNsYXNz
IHNpbWlsYXJseSB0byBzdGQ6OmZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMWZiYTE3ZDgwM2Q4ZGMwNWRkOWY1ZDRiYTljOTkwNjFkNzMxMDdm
Li5kODI2ODgxNDExYzRjMjMxM2Q0MzQ2Mjg1ZWZmODU2YzE2Y2E4NDQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMSw2ICsxMDEsOSBAQAogCQkyQ0RF
RDBGNDE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxv
b3AuaCAqLzsgfTsKIAkJNDMwQjQ3ODkxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMwQjQ3ODcx
QUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oICovOyB9OwogCQk1MTNFMTcwQjFDRDdE
NUJGMDBFMzY1MEIgLyogTG9nZ2luZ0FjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNFMTcwQTFDRDdENUJGMDBFMzY1MEIgLyogTG9n
Z2luZ0FjY3VtdWxhdG9yLmggKi87IH07CisJCTUxNUY3OTRFMUNGQzlGNEEwMENDRUQ5MyAvKiBD
cm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwICovOyB9OworCQk1MTVGNzk0RjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNUY3
OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyB9OworCQk1MTVG
Nzk1MDFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVGNzk0RDFDRkM5RjRBMDBDQ0VEOTMg
LyogQ3Jvc3NUaHJlYWRUYXNrLmggKi87IH07CiAJCTU1MzA3MUNBMUM0MDQyNzIwMDM4NDg5OCAv
KiBUaW55TFJVQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1MzA3MUM5MUM0MDQyNzIwMDM4NDg5OCAvKiBUaW55TFJVQ2FjaGUuaCAqLzsgfTsK
IAkJNzBBOTkzRkUxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lzdHJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwQTk5M0ZDMUFENzE1MTMw
MEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5jcHAgKi87IH07CiAJCTcwQTk5M0ZGMUFENzE1MTMw
MEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzBBOTkzRkQxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lz
dHJ5LmggKi87IH07CkBAIC00MjAsNiArNDIzLDkgQEAKIAkJMkNERUQwRjIxODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9v
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzBCNDc4NzFBQUFBQzFBMDAxMjIz
REEgLyogU3RyaW5nQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmluZ0NvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTNFMTcwQTFDRDdE
NUJGMDBFMzY1MEIgLyogTG9nZ2luZ0FjY3VtdWxhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dpbmdBY2N1bXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTVGNzk0QzFDRkM5RjRBMDBDQ0VE
OTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE1
Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUzMDcxQzkxQzQwNDI3MjAwMzg0ODk4IC8qIFRpbnlMUlVDYWNoZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW55TFJVQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5h
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZl
LmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXVEYuYTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUQyNDdCNkUxNDY4OUM0NzAwRTc4Qjc2IC8qIEJhc2Uu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTc5Nyw2ICs4MDMsOSBAQAogCQkJCTBGOEYyQjkwMTcyRTAwRjAwMDdEQkRB
NSAvKiBDb21waWxhdGlvblRocmVhZC5oICovLAogCQkJCUE4QTQ3MjcwMTUxQTgyNUEwMDQxMjNG
RiAvKiBDb21waWxlci5oICovLAogCQkJCTBGREI2OThEMUI3QzY0M0EwMDBDMTA3OCAvKiBDb25k
aXRpb24uaCAqLywKKwkJCQk1MTVGNzk0QjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwICovLAorCQkJCTUxNUY3OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZENvcGllci5oICovLAorCQkJCTUxNUY3OTREMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVh
ZFRhc2suaCAqLywKIAkJCQlBOEE0NzI3MzE1MUE4MjVBMDA0MTIzRkYgLyogQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuY3BwICovLAogCQkJCUE4QTQ3Mjc0MTUxQTgyNUEwMDQxMjNGRiAv
KiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICovLAogCQkJCUUxNTU1NkYzMThBMEND
MTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCAqLywKQEAgLTEyNDcsNiAr
MTI1Niw3IEBACiAJCQkJMEZFMTY0NkIxQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0UzMTUxQTgyNUIwMDQxMjNGRiAvKiBMb2NrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0U2MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTVGNzk0RjFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjMzQzdEMTdEQUE2RTMwMEE5M0FDRiAvKiBN
YWxsb2NQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0U4MTUxQTgyNUIwMDQxMjNGRiAv
KiBNYXRoRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQTE1MUE4MjVCMDA0MTIz
RkYgLyogTUQ1LmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTQsNiArMTMwNCw3IEBACiAJCQkJODZG
NDZGNjExQTI4NDBFRTAwQ0NCRjIyIC8qIFJlZkNvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDFDMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDFFMTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxNUY3OTUwMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTA5OEIwMDFDMTY5RTA3MDAwODc3OTcgLyogU2FuZGJveFNQ
SS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTIxLDYgKzE1MzIsNyBAQAogCQkJCUE3NDg3NDUyMTdB
MEJEQUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4QTQ3NDI1MTUxQTgyNUIwMDQxMjNGRiAvKiBTaXplTGltaXRzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3NDI3MTUxQTgyNUIwMDQxMjNGRiAvKiBTdGFja0JvdW5kcy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0
YWNrU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0M0MxNTFBODI1QjAwNDEyM0ZG
IC8qIFN0cmluZ0J1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RkIxODI0MzVB
NjAwQTgyRTY5IC8qIFN0cmluZ0NGLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAppbmRleCBjODM5YTI2NjgxYmY3NzYyYzkyNDU4NWQwM2IxZmVkZWNmZjVhY2ZjLi44YmE4NjBl
MmQzMDRiMWU0ZWJhOTQwYTFjMTllNTNlMjY0NTI2YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApA
QCAtMTMsNiArMTMsOCBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBDb21waWxhdGlvblRocmVhZC5o
CiAgICAgQ29tcGlsZXIuaAogICAgIENvbmRpdGlvbi5oCisgICAgQ3Jvc3NUaHJlYWRDb3BpZXIu
aAorICAgIENyb3NzVGhyZWFkVGFzay5oCiAgICAgQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5oCiAg
ICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKQEAg
LTE1OSw2ICsxNjEsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBBdG9taWNzLmNwcAogICAgIEJp
dFZlY3Rvci5jcHAKICAgICBDb21waWxhdGlvblRocmVhZC5jcHAKKyAgICBDcm9zc1RocmVhZENv
cGllci5jcHAKICAgICBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcAogICAgIENyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tTnVtYmVyLmNwcAogICAgIEN1cnJlbnRUaW1lLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dURi93dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5N2FkNzhjMWFhNmY2MWY2NmE5YTY4YjJk
ZWEwMzViMWUxM2U2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gVGVz
dCBDcm9zc1RocmVhZENvcGllciB1c2luZyBDT01QSUxFX0FTU0VSVC4KKworLy8gVmVyaWZ5IHRo
YXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQgb2JqZWN0cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCitj
bGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiB7Cit9OworCitDT01QSUxF
X0FTU0VSVCgoc3RkOjppc19zYW1lPAorICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENv
cGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sCisgICAgICAgICAgICAgICAgICAgIENyb3Nz
VGhyZWFkQ29waWVyPFBhc3NSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46
OlR5cGUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgUGFzc1Jl
ZlB0clRlc3QpOworQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKKyAgICAgICAgICAgICAg
ICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAorICAgICAg
ICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJl
ZkNvdW50ZWRUZXN0Pj46OlR5cGUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCisgICAgICAg
ICAgICAgICAgUmVmUHRyVGVzdCk7CitDT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAorICAg
ICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVz
dD4sCisgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPENvcGllclRocmVhZFNh
ZmVSZWZDb3VudGVkVGVzdCo+OjpUeXBlCisgICAgICAgICAgICAgICAgPjo6dmFsdWUpLAorICAg
ICAgICAgICAgICAgIFJhd1BvaW50ZXJUZXN0KTsKKworLy8gQWRkIHNwZWNpYWxpemF0aW9ucyBm
b3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxldCB1cyB2ZXJpZnkgdGhhdCBubyBvdGhl
ciB0ZW1wbGF0ZSBtYXRjaGVzLgordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0cjxUPj4geworICAgIHR5cGVkZWYgaW50
IFR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc1JlZlB0cjxUPj4geworICAgIHR5cGVkZWYgaW50IFR5
cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKKyAgICB0eXBlZGVmIGludCBUeXBlOworfTsKKworLy8g
VmVyaWZ5IHRoYXQgUmVmQ291bnRlZCBvYmplY3RzIG9ubHkgbWF0Y2ggdGhlIGFib3ZlIHRlbXBs
YXRlcyB3aGljaCBleHBvc2UgVHlwZSBhcyBpbnQuCitjbGFzcyBDb3BpZXJSZWZDb3VudGVkVGVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPENvcGllclJlZkNvdW50ZWRUZXN0PiB7Cit9OworCitzdGF0
aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGllcjxQYXNzUmVmUHRy
PENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksICJDcm9zc1RocmVhZENvcGll
ciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gUGFzc1JlZlB0cjw+IG9mIGEg
UmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOworc3RhdGlj
X2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NUaHJlYWRDb3BpZXI8UmVmUHRyPENvcGll
clJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksICJDcm9zc1RocmVhZENvcGllciBzcGVj
aWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gUmVmUHRyPD4gb2YgYSBSZWZDb3VudGVk
IChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0eXBlIik7CitzdGF0aWNfYXNzZXJ0KChz
dGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGllcjxDb3BpZXJSZWZDb3VudGVkVGVzdCo+
OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NUaHJlYWRDb3BpZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9w
ZXJseSBhcHBsaWVkIHRvIHJhdyBwb2ludGVyIG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJl
YWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9D
cm9zc1RocmVhZENvcGllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYzg2ZTU1MDVhMDA1NGQ1Yzc1NmVlODk0
MmU3NDc2YzI1MTEyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQsIDIwMTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2VIZWxw
ZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1vdmVQb2ludGVyIHsKKyAg
ICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUmVtb3ZlUG9pbnRlcjxUKj4geworICAgICAgICB0eXBlZGVmIFQgVHlwZTsKKyAgICB9
OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZVBvaW50ZXI8UmVmUHRy
PFQ+PiB7CisgICAgICAgIHR5cGVkZWYgVCBUeXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRlcjxQYXNzUmVmUHRyPFQ+PiB7CisgICAgICAg
IHR5cGVkZWYgVCBUeXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdlciB7CisgICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUgfHwgc3RkOjppc19lbnVtPFQ+
Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7Cisg
ICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1RocmVhZFNhZmVSZWZD
b3VudGVkUG9pbnRlciB7CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3RkOjpp
c19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7Cisg
ICAgfTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
clBhc3NUaHJvdWdoIHsKKyAgICB0eXBlZGVmIFQgVHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5
KGNvbnN0IFQmIHBhcmFtZXRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBwYXJhbWV0ZXI7Cisg
ICAgfQorfTsKKwordGVtcGxhdGU8Ym9vbCBpc0VudW1PckNvbnZlcnRpYmxlVG9JbnRlZ2VyLCBi
b29sIGlzVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U7CisKKy8vIEludGVnZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFu
eSBjaGFuZ2VzLgordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVy
QmFzZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3Vn
aDxUPiB7Cit9OworCisvLyBDbGFzc2VzIHRoYXQgaGF2ZSBhbiBpc29sYXRlZENvcHkoKSBtZXRo
b2QgZ2V0IGEgZGVmYXVsdCBzcGVjaWFsaXphdGlvbi4KK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUPiB7CisgICAgc3RhdGljIFQg
Y29weShjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZS5pc29sYXRl
ZENvcHkoKTsKKyAgICB9Cit9OworCisvLyBDdXN0b20gY29weSBtZXRob2RzLgordGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgdHJ1ZSwgVD4g
eworICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOjpSZW1v
dmVQb2ludGVyPFQ+OjpUeXBlIFJlZkNvdW50ZWRUeXBlOworICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19jb252ZXJ0aWJsZTxSZWZDb3VudGVkVHlwZSosIFRocmVhZFNhZmVSZWZDb3VudGVkPFJl
ZkNvdW50ZWRUeXBlPio+Ojp2YWx1ZSwgIlQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFRocmVhZFNh
ZmVSZWZDb3VudGVkISIpOworCisgICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNvdW50ZWRUeXBl
PiBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHJlZlB0cjsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50PiB7CisgICAgdHlwZWRlZiBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IFR5cGU7CisgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBUeXBlJiBzb3VyY2Up
CisgICAgeworICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KK307CisKK3RlbXBsYXRlPD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdURjo6QVNDSUlMaXRl
cmFsPiB7CisgICAgdHlwZWRlZiBXVEY6OkFTQ0lJTGl0ZXJhbCBUeXBlOworICAgIHN0YXRpYyBU
eXBlIGNvcHkoY29uc3QgVHlwZSYgc291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNvdXJj
ZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IENyb3NzVGhyZWFk
Q29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFzZTxDcm9zc1RocmVhZENvcGllckJh
c2VIZWxwZXI6OklzRW51bU9yQ29udmVydGlibGVUb0ludGVnZXI8VD46OnZhbHVlLCBDcm9zc1Ro
cmVhZENvcGllckJhc2VIZWxwZXI6OklzVGhyZWFkU2FmZVJlZkNvdW50ZWRQb2ludGVyPFQ+Ojp2
YWx1ZSwgVD4geworfTsKKworLy8gRGVmYXVsdCBzcGVjaWFsaXphdGlvbiBmb3IgVmVjdG9ycyBv
ZiBDcm9zc1RocmVhZENvcHlhYmxlIGNsYXNzZXMuCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPFQ+PiB7CisgICAg
dHlwZWRlZiBWZWN0b3I8VD4gVHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFR5cGUm
IHNvdXJjZSkKKyAgICB7CisgICAgICAgIFR5cGUgZGVzdGluYXRpb247CisgICAgICAgIGRlc3Rp
bmF0aW9uLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc291cmNlLnNpemUoKSk7CisgICAgICAgIGZv
ciAoYXV0byYgb2JqZWN0IDogc291cmNlKQorICAgICAgICAgICAgZGVzdGluYXRpb24udW5jaGVj
a2VkQXBwZW5kKENyb3NzVGhyZWFkQ29waWVyPFQ+Ojpjb3B5KG9iamVjdCkpOworICAgICAgICBy
ZXR1cm4gZGVzdGluYXRpb247CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOwordXNpbmcgV1RGOjpDcm9zc1Ro
cmVhZENvcGllckJhc2U7Cit1c2luZyBXVEY6OkNyb3NzVGhyZWFkQ29waWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9z
c1RocmVhZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWMyYWI5MDRlMmU0MGEyNzEzMTBmMmIxNzg3N2Ey
MGEyYTU1NDU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRU
YXNrLmgKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgorI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBDcm9z
c1RocmVhZFRhc2sgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyb3NzVGhyZWFkVGFzayk7
CitwdWJsaWM6CisgICAgQ3Jvc3NUaHJlYWRUYXNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAo
KT4mJiB0YXNrRnVuY3Rpb24pCisgICAgICAgIDogbV90YXNrRnVuY3Rpb24oV1RGTW92ZSh0YXNr
RnVuY3Rpb24pKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHRhc2tGdW5jdGlvbik7CisgICAgfQor
CisgICAgdm9pZCBwZXJmb3JtVGFzaygpCisgICAgeworICAgICAgICBtX3Rhc2tGdW5jdGlvbigp
OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIENyb3NzVGhyZWFkVGFzaygpIHsgfQorCisgICAg
Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiBtX3Rhc2tGdW5jdGlvbjsKK307CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitjbGFzcyBDcm9zc1RocmVh
ZFRhc2tJbXBsIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFzayB7CitwdWJsaWM6CisgICAg
Q3Jvc3NUaHJlYWRUYXNrSW1wbChUKiBjYWxsZWUsIHZvaWQgKFQ6OiptZXRob2QpKEFyZ3VtZW50
cy4uLiksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIG1fdGFza0Z1
bmN0aW9uID0gW2NhbGxlZSwgbWV0aG9kLCBhcmd1bWVudHMuLi5dIHsKKyAgICAgICAgICAgIChj
YWxsZWUtPiptZXRob2QpKGFyZ3VtZW50cy4uLik7CisgICAgICAgIH07CisgICAgfQorfTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KK2NsYXNzIENyb3NzVGhyZWFkVGFza1N0
YXRpY0ltcGwgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrIHsKK3B1YmxpYzoKKyAgICBD
cm9zc1RocmVhZFRhc2tTdGF0aWNJbXBsKHZvaWQgKCptZXRob2QpKEFyZ3VtZW50cy4uLiksIEFy
Z3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIG1fdGFza0Z1bmN0aW9uID0g
W21ldGhvZCwgYXJndW1lbnRzLi4uXSB7CisgICAgICAgICAgICBtZXRob2QoYXJndW1lbnRzLi4u
KTsKKyAgICAgICAgfTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQm
IGNhbGxlZSwKKyAgICB2b2lkIChUOjoqbWV0aG9kKSgpKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VD4+KCZjYWxsZWUsIG1ldGhvZCk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDE+CitzdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCisgICAgVCYg
Y2FsbGVlLAorICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSksCisgICAgY29uc3QgUDEmIHBhcmFt
ZXRlcjEpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrSW1w
bDxULCBNUDE+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAorICAgICAgICBX
VEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0
eXBlbmFtZSBNUDI+CitzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9z
c1RocmVhZFRhc2soCisgICAgVCYgY2FsbGVlLAorICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwg
TVAyKSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVy
MikKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQs
IE1QMSwgTVAyPj4oCisgICAgICAgICZjYWxsZWUsCisgICAgICAgIG1ldGhvZCwKKyAgICAgICAg
V1RGOjpDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCisgICAgICAgIFdU
Rjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpKTsKKworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgorc3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQmIGNhbGxlZSwK
KyAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzKSwKKyAgICBjb25zdCBQMSYgcGFy
YW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1l
dGVyMykKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBs
PFQsIE1QMSwgTVAyLCBNUDM+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1l
IE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMz4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICB2b2lkICgqbWV0aG9kKShNUDEs
IE1QMiwgTVAzKSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFy
YW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMykKK3sKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tTdGF0aWNJbXBsPE1QMSwgTVAyLCBNUDM+PigKKyAg
ICAgICAgbWV0aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShw
YXJhbWV0ZXIxKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFy
YW1ldGVyMiksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFt
ZXRlcjMpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1Q
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QND4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVh
ZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9pZCAo
VDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0KSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVy
MSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywK
KyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyLCBNUDMsIE1QND4+KAorICAgICAgICAm
Y2FsbGVlLAorICAgICAgICBtZXRob2QsCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8
UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMz46
OmNvcHkocGFyYW1ldGVyMyksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpj
b3B5KHBhcmFtZXRlcjQpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5
cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIE1QNT4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIs
IE1QMywgTVA0LCBNUDUpLAorICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAorICAgIGNvbnN0IFAy
JiBwYXJhbWV0ZXIyLAorICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAorICAgIGNvbnN0IFA0JiBw
YXJhbWV0ZXI0LAorICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1KQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDU+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAorICAgICAgICBXVEY6OkNy
b3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKKyAgICAgICAgV1RGOjpDcm9z
c1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisgICAgICAgIFdURjo6Q3Jvc3NU
aHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAorICAgICAgICBXVEY6OkNyb3NzVGhy
ZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVh
ZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0
eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBl
bmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2Pgorc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAorICAgIFQm
IGNhbGxlZSwKKyAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwg
TVA2KSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVy
MiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKKyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwK
KyAgICBjb25zdCBQNSYgcGFyYW1ldGVyNSwKKyAgICBjb25zdCBQNiYgcGFyYW1ldGVyNikKK3sK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwg
TVAyLCBNUDMsIE1QNCwgTVA1LCBNUDY+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0
aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIx
KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
CisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUg
UDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQs
IHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5
cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNz4KK3N0ZDo6dW5pcXVlX3B0cjxD
cm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisg
ICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3KSwK
KyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAg
ICBjb25zdCBQMyYgcGFyYW1ldGVyMywKKyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKKyAgICBj
b25zdCBQNSYgcGFyYW1ldGVyNSwKKyAgICBjb25zdCBQNiYgcGFyYW1ldGVyNiwKKyAgICBjb25z
dCBQNyYgcGFyYW1ldGVyNykKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1Ro
cmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNz4+KAorICAg
ICAgICAmY2FsbGVlLAorICAgICAgICBtZXRob2QsCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRD
b3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29w
aWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGll
cjxQMz46OmNvcHkocGFyYW1ldGVyMyksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8
UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA1
Pjo6Y29weShwYXJhbWV0ZXI1KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNj46
OmNvcHkocGFyYW1ldGVyNiksCisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpj
b3B5KHBhcmFtZXRlcjcpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5
cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1l
IE1QNywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KK3N0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKKyAgICBUJiBjYWxsZWUsCisgICAgdm9p
ZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3LCBNUDgpLAor
ICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAorICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAorICAg
IGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAorICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAorICAgIGNv
bnN0IFA1JiBwYXJhbWV0ZXI1LAorICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LAorICAgIGNvbnN0
IFA3JiBwYXJhbWV0ZXI3LAorICAgIGNvbnN0IFA4JiBwYXJhbWV0ZXI4KQoreworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywg
TVA0LCBNUDUsIE1QNiwgTVA3LCBNUDg+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0
aG9kLAorICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIx
KSwKKyAgICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
CisgICAgICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAor
ICAgICAgICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAg
ICAgICAgV1RGOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksCisgICAg
ICAgIFdURjo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpLAorICAgICAg
ICBXVEY6OkNyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJhbWV0ZXI3KSwKKyAgICAgICAg
V1RGOjpDcm9zc1RocmVhZENvcGllcjxQOD46OmNvcHkocGFyYW1ldGVyOCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpDcm9zc1RocmVhZFRhc2s7Cit1c2luZyBXVEY6
OmNyZWF0ZUNyb3NzVGhyZWFkVGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDdjYjMyYjcy
NmU0YjM3MzdiYzQ1NTc4MmQyZjlkMjBhZDIxNTUxNS4uZTllYWY4ODFlMThkZmY2YjIwYmY1ODcx
NWNkMjEwYmJhYTQ2OWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwOTcsNyArMjA5Nyw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAKICAg
ICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
Y3BwCi0gICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAgcGxhdGZvcm0vQ3Vy
c29yLmNwcAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcAogICAgIHBsYXRmb3JtL0Rl
Y2ltYWwuY3BwCkBAIC0yMTQyLDYgKzIxNDEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vVVJMLmNwcAogICAgIHBsYXRmb3JtL1VVSUQuY3BwCiAgICAgcGxhdGZvcm0vVXNl
ckFjdGl2aXR5LmNwcAorICAgIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAK
ICAgICBwbGF0Zm9ybS9XaWRnZXQuY3BwCiAKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3QuaAppbmRleCA0ZWQ4YjJmYTIwMGJmMmQzMTliYTllYmI4MDhjZWNmYzM4
MzA2MWMxLi44NDJkY2U0MTg4OWNkMjczNTgzYjk3NDJmYjNjODg4YjU1Y2Y1YWFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmpl
Y3QuaApAQCAtMjYsOCArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVlLmNwcAppbmRl
eCA2ZWExYzI0NmI3ZDA2MTA0YTAwMGMwNjliNTU1MDdlNjMzYjNkMDg4Li5kODI0NzA3Yzk1YTQ1
M2UwM2Y4NDE4YTM0NDljMzJiMDg0YmEyZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVmFsdWUuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIkNyb3NzVGhyZWFkQ29waWVyLmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFk
VGFzay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApp
bmRleCA4OWQyNzE2ZGRjNWEwMTJlY2Q0Y2QwZjBlMDQ5MTAzYmQ3NzI2ZDkwLi44ZmY2YTY2MDRj
YmFiODc4ODM1NzA5NGRmMDRkZDliOTE0MzhjMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
CkBAIC0yNywxMSArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0j
aW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVHJh
bnNhY3Rpb25PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cAppbmRleCA0NTc5ZGQ4ZjZiNjMxYTgyMDBlMGQzOGI0NWNmOTg0YTFhZTBmY2RkLi4zZGUxZWYy
OTEyNDNiMTA0YTkwMWVkYmQ1NDY2YTkzMzI3Njc2M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJDcm9z
c1RocmVhZENvcGllci5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAi
SURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTM2LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDgzMjA5ZTRkYjY3ZTcyY2ZiNTA1ZTVlMGZjOWUw
OTkzZWE0MWQyYmUuLjA3NzBjMWMwM2Y2YzcyZTc4ODdiZGEzMzgxNjc4ZTFiMGJhZDgyOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmgKQEAgLTI3LDExICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKLSNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJJREJDb25uZWN0aW9u
VG9DbGllbnQuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJVbmlxdWVJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VR
dWV1ZS5oPgpAQCAtNDEsNyArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IENyb3NzVGhyZWFkVGFzazsKIGNsYXNzIElEQkN1cnNvckluZm87CiBjbGFzcyBJREJSZXF1ZXN0
RGF0YTsKIGNsYXNzIElEQlZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCAwMTFkNjRm
MDQ1M2QwNmRlN2I3MmViNDU2YzAxMTdhYmFiNzkzYWExLi5lOTcwMjU2NzIwM2Q0NzJiN2I5M2Zi
ZmZlMjIwYzhkZDdmNDA0MDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMjcsNyArMjcs
NiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJDcm9zc1Ro
cmVhZFRhc2suaCIKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJC
aW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCkBA
IC0zOCw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZjI5YTQ0YjQyM2Y0ZmJhZmRlYTI5OTI3ZjA4YzZmMGMwMGJiZjYyMi4u
NDU3ZjY4MTQ2NGYzYjBiZjliMTdkYmE1ZDVlNGNmYWFmOTZkNTQ0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1MSw4ICsx
MjUxLDYgQEAKIAkJMkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjQxMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTQwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTQzNDY0MjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmNwcCAqLzsgfTsK
IAkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlclRocmVhZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTJFNDM0NjU4MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9Owot
CQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU3MEY1NDZBOTkw
MEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFNzU4MkVFMTI3NjRGMjYwMDYyNjI4QiAvKiBKU0Zp
bGVSZWFkZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU3NTgyRUQxMjc2NEYyNjAwNjI2MjhCIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5j
cHAgKi87IH07CiAJCTJFNzU4NDFEMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4
NDFBMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmNwcCAqLzsgfTsKIAkJMkU3
NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4NDFCMTI3NzlBREEwMDYyNjI4
QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggKi87IH07CkBAIC0yMDM4LDYgKzIwMzYsOCBAQAogCQk1
MTRDNzY3RDBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NjgwQ0U5MjNBMTAw
N0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRDNzY3RTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVz
b3VyY2VSZXNwb25zZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VC
YXNlLmNwcCAqLzsgfTsKIAkJNTE0Qzc2N0YwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVz
cG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRDNzY2QTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTVGNzk1MzFD
RkNBM0QwMDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNUY3OTUxMUNGQ0EzQzcwMEND
RUQ5MyAvKiBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9OworCQk1MTVGNzk1NDFD
RkNBM0Q1MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVGNzk1MjFDRkNBM0M3MDBDQ0VE
OTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE2MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZp
bGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTYwMzAwQTBDQzQyNTEyMDBDOEFDMjUgLyogRmlsZVN5c3RlbVBPU0lYLmNwcCAq
LzsgfTsKIAkJNTE2MDMwNkMwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYwMzA2QjBDQzQz
NjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCAqLzsgfTsKIAkJNTE2MDcxMkUxQkQ4MzA3
ODAwREJDNEYyIC8qIElEQk9iamVjdFN0b3JlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYwNzEyQzFCRDgzMDcyMDBEQkM0RjIgLyogSURC
T2JqZWN0U3RvcmVJbmZvLmNwcCAqLzsgfTsKQEAgLTIyMjEsNyArMjIyMSw2IEBACiAJCTUxRTNG
OUQ2MERBMDVFMUQwMDI1MDkxMSAvKiBKU1N0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFM0Y5RDQwREEwNUUxRDAwMjUwOTExIC8qIEpT
U3RvcmFnZS5jcHAgKi87IH07CiAJCTUxRTQxNDM0MTZBNjU5NjMwMEM2MzNDNyAvKiBSZXNvdXJj
ZUhhbmRsZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRTY4MjEw
MTYzODczMDIwMDNCQkYzQyAvKiBMb2FkZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNjgyMEYxNjM4NzMwMjAwM0JCRjNDIC8qIExv
YWRlclN0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNTFFNkZBN0MxQkJCNEZDMzAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkZBN0IxQkJC
NEZCNTAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBK
U0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpT
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi87IH07CiAJCTUxRUU3QjM4MUFB
NTBCMDUwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVFN0IzNzFBQTUwQjA1MDBGOTJCMjEgLyogUmVz
b3VyY2VMb2FkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUxRUU3QjNBMUFBNTEyMzEwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUU3QjM5
MUFBNTEyMzEwMEY5MkIyMSAvKiBSZXNvdXJjZUxvYWRJbmZvLmNwcCAqLzsgfTsKQEAgLTg3NDIs
OCArODc0MSw2IEBACiAJCTJFNDM0NjQxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlclJ1bkxvb3AuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2NDIwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3Jr
ZXJUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDY0MzBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdvcmtlclRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRTQz
NDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJl
YWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NTgyRUQxMjc2NEYy
NjAwNjI2MjhCIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRTc1ODQxQTEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlUmVhZGVyTG9h
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NTg0MUIxMjc3OUFEQTAw
NjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVJlYWRlckxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTYxMiw2ICs5NjA5LDggQEAKIAkJNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVzcG9uc2VCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
c291cmNlUmVzcG9uc2VCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
Qzc2NkEwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlUmVzcG9uc2VCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNUU1RkVGMTk1MTAxNDcwMDg2Q0E1RSAvKiBQbGF0Zm9y
bUdhbWVwYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1HYW1lcGFkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxNUY3OTUxMUNGQ0EzQzcwMENDRUQ5MyAvKiBXZWJDb3JlQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2MDMwMEEwQ0M0MjUxMjAwQzhB
QzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTYwMzA2QjBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1DRi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNjA3MTJCMUJEODMwNTMwMERCQzRGMiAvKiBUcmFuc2FjdGlv
bk9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFuc2FjdGlv
bk9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgxMiw3ICs5ODEx
LDYgQEAKIAkJNTFFM0Y5RDUwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFNDE0MzIxNkE2NTk1MTAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVUeXBl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2ODIwRjE2Mzg3MzAyMDAzQkJG
M0MgLyogTG9hZGVyU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9hZGVyU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFNkZBN0Ix
QkJCNEZCNTAwODcwMEQ5IC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFFQUM1QjAxODE2M0Y0RTAwNEYxQkE0IC8qIElEQlJlY29yZElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVjb3JkSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyog
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRUU3QjM3MUFBNTBCMDUwMEY5MkIyMSAv
KiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyOTAwLDkg
KzIyODk4LDYgQEAKIAkJCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8s
CiAJCQkJMzM5QjVCNjIxMzFEQUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNTdHJhdGVneS5oICovLAog
CQkJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggKi8s
Ci0JCQkJMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAq
LywKLQkJCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAq
LywKLQkJCQk1MUU2RkE3QjFCQkI0RkI1MDA4NzAwRDkgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8s
CiAJCQkJRTExQUYxNTAxMUI5QTFBMzAwODA1MTAzIC8qIEN1cnNvci5jcHAgKi8sCiAJCQkJRjU4
Nzg2ODQwMkRFM0I4NjAxRUE0MTIyIC8qIEN1cnNvci5oICovLAogCQkJCUE1NzMyQjA4MTM2QTE2
MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8sCkBAIC0yMzA0Niw2ICsyMzA0MSw4
IEBACiAJCQkJOUExMTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZhbHVlVG9TdHJpbmcuaCAqLywK
IAkJCQk0NkRCN0Q1ODFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmNwcCAqLywKIAkJ
CQk0NkRCN0Q1OTFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmggKi8sCisJCQkJNTE1
Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAgKi8s
CisJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5oICovLAogCQkJCTkzODBGNDcxMDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuY3BwICovLAog
CQkJCTkzODBGNDcyMDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuaCAqLywKIAkJCQlFMUUxQkVG
RjExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMuaCAqLywKQEAgLTI1Mzcx
LDggKzI1MzY4LDYgQEAKIAkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzQxNjEyMEY2NTYyRkQwMDky
RDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
QzQxNURBMEY2NTVENkYwMDkyRDJGQiAvKiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRTZGQTdDMUJCQjRGQzMwMDg3MDBE
OSAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjk4MDNEMTEzMzU0
MkQwMDg5NDExNSAvKiBDUnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0Ey
OEIxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MkFG
NkUxODBGMjRDNjAwRkJBREI5IC8qIENyeXB0b0FsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODM5NCw2ICsyODM4OSw3IEBACiAJCQkJNDk4NzcwRjMxMjQyQzUzNTAwMjIyNkJBIC8qIFRp
bGluZ0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzRERDMTI1MUYxMkQwMDNFRjI2OSAv
KiBUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTUzQ0ZFODEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTVG
Nzk1NDFDRkNBM0Q1MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0NDYxM0IwMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDdFRDBBQjFCQUU5OTE3MDA0M0IzRTUgLyogVGltZXJFdmVudEJh
c2VkTW9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTI5NSw3ICsyOTI5MSw2IEBACiAJCQkJMkQ0
ODFGMDAxNDZCNUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQzQxNjE3MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDNDE1REUwRjY1NUQ3QzAwOTJE
MkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxNjk4MDQ5MTEzMzY0NDcwMDg5NDExNSAvKiBDUnVudGltZU9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzVDQTI4QTEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNzJBRjZEMTgwRjI0QzYwMEZCQURCOSAv
KiBDcnlwdG9BbGdvcml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMxNSw2ICszMTMxMCw3
IEBACiAJCQkJNUE1NzRGMjQxMzFEQjkzOTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUQ3MEFENjU3MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFOTNGNDcxNTE3QzZENTAwOENDRjc0IC8qIFJlbmRl
clJlZ2lvblNldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTVGNzk1MzFDRkNBM0QwMDBDQ0VE
OTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDRCRTUyQTFDRTEzNkVGMDA5RDg3REEgLyogR2VuZXJpY1Rhc2tRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0E4NDZENjBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVw
bGljYS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCmluZGV4IDI2ZWE1ZDkyMGQ3NmQxNjU5NjFjOThmMTU4MzVkMzY5OGFiNzg0
M2UuLmZlNzVkMjU1OWQzN2FiNDNkMDE2NGFkYWQ3NjRhMGY0NTQyOGY4ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjgsMTIgKzI4LDEyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAi
U3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGM1OThhYzM0ZmQy
NzA3YTlkZDc4MTc4MWRlMTIxNmY1MDY4NTZmMWQuLmZmODE5NGUwY2ZiNzUzMDVhYjMzN2MxYTVk
Nzc2ZThkMDJjYmQ3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcApAQCAtMzUsOSArMzUsOSBAQAogI2luY2x1ZGUgIkJsb2JQYXJ0
LmgiCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgotI2lu
Y2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRl
IDx3dGYvTWVzc2FnZVF1ZXVlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZDczOWM2YjZj
OTgxNzIxYThlYjU0OTYxYjU4Nzk5ODFjZTQzNzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgotCi0jaW5jbHVkZSAiVVJMLmgi
Ci0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkRhdGEuaCIKLSNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKLSNpbmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgotI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwg
VVJMPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBVUkw+Ojpjb3B5
KGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0K
LUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFN0cmluZz46OlR5cGUgQ3Jvc3NU
aHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgU3RyaW5nPjo6Y29weShjb25zdCBTdHJpbmcm
IHN0cikKLXsKLSAgICByZXR1cm4gc3RyLmlzb2xhdGVkQ29weSgpOwotfQotCi1Dcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPjo6VHlwZSBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPjo6Y29weShjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICByZXR1cm4gZXJyb3IuY29weSgpOwotfQotCi1Dcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+OjpUeXBlIENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVxdWVzdD46OmNvcHko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiByZXF1ZXN0LmNv
cHlEYXRhKCk7Ci19Ci0KLUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291
cmNlUmVzcG9uc2U+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJl
c291cmNlUmVzcG9uc2U+Ojpjb3B5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQot
ewotICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwotfQotCi1Dcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBTZWN1cml0eU9yaWdpbkRhdGE+OjpUeXBlIENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luRGF0YT46OmNvcHkoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQotewotICAgIHJldHVybiBvcmlnaW5EYXRh
Lmlzb2xhdGVkQ29weSgpOwotfQotCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNl
LCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNl
c3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0gICAgcmV0dXJu
IHNlc3Npb25JRDsKLX0KLQotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhy
ZWFkU2FmZURhdGFCdWZmZXI+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFs
c2UsIFRocmVhZFNhZmVEYXRhQnVmZmVyPjo6Y29weShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZl
ciYgYnVmZmVyKQotewotICAgIHJldHVybiBUaHJlYWRTYWZlRGF0YUJ1ZmZlcihidWZmZXIpOwot
fQotCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2Us
IGZhbHNlLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6Y29weShjb25z
dCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50JiB0aW1lUG9pbnQpCi17Ci0g
ICAgcmV0dXJuIHRpbWVQb2ludDsKLX0KLQotLy8gVGVzdCBDcm9zc1RocmVhZENvcGllciB1c2lu
ZyBDT01QSUxFX0FTU0VSVC4KLQotLy8gVmVyaWZ5IHRoYXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQg
b2JqZWN0cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCi1jbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVm
Q291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRUZXN0PiB7Ci19OwotCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAot
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRl
c3Q+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UGFzc1JlZlB0cjxDb3Bp
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZQotICAgICAgICAgICAgICAgICAgPjo6
dmFsdWUpLAotICAgICAgICAgICAgICAgUGFzc1JlZlB0clRlc3QpOwotQ09NUElMRV9BU1NFUlQo
KHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Q29waWVyVGhyZWFk
U2FmZVJlZkNvdW50ZWRUZXN0PiwKLSAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVy
PFJlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZQotICAgICAgICAg
ICAgICAgICAgPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgUmVmUHRyVGVzdCk7Ci1DT01QSUxF
X0FTU0VSVCgoc3RkOjppc19zYW1lPAotICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3Bp
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJl
YWRDb3BpZXI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Kj46OlR5cGUKLSAgICAgICAg
ICAgICAgICAgID46OnZhbHVlKSwKLSAgICAgICAgICAgICAgIFJhd1BvaW50ZXJUZXN0KTsKLQot
Ly8gQWRkIHNwZWNpYWxpemF0aW9ucyBmb3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxl
dCB1cyB2ZXJpZnkgdGhhdCBubyBvdGhlciB0ZW1wbGF0ZSBtYXRjaGVzLgotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0
cjxUPj4gewotICAgIHR5cGVkZWYgaW50IFR5cGU7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc1JlZlB0cjxU
Pj4gewotICAgIHR5cGVkZWYgaW50IFR5cGU7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKLSAgICB0eXBl
ZGVmIGludCBUeXBlOwotfTsKLQotLy8gVmVyaWZ5IHRoYXQgUmVmQ291bnRlZCBvYmplY3RzIG9u
bHkgbWF0Y2ggdGhlIGFib3ZlIHRlbXBsYXRlcyB3aGljaCBleHBvc2UgVHlwZSBhcyBpbnQuCi1j
bGFzcyBDb3BpZXJSZWZDb3VudGVkVGVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENvcGllclJlZkNv
dW50ZWRUZXN0PiB7Ci19OwotCi1zdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9z
c1RocmVhZENvcGllcjxQYXNzUmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2
YWx1ZSksICJDcm9zc1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxp
ZWQgdG8gUGFzc1JlZlB0cjw+IG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVm
Q291bnRlZCkgdHlwZSIpOwotc3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NU
aHJlYWRDb3BpZXI8UmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSks
ICJDcm9zc1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8g
UmVmUHRyPD4gb2YgYSBSZWZDb3VudGVkIChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0
eXBlIik7Ci1zdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGll
cjxDb3BpZXJSZWZDb3VudGVkVGVzdCo+OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NUaHJlYWRDb3Bp
ZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9wZXJseSBhcHBsaWVkIHRvIHJhdyBwb2ludGVyIG9mIGEg
UmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE4M2M2NzI3NDU2ZmQxZmIz
MzQwMDY2NDU5YjQwYjc4NWQ0YTg2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxNCwgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRT
aXplOwotY2xhc3MgVVJMOwotY2xhc3MgUmVzb3VyY2VFcnJvcjsKLWNsYXNzIFJlc291cmNlUmVx
dWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTZXNzaW9uSUQ7Ci1jbGFzcyBU
aHJlYWRTYWZlRGF0YUJ1ZmZlcjsKLXN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhOwotc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YTsKLXN0cnVjdCBTZWN1
cml0eU9yaWdpbkRhdGE7Ci1zdHJ1Y3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM7Ci0KLXN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2VIZWxwZXIgewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBSZW1vdmVQb2ludGVyIHsKLSAgICAgICAgdHlwZWRlZiBUIFR5cGU7Ci0gICAgfTsK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRlcjxUKj4gewotICAg
ICAgICB0eXBlZGVmIFQgVHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IFJlbW92ZVBvaW50ZXI8UmVmUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgVCBUeXBl
OwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlUG9pbnRl
cjxQYXNzUmVmUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgVCBUeXBlOwotICAgIH07Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdl
ciB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3RkOjppc19pbnRlZ3JhbDxU
Pjo6dmFsdWUgfHwgc3RkOjppc19lbnVtPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZlcnRpYmxl
PFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBJc1RocmVhZFNhZmVSZWZDb3VudGVkUG9pbnRlciB7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gc3RkOjppc19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQ
b2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9p
bnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7Ci0gICAgfTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllclBhc3NUaHJvdWdoIHsKLSAgICB0eXBlZGVmIFQg
VHlwZTsKLSAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFQmIHBhcmFtZXRlcikKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBwYXJhbWV0ZXI7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Ym9vbCBpc0Vu
dW1PckNvbnZlcnRpYmxlVG9JbnRlZ2VyLCBib29sIGlzVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHR5
cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U7Ci0KLS8vIEludGVnZXJzIGdl
dCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFueSBjaGFuZ2VzLgotdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMg
Q3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxUPiB7Ci19OwotCi0vLyBUbyBhbGxvdyBhIHR5
cGUgdG8gYmUgcGFzc2VkIGFjcm9zcyB0aHJlYWRzIHVzaW5nIGl0cyBjb3B5IGNvbnN0cnVjdG9y
LCBhZGQgYSBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSB0eXBlIGFuZAotLy8gYSBDb3B5VGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFR5cGVOYW1lPiA6IHB1YmxpYyBDcm9zc1RocmVh
ZENvcGllclBhc3NUaHJvdWdoPFR5cGVOYW1lPiB7IH07IHRvIHRoaXMgZmlsZS4KLXRlbXBsYXRl
PD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIEludFJlY3Q+IDog
cHVibGljIENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8SW50UmVjdD4gewotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSW50U2l6
ZT4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxJbnRTaXplPiB7Ci19Owot
Ci0vLyBDbGFzc2VzIHRoYXQgaGF2ZSBhbiBpc29sYXRlZENvcHkoKSBtZXRob2QgZ2V0IGEgZGVm
YXVsdCBzcGVjaWFsaXphdGlvbi4KLXRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUPiB7Ci0gICAgc3RhdGljIFQgY29weShjb25zdCBU
JiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB2YWx1ZS5pc29sYXRlZENvcHkoKTsKLSAg
ICB9Ci19OwotCi0vLyBDdXN0b20gY29weSBtZXRob2RzLgotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgdHJ1ZSwgVD4gewotICAgIHR5cGVk
ZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyOjpSZW1vdmVQb2ludGVyPFQ+
OjpUeXBlIFJlZkNvdW50ZWRUeXBlOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19jb252ZXJ0
aWJsZTxSZWZDb3VudGVkVHlwZSosIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlZkNvdW50ZWRUeXBl
Pio+Ojp2YWx1ZSwgIlQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFRocmVhZFNhZmVSZWZDb3VudGVk
ISIpOwotCi0gICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNvdW50ZWRUeXBlPiBUeXBlOwotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHJlZlB0cjsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBD
cm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBVUkw+IHsKLSAgICB0eXBlZGVmIFVS
TCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVVJMJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZh
bHNlLCBTdHJpbmc+IHsKLSAgICB0eXBlZGVmIFN0cmluZyBUeXBlOwotICAgIHN0YXRpYyBUeXBl
IGNvcHkoY29uc3QgU3RyaW5nJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZUVycm9yPiB7Ci0gICAgdHlwZWRlZiBS
ZXNvdXJjZUVycm9yIFR5cGU7Ci0gICAgc3RhdGljIFR5cGUgY29weShjb25zdCBSZXNvdXJjZUVy
cm9yJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IFR5cGU7Ci0gICAgc3RhdGljIFR5cGUg
Y29weShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+IHsKLSAg
ICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
PiBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxz
ZSwgU2VjdXJpdHlPcmlnaW5EYXRhPiB7Ci0gICAgdHlwZWRlZiBTZWN1cml0eU9yaWdpbkRhdGEg
VHlwZTsKLSAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxz
ZSwgU2Vzc2lvbklEPiB7Ci0gICAgdHlwZWRlZiBTZXNzaW9uSUQgVHlwZTsKLSAgICBzdGF0aWMg
VHlwZSBjb3B5KGNvbnN0IFNlc3Npb25JRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IHsK
LSAgICB0eXBlZGVmIFRocmVhZFNhZmVEYXRhQnVmZmVyIFR5cGU7Ci0gICAgc3RhdGljIFR5cGUg
Y29weShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludD4gewotICAgIHR5cGVkZWYgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVHlwZSYg
c291cmNlKTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQ3Jvc3NUaHJlYWRD
b3BpZXIgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPENyb3NzVGhyZWFkQ29waWVyQmFz
ZUhlbHBlcjo6SXNFbnVtT3JDb252ZXJ0aWJsZVRvSW50ZWdlcjxUPjo6dmFsdWUsIENyb3NzVGhy
ZWFkQ29waWVyQmFzZUhlbHBlcjo6SXNUaHJlYWRTYWZlUmVmQ291bnRlZFBvaW50ZXI8VD46OnZh
bHVlLCBUPiB7Ci19OwotCi0vLyBEZWZhdWx0IHNwZWNpYWxpemF0aW9uIGZvciBWZWN0b3JzIG9m
IENyb3NzVGhyZWFkQ29weWFibGUgY2xhc3Nlcy4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBWZWN0b3I8VD4+IHsKLSAgICB0
eXBlZGVmIFZlY3RvcjxUPiBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVHlwZSYg
c291cmNlKQotICAgIHsKLSAgICAgICAgVHlwZSBkZXN0aW5hdGlvbjsKLSAgICAgICAgZGVzdGlu
YXRpb24ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzb3VyY2Uuc2l6ZSgpKTsKLSAgICAgICAgZm9y
IChhdXRvJiBvYmplY3QgOiBzb3VyY2UpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbi51bmNoZWNr
ZWRBcHBlbmQoQ3Jvc3NUaHJlYWRDb3BpZXI8VD46OmNvcHkob2JqZWN0KSk7Ci0gICAgICAgIHJl
dHVybiBkZXN0aW5hdGlvbjsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZFRhc2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiODIzYmMxNWE4ZTNjMWExMmJlMjg1OWY2NTAzY2ViMzAwZmI3YmFhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsMjUzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyb3NzVGhyZWFkVGFza19oCi0jZGVm
aW5lIENyb3NzVGhyZWFkVGFza19oCi0KLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgot
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3Jv
c3NUaHJlYWRUYXNrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDcm9zc1RocmVhZFRhc2sp
OwotcHVibGljOgotICAgIENyb3NzVGhyZWFkVGFzayhjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IHRhc2tGdW5jdGlvbikKLSAgICAgICAgOiBtX3Rhc2tGdW5jdGlvbih0YXNrRnVuY3Rpb24p
Ci0gICAgewotICAgICAgICBBU1NFUlQodGFza0Z1bmN0aW9uKTsKLSAgICB9Ci0KLSAgICB2b2lk
IHBlcmZvcm1UYXNrKCkKLSAgICB7Ci0gICAgICAgIG1fdGFza0Z1bmN0aW9uKCk7Ci0gICAgfQot
Ci1wcm90ZWN0ZWQ6Ci0gICAgQ3Jvc3NUaHJlYWRUYXNrKCkgeyB9Ci0KLSAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IG1fdGFza0Z1bmN0aW9uOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIENyb3NzVGhyZWFkVGFza0ltcGwgZmluYWwg
OiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrIHsKLXB1YmxpYzoKLSAgICBDcm9zc1RocmVhZFRhc2tJ
bXBsKFQqIGNhbGxlZSwgdm9pZCAoVDo6Km1ldGhvZCkoQXJndW1lbnRzLi4uKSwgQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgbV90YXNrRnVuY3Rpb24gPSBbY2FsbGVl
LCBtZXRob2QsIGFyZ3VtZW50cy4uLl0gewotICAgICAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCko
YXJndW1lbnRzLi4uKTsKLSAgICAgICAgfTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgotY2xhc3MgQ3Jvc3NUaHJlYWRUYXNrU3RhdGljSW1wbCBmaW5hbCA6
IHB1YmxpYyBDcm9zc1RocmVhZFRhc2sgewotcHVibGljOgotICAgIENyb3NzVGhyZWFkVGFza1N0
YXRpY0ltcGwodm9pZCAoKm1ldGhvZCkoQXJndW1lbnRzLi4uKSwgQXJndW1lbnRzJiYuLi4gYXJn
dW1lbnRzKQotICAgIHsKLSAgICAgICAgbV90YXNrRnVuY3Rpb24gPSBbbWV0aG9kLCBhcmd1bWVu
dHMuLi5dIHsKLSAgICAgICAgICAgIG1ldGhvZChhcmd1bWVudHMuLi4pOwotICAgICAgICB9Owot
ICAgIH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NU
aHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZv
aWQgKFQ6OiptZXRob2QpKCkpCi17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NU
aHJlYWRUYXNrSW1wbDxUPj4oJmNhbGxlZSwgbWV0aG9kKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KLXN0ZDo6dW5pcXVlX3B0cjxDcm9zc1Ro
cmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9p
ZCAoVDo6Km1ldGhvZCkoTVAxKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSkKLXsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMT4+KAotICAg
ICAgICAmY2FsbGVlLAotICAgICAgICBtZXRob2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhy
ZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDI+
Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2so
Ci0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyKSwKLSAgICBj
b25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMikKLXsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2tJbXBsPFQsIE1QMSwgTVAyPj4o
Ci0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAgICAgICAgV2ViQ29yZTo6Q3Jv
c3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBXZWJDb3JlOjpD
cm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMikpOwotCi19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBl
bmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1zdGQ6OnVuaXF1ZV9wdHI8Q3Jv
c3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAg
IHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0
ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIz
KQotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwg
TVAxLCBNUDIsIE1QMz4+KAotICAgICAgICAmY2FsbGVlLAotICAgICAgICBtZXRob2QsCi0gICAg
ICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAg
ICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMykp
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgotc3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIHZvaWQgKCptZXRo
b2QpKE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0
IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza1N0YXRpY0ltcGw8TVAxLCBNUDIsIE1Q
Mz4+KAotICAgICAgICBtZXRob2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVy
PFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3Bp
ZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENv
cGllcjxQMz46OmNvcHkocGFyYW1ldGVyMykpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBl
bmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0Pgotc3RkOjp1
bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQm
IGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQpLAotICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNv
bnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0KQotewotICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1Q
MywgTVA0Pj4oCi0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAgICAgICAgV2Vi
Q29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBX
ZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAg
IFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwKLSAgICAg
ICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5h
bWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUg
UDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNT4KLXN0ZDo6dW5pcXVl
X3B0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxs
ZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUpLAotICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNv
bnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0
IFA1JiBwYXJhbWV0ZXI1KQotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhy
ZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDU+PigKLSAgICAgICAgJmNhbGxl
ZSwKLSAgICAgICAgbWV0aG9kLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQ
MT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVy
PFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3Bp
ZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENv
cGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFk
Q29waWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5
cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVu
YW1lIFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDY+Ci1zdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRUYXNrPiBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYg
Y2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBN
UDYpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIy
LAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAot
ICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBN
UDIsIE1QMywgTVA0LCBNUDUsIE1QNj4+KAotICAgICAgICAmY2FsbGVlLAotICAgICAgICBtZXRo
b2QsCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0
ZXIxKSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFt
ZXRlcjIpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFy
YW1ldGVyMyksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShw
YXJhbWV0ZXI0KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5
KHBhcmFtZXRlcjUpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNj46OmNv
cHkocGFyYW1ldGVyNikpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5h
bWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUg
TVA3Pgotc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAz
LCBNUDQsIE1QNSwgTVA2LCBNUDcpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNv
bnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0
IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2
JiBwYXJhbWV0ZXI2LAotICAgIGNvbnN0IFA3JiBwYXJhbWV0ZXI3KQotewotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0
LCBNUDUsIE1QNiwgTVA3Pj4oCi0gICAgICAgICZjYWxsZWUsCi0gICAgICAgIG1ldGhvZCwKLSAg
ICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiks
Ci0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIz
KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRl
cjQpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1l
dGVyNSksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA2Pjo6Y29weShwYXJh
bWV0ZXI2KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpjb3B5KHBh
cmFtZXRlcjcpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVu
YW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1l
IE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1Q
NSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNywg
dHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KLXN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRh
c2s+IGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6
Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3LCBNUDgpLAotICAgIGNv
bnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0
IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1
JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LAotICAgIGNvbnN0IFA3JiBw
YXJhbWV0ZXI3LAotICAgIGNvbnN0IFA4JiBwYXJhbWV0ZXI4KQotewotICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDUsIE1QNiwgTVA3LCBNUDg+PigKLSAgICAgICAgJmNhbGxlZSwKLSAgICAgICAgbWV0aG9kLAot
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSks
Ci0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIy
KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRl
cjMpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1l
dGVyNCksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA1Pjo6Y29weShwYXJh
bWV0ZXI1KSwKLSAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBh
cmFtZXRlcjYpLAotICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQNz46OmNvcHko
cGFyYW1ldGVyNyksCi0gICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA4Pjo6Y29w
eShwYXJhbWV0ZXI4KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IENyb3NzVGhyZWFkVGFza19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
ZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2Vi
Q29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjFhODZjYjEzNmRkMzEwMDY4
NzY0YzExNGRkYmVmNjIzNGM0OWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvcmVDcm9zc1RocmVhZENvcGllci5oIgor
CisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSAiVGhyZWFkU2FmZURhdGFCdWZmZXIu
aCIKKworbmFtZXNwYWNlIFdURiB7CisKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFs
c2UsIFdlYkNvcmU6OlNlc3Npb25JRD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNl
LCBmYWxzZSwgV2ViQ29yZTo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9u
SUQmIHNlc3Npb25JRCkKK3sKKyAgICByZXR1cm4gc2Vzc2lvbklEOworfQorCitDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj46
OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2ViQ29yZTo6VGhyZWFk
U2FmZURhdGFCdWZmZXI+Ojpjb3B5KGNvbnN0IFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVmZmVy
JiBidWZmZXIpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVmZmVyKGJ1
ZmZlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTNiOWJjMTE4
MmJlNzRlZWE0M2RmZWI0OGU3Njk5YjU2NWIzMDg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1LCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZXNzaW9uSUQ7Citj
bGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgV2ViQ29yZTo6U2Vzc2lvbklEIFR5cGU7CisgICAg
c3RhdGljIFR5cGUgY29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKK307CisKK3RlbXBs
YXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlRocmVhZFNhZmVEYXRhQnVmZmVyPiB7CisgICAgdHlwZWRlZiBXZWJDb3JlOjpUaHJlYWRTYWZl
RGF0YUJ1ZmZlciBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgV2ViQ29yZTo6VGhy
ZWFkU2FmZURhdGFCdWZmZXImKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAppbmRleCBi
MzI4YmExNzE1MDQxMGY1M2Y3NzE2NjkyMDg1MTRiNmE3NzQ2ZjY3Li5iOGZkNmE3OWU5YTU3ZGIy
ZTdjZDJkOGVlNDdhMTU3NGZmYzVmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaApAQCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgQ0ZFcnJvclJlZiBjZkVycm9yKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgb3BlcmF0b3IgQ0ZFcnJvclJlZigpIGNvbnN0OwogCisgICAgUmVzb3VyY2VF
cnJvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiBjb3B5KCk7IH0KKwogI2lmIFVTRShD
Rk5FVFdPUkspCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIFJlc291cmNlRXJyb3IoY29uc3QgU3Ry
aW5nJiBkb21haW4sIGludCBlcnJvckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3Qg
U3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbiwgQ0ZEYXRhUmVmIGNlcnRpZmljYXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dC5oCmluZGV4IDZjOTIwMmIwODdjYWI5YjVhZjNkYjE2OWYwNThkNDVmMTk5YWFhOTIuLmMzMGY0
YTExMmUyNWJkNzQ2YTc0ZmM0NGE3MTEzN2M0ZWU1Njc3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMjQsOCAr
MjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJlc291cmNlUmVxdWVzdF9o
Ci0jZGVmaW5lIFJlc291cmNlUmVxdWVzdF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdEJhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC04Miw2
ICs4MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogI2VuZGlmCiAKKyAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuICpSZXNvdXJj
ZVJlcXVlc3Q6OmFkb3B0KGNvcHlEYXRhKCkpOyB9CisKICAgICAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkUHJvcGVydGllcyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE2Miw1ICsxNjMsMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gUmVzb3VyY2VSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgKaW5kZXggYzhlNDY2NWJmOTFkNjQ5ZWMwMDBl
YmMwN2M1MGVmZGVmMzk5OWNkMC4uYTBmN2QyZGRlMTA1ODJmN2UxYWVlNjJmY2Y4NzlhMDliODk3
Yjk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlc3BvbnNlLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKLSNpZm5kZWYgUmVzb3VyY2VSZXNwb25zZV9oCi0jZGVmaW5lIFJlc291cmNlUmVzcG9uc2Vf
aAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlQmFzZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTczLDYgKzcyLDggQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKKyAgICBSZXNvdXJjZVJlc3BvbnNlIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0
dXJuICpSZXNvdXJjZVJlc3BvbnNlOjphZG9wdChjb3B5RGF0YSgpKTsgfQorCiAgICAgdW5zaWdu
ZWQgbWVtb3J5VXNhZ2UoKSBjb25zdAogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgc29t
ZSBwcm9ncmFtbWF0aWMgbGlnaHdlaWdodCB3YXkgdG8gY2FsY3VsYXRlIFJlc291cmNlUmVzcG9u
c2UgYW5kIGFzc29jaWF0ZWQgY2xhc3Nlcy4KQEAgLTEyNCw1ICsxMjUsMyBAQCBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhQgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
UmVzb3VyY2VSZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGI0ZDIzOGE5MjRlZjdl
MjA3NTVmNDVhMTVjNjM5YmNiOWQyMWFlN2MuLjNhNzQ5N2RlNmFmOTYwZTg0MDk1MjhmNDQzMjli
YWVkMjI5YTNiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0yNTksNyArMjU5LDYgQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwCiAgICAg
U2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCiAgICAgU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKLSAgICBTaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAg
U2hhcmVkL1dlYkV2ZW50LmNwcAogICAgIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCiAg
ICAgU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4IGJlZWI4YTg5MDgw
ZTM2NzViYTQ5NTZmYmMzYjk4YTM3NzkzMThmZTkuLjNjMDlkYTdlM2FhYTdkMDA3NTU1YjE0NDg3
YTgyMTgzNDkwYzc1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC0zMywxMyArMzMsMTIgQEAKICNpbmNsdWRlICJEYXRh
YmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5j
bHVkZSAiV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RW5jb2Rpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKaW5kZXggNzFlMWVkMDMyMWY0NDI4
NTU5N2RhY2I5MzA1NjFlMTI1MzUzYjIyOC4uZjBiYjk3YzY4OTcwNTk4MDZkYWM4YTMxYzNkMWI2
OTFkNjg5MTAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0Rh
dGFiYXNlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVByb2Nlc3MuaApAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgRGF0YWJhc2VQcm9jZXNzX2gKLSNkZWZpbmUgRGF0
YWJhc2VQcm9jZXNzX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCiAKQEAgLTMzLDEwICszMiwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCQmFja2luZ1N0
b3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VuaXF1ZUlEQkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1j
bGFzcyBDcm9zc1RocmVhZFRhc2s7CiBjbGFzcyBTZXNzaW9uSUQ7CiBzdHJ1Y3QgU2VjdXJpdHlP
cmlnaW5EYXRhOwogfQpAQCAtNjksNyArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBXb3JrUXVldWUm
IHF1ZXVlKCkgeyByZXR1cm4gbV9xdWV1ZS5nZXQoKTsgfQogCi0gICAgdm9pZCBwb3N0RGF0YWJh
c2VUYXNrKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDcm9zc1RocmVhZFRhc2s+KTsKKyAgICB2
b2lkIHBvc3REYXRhYmFzZVRhc2soc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkVGFzaz4pOwog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLy8gV2ViQ29yZTo6SURCU2VydmVy
OjpJREJCYWNraW5nU3RvcmVGaWxlSGFuZGxlcgpAQCAtMTI3LDEyICsxMjYsMTAgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JU
ZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3Rk
OjpmdW5jdGlvbjx2b2lkIChjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpPj4g
bV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21wbGV0aW9uSGFuZGxlcnM7CiAKLSAgICBEZXF1
ZTxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q3Jvc3NUaHJlYWRUYXNrPj4gbV9kYXRhYmFzZVRh
c2tzOworICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFRhc2s+PiBtX2RhdGFi
YXNlVGFza3M7CiAgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKLQotI2Vu
ZGlmIC8vIERhdGFiYXNlUHJvY2Vzc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNy
b3NzVGhyZWFkQ29waWVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAxNzhm
ZTdhOTc5OGI5NGEzZDk2NDc5YzA2Y2Y3ZjQwNDExYzM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCIK
LQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9JREJL
ZXlEYXRhLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotVmVjdG9yPGNoYXI+IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFZl
Y3RvcjxjaGFyPj46OmNvcHkoY29uc3QgVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCi17Ci0gICAgVmVj
dG9yPGNoYXI+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2ZWN0
b3Iuc2l6ZSgpKTsKLSAgICByZXN1bHQuYXBwZW5kVmVjdG9yKHZlY3Rvcik7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotVmVjdG9yPGludDY0X3Q+IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxz
ZSwgZmFsc2UsIFZlY3RvcjxpbnQ2NF90Pj46OmNvcHkoY29uc3QgVmVjdG9yPGludDY0X3Q+JiB2
ZWN0b3IpCi17Ci0gICAgVmVjdG9yPGludDY0X3Q+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eSh2ZWN0b3Iuc2l6ZSgpKTsKLSAgICByZXN1bHQuYXBwZW5kVmVjdG9y
KHZlY3Rvcik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotVmVjdG9yPHVpbnQ4X3Q+IENyb3Nz
VGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFZlY3Rvcjx1aW50OF90Pj46OmNvcHkoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpCi17Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3Vs
dDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2ZWN0b3Iuc2l6ZSgpKTsKLSAg
ICByZXN1bHQuYXBwZW5kVmVjdG9yKHZlY3Rvcik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
QVNDSUlMaXRlcmFsIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIEFTQ0lJTGl0
ZXJhbD46OmNvcHkoY29uc3QgQVNDSUlMaXRlcmFsJiBsaXRlcmFsKQotewotICAgIHJldHVybiBs
aXRlcmFsOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
cm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFk
Q29waWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZmIxNDQ5Nzg5YWE0NzEy
NDcxMGE5Y2E2MzQ5MWU2MGE0ZTk2OTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJDcm9zc1RocmVhZENvcGllcl9oCi0jZGVmaW5lIFdlYkNyb3NzVGhyZWFkQ29waWVyX2gKLQot
I2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci1lbnVtIGNsYXNzIExlZ2FjeVVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlOwotfQotCi1u
YW1lc3BhY2UgV1RGIHsKLWNsYXNzIEFTQ0lJTGl0ZXJhbDsKLX0KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZh
bHNlLCBXZWJLaXQ6OkxlZ2FjeVVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlPiB7Ci0gICAg
c3RhdGljIFdlYktpdDo6TGVnYWN5VW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGUgY29weShj
b25zdCBXZWJLaXQ6OkxlZ2FjeVVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlJiB0eXBlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPGNoYXI+PiB7Ci0g
ICAgc3RhdGljIFZlY3RvcjxjaGFyPiBjb3B5KGNvbnN0IFZlY3RvcjxjaGFyPiYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVj
dG9yPGludDY0X3Q+PiB7Ci0gICAgc3RhdGljIFZlY3RvcjxpbnQ2NF90PiBjb3B5KGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlPGZhbHNlLCBmYWxzZSwgVmVjdG9yPHVpbnQ4X3Q+PiB7Ci0gICAgc3RhdGljIFZlY3Rv
cjx1aW50OF90PiBjb3B5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV1RGOjpBU0NJSUxp
dGVyYWw+IHsKLSAgICBzdGF0aWMgV1RGOjpBU0NJSUxpdGVyYWwgY29weShjb25zdCBXVEY6OkFT
Q0lJTGl0ZXJhbCYpOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0jZW5kaWYgLy8gV2ViQ3Jvc3NUaHJlYWRDb3BpZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDFjZWZhMTFmNDViNWRlNWE3NTMzNDMyNmFiY2M5YjFhNWMxNjEzYjEuLjI5ZTg3YzJl
NTNhZGIzOGVjOWYwMzRhODAzZDQ1YWY2OGQ5Y2JjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkyOSw3ICs5MjksNiBAQAog
CQk1MTVFNzcyQjE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNUU3NzI5MTg0MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwICovOyB9OwogCQk1MTVFNzcyQzE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTVFNzcyQTE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxNjBCRkUxMTMzODFERjkwMDkxODk5
OSAvKiBMb2dnaW5nRm91bmRhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNjBCRkUwMTMzODFERjkwMDkxODk5OSAvKiBMb2dnaW5nRm91bmRh
dGlvbi5tbSAqLzsgfTsKLQkJNTE2MzExODcxODU4NDQ2NjAwNTM0NjQ3IC8qIFdlYkNyb3NzVGhy
ZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTYzMTE4NjE4NTg0NDY2MDA1MzQ2NDcgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLzsg
fTsKIAkJNTE2MzE5OTIxNjI4OTgwQTAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYzMTk5
MTE2Mjg5ODBBMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbSAqLzsgfTsKIAkJ
NTE2MzE5OTQxNjI4OUE2MDAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUND
OTM0MTYyODA2NDgwMDM0MjU1MCAvKiBOZXR3b3JrUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTUxNjMxOTk1MTYyODlBNjMwMEUyMkYwMCAvKiBOZXR3b3JrUHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFD
QzkzNTE2MjgwNjQ4MDAzNDI1NTAgLyogTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oICovOyB9OwpA
QCAtOTcyLDcgKzk3MSw2IEBACiAJCTUxQUNCQkExMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFBQ0JCOUYxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlN
YWMubW0gKi87IH07CiAJCTUxQjE1QTg0MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0
aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUIxNUE4MjEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwICov
OyB9OwogCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjE1QTgz
MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oICovOyB9OwotCQk1MUJB
MjQ0NjE4NThGNTVEMDBFQTI4MTEgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCQTI0NDUxODU4RjQxNTAw
RUEyODExIC8qIFdlYkNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJNTFDRDFDNUQxQjM0
OTNBRjAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNTkxQjM0OTNBOTAwMTQyQ0E1IC8q
IFdLU2VjdXJpdHlPcmlnaW5SZWYuY3BwICovOyB9OwogCQk1MUNEMUM1RTFCMzQ5M0I0MDAxNDJD
QTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNUExQjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlP
cmlnaW5SZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MUNEMUM2NTFCMzRCOUQ0MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNUYxQjM0QjlD
OTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CkBAIC0yOTUzLDcgKzI5NTEsNiBAQAogCQk1MTVFNzcyOTE4
NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNUU3NzJB
MTg0MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjBCRkUwMTMzODFE
RjkwMDkxODk5OSAvKiBMb2dnaW5nRm91bmRhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IExvZ2dpbmdGb3VuZGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTYzMTE4NjE4NTg0NDY2MDA1MzQ2NDcgLyogV2ViQ3Jvc3NUaHJlYWRD
b3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ3Jvc3NUaHJlYWRD
b3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2MzE5OTExNjI4OTgwQTAw
RTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tOyBwYXRoID0gbWFj
L05ldHdvcmtQcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNjRDMDk0MUIwNUI3NTcwMDRGMTAyQSAvKiBDaGlsZFByb2Nlc3MubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hpbGRQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogQVBJRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRXJyb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMDEsNyArMjk5OCw2IEBACiAJCTUxQUNDOTM1MTYyODA2
NDgwMDM0MjU1MCAvKiBOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFCMTVBODIxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRp
bGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudmlyb25t
ZW50VXRpbGl0aWVzLmNwcDsgcGF0aCA9IHVuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxNUE4MzEzODQzQTM5MDAzMjFBRDggLyog
RW52aXJvbm1lbnRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RW52aXJvbm1lbnRVdGlsaXRpZXMuaDsgcGF0aCA9IHVuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCQTI0NDUxODU4RjQxNTAwRUEyODEx
IC8qIFdlYkNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNyb3Nz
VGhyZWFkQ29waWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDRDFDNTkx
QjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpblJlZi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQ0QxQzVBMUIzNDkzQTkwMDE0MkNBNSAvKiBXS1NlY3Vy
aXR5T3JpZ2luUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2VjdXJp
dHlPcmlnaW5SZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDRDFDNUYxQjM0
QjlDOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDUyNSw4ICs0NTIxLDYgQEAKIAkJCQk1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyog
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovLAogCQkJCTkzOUFFNzY1MTMxNkU5OUMwMEFFMDZB
NiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovLAogCQkJCUJDMUREN0IxMTE0REMzOTYw
MDVBREFGMyAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAqLywKLQkJCQk1MUJBMjQ0NTE4NThG
NDE1MDBFQTI4MTEgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovLAotCQkJCTUxNjMxMTg2
MTg1ODQ0NjYwMDUzNDY0NyAvKiBXZWJDcm9zc1RocmVhZENvcGllci5oICovLAogCQkJCUMwMzM3
REFEMTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgKi8sCiAJCQkJQkMwMzJEQUYxMEY0
MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50LmggKi8sCiAJCQkJQkMwMzJEQjAxMEY0MzgwRjAwNThD
MTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5jcHAgKi8sCkBAIC03NzA0LDcgKzc2OTgsNiBAQAog
CQkJCTMzMDkzNDRBMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxREQ3QjIxMTREQzM5NjAwNUFEQUYzIC8qIFdl
YkNvcmVBcmd1bWVudENvZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUIxMkE4ODM4
ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxNjMxMTg3
MTg1ODQ0NjYwMDUzNDY0NyAvKiBXZWJDcm9zc1RocmVhZENvcGllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFBODNGNkQxQTVCNjNGRjAwMDI2RUM2IC8qIFdlYkRhdGFiYXNlUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1QjFDNTUxODk4N0VERjAw
NEZDRjlCIC8qIFdlYkRvY3VtZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTkxODksNyAr
OTE4Miw2IEBACiAJCQkJOTM5QUU3NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzI2MzEyMkM2Q0YzMDBENUMzNUEg
LyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4
OUExMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNTFCQTI0NDYxODU4RjU1RDAwRUEyODExIC8qIFdlYkNyb3NzVGhyZWFkQ29waWVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBQTgzRjZDMUE1QjYzRkYwMDAyNkVDNiAvKiBXZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUw
RSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTVCMUM1NDE4OTg3RURGMDA0RkNGOUIgLyogV2ViRG9jdW1lbnRMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>