<?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>131371</bug_id>
          
          <creation_ts>2014-04-08 10:44:52 -0700</creation_ts>
          <short_desc>Rename Clipboard to DataTransfer</short_desc>
          <delta_ts>2014-04-08 15:08:47 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998642</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 10:44:52 -0700</bug_when>
    <thetext>DataTransfer is the name from HTML5, and it&apos;s so much better than the confusing Clipboard one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998651</commentid>
    <comment_count>1</comment_count>
      <attachid>228855</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 10:54:19 -0700</bug_when>
    <thetext>Created attachment 228855
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998652</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-08 10:55:29 -0700</bug_when>
    <thetext>Attachment 228855 did not pass style-queue:


ERROR: Source/WebCore/dom/ClipboardEvent.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/DataTransferAccessPolicy.h:25:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/page/DragController.cpp:191:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/page/DragController.cpp:601:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/page/DragController.cpp:613:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/page/DragController.cpp:810:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/dom/DataTransfer.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/DerivedSources.cpp:106:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/EventHandler.cpp:3317:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/WebCore/dom/MouseEvent.cpp:118:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/MouseEvent.cpp:128:  Wrong number of spaces before statement. (expected: 27)  [whitespace/indent] [4]
Total errors found: 12 in 56 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>998696</commentid>
    <comment_count>3</comment_count>
      <attachid>228866</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 12:15:28 -0700</bug_when>
    <thetext>Created attachment 228866
with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998764</commentid>
    <comment_count>4</comment_count>
      <attachid>228880</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 13:45:09 -0700</bug_when>
    <thetext>Created attachment 228880
updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998765</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-08 13:46:37 -0700</bug_when>
    <thetext>Attachment 228880 did not pass style-queue:


ERROR: Source/WebCore/dom/ClipboardEvent.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/page/DragController.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/DataTransfer.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/DerivedSources.cpp:106:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:118:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/MouseEvent.cpp:128:  Wrong number of spaces before statement. (expected: 27)  [whitespace/indent] [4]
Total errors found: 6 in 66 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>998769</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 13:53:04 -0700</bug_when>
    <thetext>Gtk/Efl failures sound like a result of CMake caching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998812</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 15:08:47 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r166965&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228855</attachid>
            <date>2014-04-08 10:54:19 -0700</date>
            <delta_ts>2014-04-08 12:15:28 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>DataTransfer.txt</filename>
            <type>text/plain</type>
            <size>211004</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjkzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MCBAQAorMjAxNC0wNC0wOCAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJk
IHRvIERhdGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyB0aGUgbmFtZSB1c2VkIGluIEhUTUw1LCBhbmQgaXQncyBtdWNoIGJl
dHRlciB0aGFuIHRoZSBjb25mdXNpbmcgQ2xpcGJvYXJkIG9uZS4KKworICAgICAgICBSZW5hbWVk
IHJlbGF0ZWQgZW51bXMgdG9vLCBhbmQgbWFkZSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgYW4g
ZW51bSBjbGFzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
Q2xpcGJvYXJkQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Rh
dGFUcmFuc2ZlckN1c3RvbS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ2xpcGJvYXJkQ3VzdG9tLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRGF0YVRyYW5z
ZmVyOjp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NsaXBib2FyZDo6dHlwZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAq
IGRvbS9DbGlwYm9hcmQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmlkbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBkb20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5Lmg6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0Ns
aXBib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEV2ZW50OjpDbGlw
Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL0NsaXBib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDbGlwYm9hcmRFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZEV2ZW50OjpjbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9DbGlwYm9hcmRN
YWMubW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OkRhdGFUcmFuc2Zl
cik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6On5EYXRhVHJhbnNmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpzZXRBY2Nlc3NQb2xpY3kpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpjYW5SZWFkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVyOjpjYW5SZWFkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXI6OmNhbldyaXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNsZWFy
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmdldERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlcjo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpmaWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmRyb3BFZmZlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpzZXREcm9wRWZmZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlcjo6ZWZmZWN0QWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
VHJhbnNmZXI6OnNldEVmZmVjdEFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVyOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNhblNl
dERyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OnVwZGF0ZURyYWdJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZURyYWdJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpEcmFnSW1hZ2VMb2FkZXI6OkRyYWdJbWFnZUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnSW1hZ2VMb2FkZXI6OmltYWdlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OnNvdXJjZU9wZXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhVHJhbnNmZXI6OmRlc3RpbmF0aW9uT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlcjo6c2V0U291cmNlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlcjo6c2V0RGVzdGluYXRpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkOjpDbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkOjp+Q2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZDo6c2V0QWNjZXNzUG9saWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZDo6Y2FuUmVhZFR5cGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZDo6Y2FuUmVhZERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJk
OjpjYW5Xcml0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpj
bGVhckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpnZXREYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6c2V0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnR5cGVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6ZmlsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkOjpkcm9wRWZmZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZDo6c2V0RHJvcEVmZmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlw
Ym9hcmQ6OmVmZmVjdEFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJv
YXJkOjpzZXRFZmZlY3RBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZDo6c2V0RHJhZ0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2Fy
ZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpjYW5TZXREcmFnSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjp1cGRhdGVEcmFnSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpzb3VyY2VPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkOjpkZXN0aW5hdGlvbk9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OnNldFNvdXJjZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDbGlwYm9hcmQ6OnNldERlc3RpbmF0aW9uT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmlkbDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwuCisgICAgICAgICogZG9tL0RhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmguCisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Lmg6
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlck1hYy5tbTogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZG9tL0NsaXBib2FyZE1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
cjo6Y3JlYXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRl
RHJhZ0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50OjpjbGlwYm9hcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojpp
bnRlcm5hbERhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6Y2xpcGJvYXJk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Nb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdXNlRXZlbnQ6OmluaXRNb3VzZUV2ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6ZGF0YVRyYW5zZmVyKToKKyAgICAgICAg
KiBkb20vTW91c2VFdmVudC5pZGw6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2Fu
REhUTUxDdXQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5ESFRNTENvcHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5ESFRNTFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6dHJ5REhUTUxDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dHJ5REhU
TUxDdXQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cnlESFRNTFBhc3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpz
ZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpz
ZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dG9yLmg6CisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4
dCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4dCk6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjp0cnlESFRNTERyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0
YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcp
OgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJhZyk6CisgICAg
ICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRHJhZ1N0YXRlLmg6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpoYXNGaWxl
T2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc1N0cmluZ09mVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpoYXNEcm9wWm9uZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZERyb3Bab25l
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZyZWVEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ1NyY0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmZyZWVDbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
Lmg6CisgICAgICAgICogcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAg
ICAgICogcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBwYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
d2luL0RyYWdDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURy
YWdnaW5nYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVh
dGVEcmFnZ2luZ0NsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVi
b2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVJhbmdlVG9E
YXRhT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9u
KToKKwogMjAxNC0wNC0wOCAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4K
IAogICAgICAgICBbV2luQ2Fpcm9dIENvbXBpbGUgZXJyb3IgaW4gVGV4dHVyZU1hcHBlci5oCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM0NCw3ICszNDQsNiBAQCBzZXQo
V2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vQ2hpbGROb2RlLmlkbAogICAgIGRvbS9DbGllbnRS
ZWN0LmlkbAogICAgIGRvbS9DbGllbnRSZWN0TGlzdC5pZGwKLSAgICBkb20vQ2xpcGJvYXJkLmlk
bAogICAgIGRvbS9Db21tZW50LmlkbAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbAogICAg
IGRvbS9DdXN0b21FdmVudC5pZGwKQEAgLTM1NCw2ICszNTMsNyBAQCBzZXQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5pZGwKICAgICBkb20vRE9NU3Ry
aW5nTGlzdC5pZGwKICAgICBkb20vRE9NU3RyaW5nTWFwLmlkbAorICAgIGRvbS9EYXRhVHJhbnNm
ZXIuaWRsCiAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCiAgICAgZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0LmlkbAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKQEAgLTExMjcsNyAr
MTEyNyw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vQ2xhc3NOb2RlTGlzdC5jcHAK
ICAgICBkb20vQ2xpZW50UmVjdC5jcHAKICAgICBkb20vQ2xpZW50UmVjdExpc3QuY3BwCi0gICAg
ZG9tL0NsaXBib2FyZC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9tL0Nv
bGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9Db21tZW50LmNwcApAQCAtMTE0MSw2ICsx
MTQwLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vRE9NU3RyaW5n
TGlzdC5jcHAKKyAgICBkb20vRGF0YVRyYW5zZmVyLmNwcAogICAgIGRvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcAogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAogICAgIGRvbS9EZWNvZGVk
RGF0YURvY3VtZW50UGFyc2VyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAko
cmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw2IEBACiAjaW5jbHVkZSAiSlNDaGFyYWN0ZXJEYXRh
LmNwcCIKICNpbmNsdWRlICJKU0NsaWVudFJlY3QuY3BwIgogI2luY2x1ZGUgIkpTQ2xpZW50UmVj
dExpc3QuY3BwIgotI2luY2x1ZGUgIkpTQ2xpcGJvYXJkLmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSAiSlNEYXRhYmFz
ZS5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0Rh
dGFiYXNlU3luYy5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXIuY3BwIgogI2luY2x1ZGUg
IkpTRGF0YVRyYW5zZmVySXRlbS5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtTGlz
dC5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsy
NTEsNiBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGls
ZE5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vQ2xpZW50UmVjdExpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGlw
Ym9hcmQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Db21tZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9kb20vQ29tcG9zaXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0N1c3Rv
bUV2ZW50LmlkbCBcCkBAIC0yNjAsNiArMjU5LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9ET01TdHJpbmdMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NU3RyaW5n
TWFwLmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVyLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGV2aWNlTW90aW9u
RXZlbnQuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjY4NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzgsNyAr
NzgsNyBAQCBfX1pON1dlYkNvcmUxMEZvbnRHbHlwaHMxNXJlbGVhc2VGb250RGF0CiBfX1pON1dl
YkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktO
U185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJB
dG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRm
b3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQotX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50
NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9N
V2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBi
b2FyZEVFRWIKK19fWk43V2ViQ29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWlj
U3RyaW5nRWJiZE5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVf
SU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzEyRGF0YVRyYW5zZmVyRUVFYgogX19aTjdXZWJD
b3JlMTBQYXN0ZWJvYXJkMTR3cml0ZVBsYWluVGV4dEVSS04zV1RGNlN0cmluZ0VOUzBfMThTbWFy
dFJlcGxhY2VPcHRpb25FCiBfX1pON1dlYkNvcmUxMFBhc3RlYm9hcmQyMWNyZWF0ZUZvckNvcHlB
bmRQYXN0ZUV2CiBfX1pON1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgpAQCAtMTg5
LDYgKzE4OSw3IEBAIF9fWk43V2ViQ29yZTExbWVtb3J5Q2FjaGVFdgogX19aTjdXZWJDb3JlMTFz
dGFydE9mTGluZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQogX19aTjdXZWJDb3JlMTFzdGFydE9m
V29yZEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5TXzlFV29yZFNpZGVFCiBfX1pON1dlYkNvcmUx
MXdyaXRlVG9GaWxlRWlQS2NpCitfX1pON1dlYkNvcmUxMkRhdGFUcmFuc2ZlckQxRXYKIF9fWk43
V2ViQ29yZTEyRWRpdGluZ1N0eWxlRDFFdgogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMG1v
dXNlTW92ZWRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRI
YW5kbGVyMTRzY3JvbGxPdmVyZmxvd0VOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdy
YW51bGFyaXR5RVBOU180Tm9kZUUKQEAgLTEzMDcsNyArMTMwOCw2IEBAIF9fWk43V2ViQ29yZThv
cGVuRmlsZUVSS04zV1RGNlN0cmluZ0VOU18KIF9fWk43V2ViQ29yZTh0b1N0cmluZ0VSS04zV1RG
NlZlY3RvcklOU18xMVByb3h5U2VydmVyRUxtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9f
Wk43V2ViQ29yZTh0b1VJbnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMElu
dGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTh0b1VJbnQ2NEVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbkUKLV9fWk43V2ViQ29yZTlDbGlwYm9hcmREMUV2CiBfX1pON1dlYkNvcmU5RE9NV2luZG93
MzBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHNFdgogX19aTjdXZWJDb3JlOURPTVdpbmRv
dzM2ZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzRXYKIF9fWk43V2ViQ29yZTlG
bG9hdFJlY3Q1c2NhbGVFZmYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dl
YkNvcmUueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvV2ViQ29yZS54Y2NvbmZpZwkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYg
KzExMiw2IEBAIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfUHJvZHUKIEpBVkFT
Q1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19lbmdpbmVlcmluZyA9ICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKIEVYQ0xVREVE
X1NPVVJDRV9GSUxFX05BTUVTID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU18kKFBMQVRG
T1JNX05BTUUpKTsKLUVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zID0gKi50aWZm
ICpDdXJzb3IucG5nIEFjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gQVhPYmplY3RDYWNoZU1hYy5t
bSBDbGlwYm9hcmRNYWMubW0gQ29sb3JNYWMubW0gQ3Vyc29yLmNwcCBDdXJzb3JNYWMubW0gRWRp
dG9yTWFjLm1tIEV2ZW50SGFuZGxlck1hYy5tbSBFdmVudExvb3BNYWMubW0gR2VvbG9jYXRpb25T
ZXJ2aWNlTWFjLm1tIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIEljb25EYXRhYmFzZS5j
cHAgSWNvbk1hYy5tbSBLaWxsUmluZ01hYy5tbSBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
bW0gTUlNRVR5cGVSZWdpc3RyeU1hYy5tbSBNZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBOU1Nj
cm9sbGVySW1wRGV0YWlscy5tbSBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgUGFzdGVib2Fy
ZE1hYy5tbSBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBQbGF0Zm9ybU1vdXNlRXZlbnRNYWMu
bW0gUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tIFBsYXRmb3JtU2NyZWVuTWFjLm1tIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAgUnVu
TG9vcE1hYy5tbSBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYy5tbSBTY3JvbGxWaWV3TWFjLm1tIFNjcm9sbGJhclRoZW1lTWFjLm1tIFNoYXJl
ZFRpbWVyTWFjLm1tIFNvdW5kTWFjLm1tIFN5c3RlbVRpbWVNYWMuY3BwIFRoZW1lTWFjLm1tIFRo
cmVhZENoZWNrLm1tIFVzZXJBZ2VudE1hYy5tbSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIFdlYkNvcmVVUkxSZXNwb25zZS5tbSBX
ZWJDb3JlVmlldy5tIFdlYkZvbnRDYWNoZS5tbSBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Lm1tIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gV2ViV2luZG93QW5p
bWF0aW9uLm1tIFdpZGdldE1hYy5tbSBtYWMvTGF5ZXJQb29sLm1tIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5jcHA7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9ICoudGlm
ZiAqQ3Vyc29yLnBuZyBBY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIEFYT2JqZWN0Q2FjaGVNYWMu
bW0gQ29sb3JNYWMubW0gQ3Vyc29yLmNwcCBDdXJzb3JNYWMubW0gRGF0YVRyYW5zZmVyTWFjLm1t
IEVkaXRvck1hYy5tbSBFdmVudEhhbmRsZXJNYWMubW0gRXZlbnRMb29wTWFjLm1tIEdlb2xvY2F0
aW9uU2VydmljZU1hYy5tbSBHcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcCBJY29uRGF0YWJh
c2UuY3BwIEljb25NYWMubW0gS2lsbFJpbmdNYWMubW0gTG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0Lm1tIE1JTUVUeXBlUmVnaXN0cnlNYWMubW0gTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0g
TlNTY3JvbGxlckltcERldGFpbHMubW0gTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwIFBhc3Rl
Ym9hcmRNYWMubW0gUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gUGxhdGZvcm1Nb3VzZUV2ZW50
TWFjLm1tIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBQbGF0Zm9ybVNjcmVlbk1hYy5tbSBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3Bw
IFJ1bkxvb3BNYWMubW0gU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVNYWMubW0gU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVNYWMubW0gU2Nyb2xsVmlld01hYy5tbSBTY3JvbGxiYXJUaGVtZU1hYy5tbSBT
aGFyZWRUaW1lck1hYy5tbSBTb3VuZE1hYy5tbSBTeXN0ZW1UaW1lTWFjLmNwcCBUaGVtZU1hYy5t
bSBUaHJlYWRDaGVjay5tbSBVc2VyQWdlbnRNYWMubW0gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBXZWJDb3JlVVJMUmVzcG9uc2Uu
bW0gV2ViQ29yZVZpZXcubSBXZWJGb250Q2FjaGUubW0gV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIFdlYldpbmRv
d0FuaW1hdGlvbi5tbSBXaWRnZXRNYWMubW0gbWFjL0xheWVyUG9vbC5tbSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuY3BwOwogRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lc2ltdWxh
dG9yID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyk7CiBFWENMVURFRF9T
T1VSQ0VfRklMRV9OQU1FU19tYWNvc3ggPSAqSU9TLmggKklPUy5jcHAgKklPUy5tbSBKU1RvdWNo
KiBKU0dlc3R1cmUqIERPTUdlc3R1cmUqIERPTVRvdWNoKiBLaWxsUmluZ05vbmUuY3BwIFdBS0Fw
cEtpdFN0dWJzLmggV0FLQ2xpcFZpZXcuaCBXQUtSZXNwb25kZXIuaCBXQUtTY3JvbGxWaWV3Lmgg
V0FLVmlldy5oIFdBS1ZpZXdQcml2YXRlLmggV0FLV2luZG93LmggV0tDb250ZW50T2JzZXJ2YXRp
b24uaCBXS0dyYXBoaWNzLmggV0tUeXBlcy5oIFdLVXRpbGl0aWVzLmggV0tWaWV3LmggV0tWaWV3
UHJpdmF0ZS5oIFdlYkNvcmVUaHJlYWQuaCBXZWJDb3JlVGhyZWFkTWVzc2FnZS5oIFdlYkNvcmVU
aHJlYWRSdW4uaCBXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlLmg7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2
Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTk5NSwyMCArOTk1LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDbGlwYm9hcmQu
Y3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTM0NSw2ICsxMzMxLDIwIEBACiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRGF0YVRyYW5zZmVyLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjM3Nyw3ICsxMjM3
Nyw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENs
aXBib2FyZC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2FyZEV2
ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTIzOTEsNyArMTIzOTEsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9hcmRFdmVudC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0MDUsNyArMTI0MDUsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb2xsZWN0aW9u
SW5kZXhDYWNoZS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbW1lbnQu
Y3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBA
IC0xMjQxOSw3ICsxMjQxOSw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXENvbW1lbnQuY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRv
bVxDb21wb3NpdGlvbkV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0MzMsNyArMTI0MzMsNyBAQAogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb21wb3NpdGlvbkV2ZW50LmNwcCI+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ29udGFpbmVyTm9kZS5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTEyNDQ3LDcgKzEy
NDQ3LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21c
Q29udGFpbmVyTm9kZS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0NjEsNyArMTI0NjEsNyBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXEN1c3RvbUV2ZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTI0NzUsNyArMTI0NzUsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGRvbVxDdXN0b21FdmVudC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZG9tXERhdGFzZXRET01TdHJpbmdNYXAuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjQ4OSw3ICsxMjQ4OSw3IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFzZXRET01TdHJpbmdNYXAu
Y3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxEYXRhVHJhbnNmZXIuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA1
NCw3ICsxNjA1NCw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNDbGlwYm9hcmRDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCI+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYwNjgs
NyArMTYwNjgsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGJpbmRpbmdzXGpzXEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCI+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0NTU1J1bGVDdXN0b20uY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA4Miw3ICsx
NjA4Miw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNDU1NSdWxlQ3VzdG9tLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYwOTYsNyArMTYwOTYsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
Q1NTUnVsZUxpc3RDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAiPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MTEwLDcgKzE2MTEwLDcgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xK
U0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGJpbmRpbmdzXGpzXEpTQ1NTVmFsdWVDdXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjEyNCw3ICsxNjEyNCw3IEBACiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlND
U1NWYWx1ZUN1c3RvbS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYxMzgsNyArMTYxMzgsNyBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAiPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIj4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjE1Miw3
ICsxNjE1Miw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIj4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTgxMTMsNyAr
MTgxMTMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ2hhcmFjdGVyRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpZW50UmVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUp
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpZW50UmVjdExpc3QuaCIgLz4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaXBib2Fy
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTQ29tbWFuZExpbmVBUElIb3N0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb21tZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb21wb3NpdGlvbkV2ZW50LmgiIC8+CkBA
IC0xODEzOCw2ICsxODEzNyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNDdXN0b21FdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YWJhc2UuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFiYXNlU3luYy5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0
YVRyYW5zZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5oIiAvPgpAQCAtMjAyMzIsOCArMjAyMzIsNiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZG9tXENsYXNzTm9kZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRvbVxDbGllbnRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxkb21cQ2xpZW50UmVjdExpc3QuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxDbGlwYm9hcmQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9h
cmRBY2Nlc3NQb2xpY3kuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlw
Ym9hcmRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENvbGxlY3Rp
b25JbmRleENhY2hlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ29tbWVu
dC5oIiAvPgpAQCAtMjAyNDMsNiArMjAyNDEsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZG9tXENyb3NzVGhyZWFkVGFzay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXEN1c3RvbUV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0
YXNldERPTVN0cmluZ01hcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERh
dGFUcmFuc2Zlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERh
dGFUcmFuc2Zlckl0ZW0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMzA1NCw5ICszMDU0LDYgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDbGllbnRSZWN0TGlzdC5jcHAiPgogICAgICAgPEZpbHRl
cj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRvbVxDbGlwYm9hcmQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+Ci0gICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ2xpcGJvYXJkRXZl
bnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0zMDc4LDYgKzMwNzUsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFz
ZXRET01TdHJpbmdNYXAuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVyLmNw
cCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00MjYzLDkgKzQyNjMsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDREFUQVNlY3Rpb25D
dXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ2xpcGJv
YXJkQ3VzdG9tLmNwcCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0Nv
bW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDI4Nyw2ICs0Mjg0LDkgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0RhdGFUcmFuc2ZlckN1
c3RvbS5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNTIyNCw5ICs1MjI0LDYgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaWVudFJlY3RM
aXN0LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNDbGlwYm9hcmQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRl
cj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNTI5OSw2ICs1Mjk2
LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0RhdGFiYXNlU3luYy5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVyLmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRT
b3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0x
MDAwMywxMiArMTAwMDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaWVu
dFJlY3RMaXN0LmgiPgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9hcmQuaCI+Ci0gICAgICA8
RmlsdGVyPmRvbTwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZG9tXENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIj4KLSAgICAgIDxGaWx0ZXI+ZG9t
PC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
b21cQ2xpcGJvYXJkRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTAwMzMsNiArMTAwMjcsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRvbVxEYXRhc2V0RE9NU3RyaW5nTWFwLmgiPgogICAgICAgPEZpbHRlcj5kb208L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxE
YXRhVHJhbnNmZXIuaCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeS5oIj4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5oIj4KICAgICAg
IDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMzAzOCw5ICsxMzAz
OCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNDbGllbnRSZWN0TGlzdC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0NsaXBib2FyZC5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIj4KICAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEzMTEz
LDYgKzEzMTEwLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0RhdGFiYXNlU3luYy5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlci5oIj4KKyAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJl
KVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0uaCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3MTUsNyArMTcxNSw3IEBACiAJ
CTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjM0ODA5MjBFRUY1MEQ0MDBBQzFC
NDEgLyogSW1hZ2VTb3VyY2VDRy5oICovOyB9OwogCQk0QjZGQTZGNDBDMzlFNDhDMDAwODcwMTEg
LyogU21hcnRSZXBsYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEI2RkE2RjcwQzM5
RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBTbWFy
dFJlcGxhY2VDRi5jcHAgKi87IH07Ci0JCTRCOEFGNEFBMEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
QjhBRjRBQTBCMUNFMDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjhBRjRBOTBCMUNF
MDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEJBRTk1QjEwQjJGQTlDRTAwQUVE
OEEwIC8qIEVkaXRvckRlbGV0ZUFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEJBRTk1QjAwQjJGQTlDRTAwQUVEOEEwIC8qIEVkaXRvckRlbGV0
ZUFjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTRFMTk1OTIxMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkxRjBBMzlE
QUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuY3BwICovOyB9OwogCQk0RTE5NTkyMjBB
MzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBN
ZWRpYUZlYXR1cmVOYW1lcy5oICovOyB9OwpAQCAtMjQ5Myw3ICsyNDkzLDcgQEAKIAkJODREMEM0
MDYxMTE1RjFFQTAwMThBQTM0IC8qIEFmZmluZVRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODREMEM0MDUxMTE1RjFFQTAwMThBQTM0IC8q
IEFmZmluZVRyYW5zZm9ybS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1MDMxQjNDMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAz
MUIyNjBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovOyB9OwogCQk4
NTAzMUIzRDBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjI3MEE0NEVGQzcwMEY5
OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oICovOyB9OwotCQk4NTAzMUIzRTBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODUwMzFCM0UwQTQ0
RUZDNzAwRjk5MkUwIC8qIERhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCMjgwQTQ0RUZDNzAwRjk5MkUwIC8qIERhdGFUcmFu
c2Zlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg1MDMxQjNGMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIyOTBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwICovOyB9OwogCQk4NTAzMUI0MDBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDMxQjJBMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVu
dC5oICovOyB9OwogCQk4NTAzMUI0MTBBNDRFRkM3MDBGOTkyRTAgLyogRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCMkIwQTQ0RUZD
NzAwRjk5MkUwIC8qIEV2ZW50LmNwcCAqLzsgfTsKQEAgLTMyNzQsNyArMzI3NCw3IEBACiAJCTkz
RjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMkIyNEYwNTZCRjE1RjAw
RDJCNzcxIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgKi87IH07CiAJCTkzRjE5QUY4MDgyNDVF
NTkwMDFFOUFCQyAvKiBQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCRTkxRkM4QzA2MTMzNjY2MDA1RTM3OTAgLyogUG9zaXRpb24uY3Bw
ICovOyB9OwogCQk5M0YxOUFGRDA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGNkEz
RDUwNjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCAqLzsgfTsKLQkJOTNG
MTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIENsaXBib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAv
KiBDbGlwYm9hcmRNYWMubW0gKi87IH07CisJCTkzRjE5QUZGMDgyNDVFNTkwMDFFOUFCQyAvKiBE
YXRhVHJhbnNmZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogRGF0YVRyYW5zZmVyTWFjLm1tICov
OyB9OwogCQk5M0YxOUIwMzA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYy
NDkwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCAqLzsgfTsKIAkJ
OTNGMTlCMDQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYyNEIwNkQxOEE3RTAwNEE2
RkEzIC8qIFhTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlB
QkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9j
ZXNzb3JMaWJ4c2x0LmNwcCAqLzsgfTsKQEAgLTM3NzcsNyArMzc3Nyw3IEBACiAJCUE3N0UxRkVG
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAv
KiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAqLzsgfTsKIAkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3Q0I2
IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVy
LmggKi87IH07CiAJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZB
NjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwotCQlBNzg0OTQx
QjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlw
Ym9hcmQuY3BwICovOyB9OworCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5z
ZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBEYXRhVHJhbnNmZXIuY3BwICovOyB9OwogCQlBNzhF
NTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFE
OUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzhFNTI3MDEzNDZCRDE3
MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJT
aGFkb3dFbGVtZW50LmggKi87IH07CiAJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CkBA
IC01MTk1LDkgKzUxOTUsOSBAQAogCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGlj
YWxQb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0EyNTcxNDEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hl
LmggKi87IH07CiAJCUJDQTJCMDYxMTA1MDQ3NjAwMDQzQkQxQyAvKiBVc2VyU2NyaXB0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0EyQjA2MDEwNTA0
NzVGMDA0M0JEMUMgLyogVXNlclNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDQTJCMDhCMTA1MDVCQ0QwMDQzQkQxQyAvKiBVc2VyU2Ny
aXB0VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQTJCMDhBMTA1MDVCQ0QwMDQzQkQxQyAvKiBVc2VyU2NyaXB0VHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0E4M0U0RjBEN0NFMUU5
MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJk
LmNwcCAqLzsgfTsKLQkJQkNBODNFNTAwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4M0U0RTBE
N0NFMUU5MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuaCAqLzsgfTsKLQkJQkNBODNFNTIwRDdDRTIw
NTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTgzRTUxMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0Ns
aXBib2FyZEN1c3RvbS5jcHAgKi87IH07CisJCUJDQTgzRTRGMEQ3Q0UxRTkwMDM0MjFBOCAvKiBK
U0RhdGFUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICov
OyB9OworCQlCQ0E4M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTgzRTRFMEQ3Q0Ux
RTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oICovOyB9OworCQlCQ0E4M0U1MjBEN0NFMjA1
MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNBODQ2RDYwREM2N0EzNTAwMjZDMzA5
IC8qIFJlbmRlclJlcGxpY2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3Bw
ICovOyB9OwogCQlCQ0E4NDZENzBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODQ2RDUwREM2
N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuaCAqLzsgfTsKIAkJQkNBOEM4MUUxMUUzRDM2
OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBOEM4MUMxMUUzRDM2OTAwODEyRkI3IC8qIEJh
Y2tGb3J3YXJkQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03OTU4LDcgKzc5NTgsNyBAQAogCQkyRDhGRUJEQjE0M0UzRUY3MDA3
MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTQ3Jvc3NmYWRlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEOTA2NjA1MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBi
b2FyZE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENsaXBib2FyZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAv
KiBEYXRhVHJhbnNmZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyRDlBMjQ2QTE1QjlC
QkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRE9NU2VjdXJpdHlQb2xpY3kuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRDlBMjQ2QjE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xp
Y3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU2VjdXJpdHlQb2xpY3ku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5QTI0NzAxNUI5QzI5NTAwRDM0NTI3
IC8qIERPTURPTVNlY3VyaXR5UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTURPTVNlY3VyaXR5UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04Njg1LDcgKzg2ODUsNyBAQAogCQk0QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VT
b3VyY2VDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZUNH
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCNkZBNkYyMEMzOUU0OEMwMDA4NzAx
MSAvKiBTbWFydFJlcGxhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU21h
cnRSZXBsYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCNkZBNkY2MEMzOUU0
QTEwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2VDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTbWFydFJlcGxhY2VDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZEFjY2Vzc1BvbGlj
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QjhBRjRBOTBCMUNFMDJCMDA2ODc2
OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEJBRTk1QjAwQjJGQTlDRTAwQUVEOEEwIC8qIEVkaXRvckRlbGV0ZUFjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0b3JEZWxldGVBY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEUxOTU5MUYwQTM5REFCQTAwMjIwRkU1
IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYUZlYXR1cmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFGZWF0dXJlTmFtZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1MzcsNyArOTUzNyw3IEBACiAJCTg0RDBDNDA1MTEx
NUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQWZmaW5lVHJhbnNmb3JtLmg7IHBhdGggPSB0cmFuc2Zvcm1zL0FmZmluZVRy
YW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTAzMUIyNjBBNDRFRkM3
MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJlZm9yZVVubG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODUwMzFCMjcwQTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9yZVVubG9hZEV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVVbmxvYWRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAg
LyogQ2xpcGJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwYm9h
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUwMzFCMjgwQTQ0RUZDNzAwRjk5
MkUwIC8qIERhdGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjI5MEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZEV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjJCMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MzUsNyArMTA4MzUsNyBAQAogCQlBNzdF
MUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29w
ZUFkb3B0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJlZVNjb3BlQWRv
cHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzgxQzZBNjEzODI4QjVEMDAx
MkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5zZmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEg
LyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1ldGVyU2hhZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3OEU1MjZFMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxD
aGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNDc3LDEwICsxMjQ3
NywxMCBAQAogCQlCQ0EyQjA4QTEwNTA1QkNEMDA0M0JEMUMgLyogVXNlclNjcmlwdFR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJTY3JpcHRUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2No
ZWR1bGVkQWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
aGVkdWxlZEFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTM3OEJC
MEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQTgzRTM2MEQ3Q0RDNEUwMDM0MjFBOCAvKiBDbGlwYm9hcmQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENsaXBib2FyZC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDQTgzRTREMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0NsaXBib2FyZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0NsaXBib2Fy
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaXBib2FyZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlND
bGlwYm9hcmRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNDbGlwYm9hcmRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E4
M0UzNjBEN0NEQzRFMDAzNDIxQTggLyogRGF0YVRyYW5zZmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEYXRhVHJhbnNmZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
Q0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhVHJhbnNmZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQ0E4M0U0RTBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJh
bnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhVHJhbnNmZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4
IC8qIEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVwbGljYS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTg0NkQ1MERDNjdBMzUwMDI2QzMwOSAvKiBS
ZW5kZXJSZXBsaWNhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJl
cGxpY2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBOEM4MUMxMUUzRDM2OTAw
ODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4OTQxLDEyICsxODk0MSwxMiBAQAogCQkJCTkzRjlCNzlGMEJBNjAzMjYwMDg1
NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovLAogCQkJCTY1REYzMURGMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0NoYXJhY3RlckRhdGEuY3BwICovLAogCQkJCTY1REYzMUUwMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0NoYXJhY3RlckRhdGEuaCAqLywKLQkJCQlCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTgg
LyogSlNDbGlwYm9hcmQuY3BwICovLAotCQkJCUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBK
U0NsaXBib2FyZC5oICovLAogCQkJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1l
bnQuY3BwICovLAogCQkJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAq
LywKIAkJCQlGRTZGRDQ4QjBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGluYXRlcy5jcHAgKi8s
CiAJCQkJRkU2RkQ0OEMwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuaCAqLywKKwkJ
CQlCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICovLAorCQkJ
CUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oICovLAogCQkJCTMx
RkIxQTYzMTIwQTVEM0YwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcCAqLywKIAkJ
CQkzMUZCMUE2NDEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZpY2VNb3Rpb25FdmVudC5oICovLAog
CQkJCTU5QTg2MDA1MTE5REFGN0YwMERFRjFFRiAvKiBKU0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLApAQCAtMjA1MTgsNyArMjA1MTgsNiBAQAogCQkJCTQ5RUVEMTRCMTA1MTk3MTkwMDA5
OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJNDlF
RUQxNEQxMDUxOTcxQTAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAgKi8sCiAJCQkJOTNCQTU5QjEwRjJBQTVGRTAwOEU4RTk5IC8qIEpTQ0RBVEFTZWN0aW9uQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNDbGlwYm9hcmRD
dXN0b20uY3BwICovLAogCQkJCUE1ODRGRTM3MTg2NERBQzEwMDg0M0IxMCAvKiBKU0NvbW1hbmRM
aW5lQVBJSG9zdEN1c3RvbS5jcHAgKi8sCiAJCQkJMjA5QjQ1NkExNjc5NkE3RTAwRTU0RTRFIC8q
IEpTQ3J5cHRvQ3VzdG9tLmNwcCAqLywKIAkJCQlFMTU3QThFNjE4MTg0QzY3MDA5RjgyMUQgLyog
SlNDcnlwdG9LZXlDdXN0b20uY3BwICovLApAQCAtMjA1MjksNiArMjA1MjgsNyBAQAogCQkJCUJD
NTgyNUYyMEMwQjg5MzgwMDUzRjFCNSAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
ICovLAogCQkJCUFENzI2RkVBMTZEOUY0MEIwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uaCAqLywKIAkJCQlCQzIwRkI3RTBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1
ZUN1c3RvbS5jcHAgKi8sCisJCQkJQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4IC8qIEpTRGF0YVRy
YW5zZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIxMjBB
NUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTU5
MEUxQjRBMTFFNEVGNzAwMDY5Rjc4NCAvKiBKU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20u
Y3BwICovLApAQCAtMjIxMzcsMTMgKzIyMTM3LDggQEAKIAkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBD
RDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovLAogCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENE
MkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0TGlzdC5pZGwgKi8sCi0JCQkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdB
IC8qIENsaXBib2FyZC5jcHAgKi8sCi0JCQkJODUwMzFCMjgwQTQ0RUZDNzAwRjk5MkUwIC8qIENs
aXBib2FyZC5oICovLAotCQkJCUJDQTgzRTM2MEQ3Q0RDNEUwMDM0MjFBOCAvKiBDbGlwYm9hcmQu
aWRsICovLAotCQkJCTRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaCAqLywKIAkJCQk4NTAzMUIyOTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwICovLAogCQkJCTg1MDMxQjJBMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVu
dC5oICovLAotCQkJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0g
Ki8sCiAJCQkJRTQyNUE0OTkxODI5MkI4NDAwMjBDRkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hl
LmggKi8sCiAJCQkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcCAqLywKIAkJCQk2NTUwQjY5NzA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAg
Ki8sCkBAIC0yMjE2Miw2ICsyMjE1NywxMSBAQAogCQkJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBB
NyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8q
IEN1c3RvbUV2ZW50LmggKi8sCiAJCQkJNjJDRDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmlkbCAqLywKKwkJCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5z
ZmVyLmNwcCAqLywKKwkJCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVy
LmggKi8sCisJCQkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFUcmFuc2Zlci5pZGwg
Ki8sCisJCQkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIERhdGFUcmFuc2Zlck1hYy5tbSAq
LywKKwkJCQk0QjhBRjRBOTBCMUNFMDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9s
aWN5LmggKi8sCiAJCQkJQkM2NDY0MUIxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJp
bmdNYXAuY3BwICovLAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaCAqLywKQEAgLTIzMTIwLDggKzIzMTIwLDggQEAKIAkJCQlCQzkwNEI3NzBEMTA5
OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1
N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJODUwMzFCM0UwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNEI4QUY0QUEwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vzc1BvbGlj
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODUwMzFCM0UwQTQ0RUZDNzAwRjk5MkUwIC8qIERhdGFU
cmFuc2Zlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEI4QUY0QUEwQjFDRTAyQjAwNjg3NjkwIC8q
IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAw
QTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
QjkyREY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QUFCRDEzMTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI0MjcxLDcgKzI0MjcxLDcgQEAKIAkJCQk2NURGMzFGNDA5RDFDQzYwMDAw
QkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU4ODBG
M0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Mw
NjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQkNBODNFNTAwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQ0E4M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc4MSw5ICsyNjc4MSw5
IEBACiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3
QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc4NDk0MUIwQjVGRTUwNzAw
MUUyMzdBIC8qIERhdGFUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBB
NDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
OTNGMTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIENsaXBib2FyZE1hYy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTkzRjE5QUZGMDgyNDVFNTkwMDFFOUFCQyAvKiBEYXRhVHJhbnNmZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMxRjEgLyogQ2xvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RFQTc2MzQxNDYwQjU2RjAwOEIzMUYxIC8qIENsb2NrR2VuZXJp
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2NjBCMDUzODE0MDAyQ0U2NEYgLyogQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzY3Miw4ICsyNzY3Miw4IEBACiAJCQkJNjVERjMx
RjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQTgzRTRGMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0Ns
aXBib2FyZC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0E4M0U1MjBEN0NFMjA1MDAzNDIxQTgg
LyogSlNDbGlwYm9hcmRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNBODNFNEYwRDdD
RTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJD
QTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1h
bmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTg0RkUzODE4NjREQUMxMDA4
NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20u
Y3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ns
aXBib2FyZEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDbGlwYm9hcmQuaCIKLQotI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUpT
VmFsdWUgSlNDbGlwYm9hcmQ6OnR5cGVzKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBW
ZWN0b3I8U3RyaW5nPiB0eXBlcyA9IGltcGwoKS50eXBlcygpOwotICAgIHJldHVybiB0eXBlcy5p
c0VtcHR5KCkgPyBqc051bGwoKSA6IGpzQXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHR5cGVz
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMTY2
ODczKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5j
cHA6MTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVHJhbnNmZXJD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkpTQ2xpcGJvYXJkLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpT
Q2xpcGJvYXJkOjp0eXBlcyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgVmVjdG9yPFN0
cmluZz4gdHlwZXMgPSBpbXBsKCkudHlwZXMoKTsKKyAgICByZXR1cm4gdHlwZXMuaXNFbXB0eSgp
ID8ganNOdWxsKCkgOiBqc0FycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0eXBlcyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsMTUgKzI3LDE1IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkpTQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXIuaCIKIAot
I2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgSlNDbGlw
Ym9hcmQ6OnR5cGVzKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTVmFsdWUgSlNEYXRhVHJhbnNm
ZXI6OnR5cGVzKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0
eXBlcyA9IGltcGwoKS50eXBlcygpOwogICAgIHJldHVybiB0eXBlcy5pc0VtcHR5KCkgPyBqc051
bGwoKSA6IGpzQXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHR5cGVzKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNFdmVudC5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0
YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhlYWRlcnMu
aCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
Ci0jaW5jbHVkZSAiSlNDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJKU0RhdGFUcmFuc2Zlci5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9DbGlwYm9hcmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0MjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCi0KLSNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgotI2luY2x1ZGUgIkNhY2hlZEltYWdlQ2xpZW50LmgiCi0jaW5jbHVkZSAiRHJhZ0RhdGEu
aCIKLSNpbmNsdWRlICJFZGl0b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgotI2luY2x1ZGUg
IkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KLWNsYXNz
IERyYWdJbWFnZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkSW1hZ2VDbGllbnQgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKERyYWdJbWFnZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IERyYWdJbWFnZUxvYWRlcihDbGlwYm9hcmQq
KTsKLSAgICB2b2lkIHN0YXJ0TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4mKTsKLSAgICB2b2lkIHN0b3BMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZElt
YWdlPiYpOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVk
SW1hZ2UqLCBjb25zdCBJbnRSZWN0Kikgb3ZlcnJpZGU7Ci0gICAgQ2xpcGJvYXJkKiBtX2NsaXBi
b2FyZDsKLX07Ci0KLSNlbmRpZgotCi1DbGlwYm9hcmQ6OkNsaXBib2FyZChDbGlwYm9hcmRBY2Nl
c3NQb2xpY3kgcG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIENsaXBi
b2FyZFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKLSAgICA6IG1fcG9saWN5KHBvbGljeSkK
LSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
Ci0gICAgLCBtX2ZvckRyYWcodHlwZSAhPSBDb3B5QW5kUGFzdGUpCi0gICAgLCBtX2ZvckZpbGVE
cmFnKGZvckZpbGVEcmFnKQotICAgICwgbV9kcm9wRWZmZWN0KEFTQ0lJTGl0ZXJhbCgidW5pbml0
aWFsaXplZCIpKQotICAgICwgbV9lZmZlY3RBbGxvd2VkKEFTQ0lJTGl0ZXJhbCgidW5pbml0aWFs
aXplZCIpKQotICAgICwgbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2UoZmFsc2UpCi0jZW5kaWYKLXsK
LSNpZiAhRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIHR5cGUg
PT0gQ29weUFuZFBhc3RlKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvckZpbGVEcmFnLCAhZm9yRmls
ZURyYWcpOwotI2VuZGlmCi19Ci0KLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkKHBvbGljeSwgcG9saWN5ID09IENsaXBib2Fy
ZFdyaXRhYmxlID8gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpIDogUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkpKTsKLX0KLQotQ2xpcGJvYXJkOjp+Q2xpcGJvYXJkKCkKLXsK
LSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGlmIChtX2RyYWdJbWFnZUxvYWRlciAmJiBt
X2RyYWdJbWFnZSkKLSAgICAgICAgbV9kcmFnSW1hZ2VMb2FkZXItPnN0b3BMb2FkaW5nKG1fZHJh
Z0ltYWdlKTsKLSNlbmRpZgotfQotICAgIAotdm9pZCBDbGlwYm9hcmQ6OnNldEFjY2Vzc1BvbGlj
eShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQotewotICAgIC8vIE9uY2UgdGhlIGNsaXBi
b2FyZCBnb2VzIG51bWIsIGl0IGNhbiBuZXZlciBnbyBiYWNrLgotICAgIEFTU0VSVChtX3BvbGlj
eSAhPSBDbGlwYm9hcmROdW1iIHx8IHBvbGljeSA9PSBDbGlwYm9hcmROdW1iKTsKLSAgICBtX3Bv
bGljeSA9IHBvbGljeTsKLX0KLQotYm9vbCBDbGlwYm9hcmQ6OmNhblJlYWRUeXBlcygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fcG9saWN5ID09IENsaXBib2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5
ID09IENsaXBib2FyZFR5cGVzUmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFi
bGU7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkRGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fcG9saWN5ID09IENsaXBib2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2Fy
ZFdyaXRhYmxlOwotfQotCi1ib29sIENsaXBib2FyZDo6Y2FuV3JpdGVEYXRhKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7Ci19Ci0KLXZvaWQgQ2xp
cGJvYXJkOjpjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKQotewotICAgIGlmICghY2FuV3Jp
dGVEYXRhKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIodHlw
ZSk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpjbGVhckRhdGEoKQotewotICAgIGlmICghY2FuV3Jp
dGVEYXRhKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIoKTsK
LX0KLQotU3RyaW5nIENsaXBib2FyZDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0
Ci17Ci0gICAgaWYgKCFjYW5SZWFkRGF0YSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0K
LSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGlmIChtX2ZvckZpbGVEcmFnKQotICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnJl
YWRTdHJpbmcodHlwZSk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkOjpzZXREYXRhKGNvbnN0IFN0cmlu
ZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQotewotICAgIGlmICghY2FuV3JpdGVEYXRhKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
aWYgKG1fZm9yRmlsZURyYWcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAg
cmV0dXJuIG1fcGFzdGVib2FyZC0+d3JpdGVTdHJpbmcodHlwZSwgZGF0YSk7Ci19Ci0KLVZlY3Rv
cjxTdHJpbmc+IENsaXBib2FyZDo6dHlwZXMoKSBjb25zdAotewotICAgIGlmICghY2FuUmVhZFR5
cGVzKCkpCi0gICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotCi0gICAgcmV0dXJuIG1f
cGFzdGVib2FyZC0+dHlwZXMoKTsKLX0KLQotUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJk
OjpmaWxlcygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlIGNvdWxkIGNhY2hlIHRoZSBjb21w
dXRlZCBmaWxlIGxpc3QgaWYgaXQgd2FzIG5lY2Vzc2FyeSBhbmQgaGVscGZ1bC4KLSAgICAvLyBD
dXJyZW50bHksIGVhY2ggYWNjZXNzIGdldHMgYSBuZXcgY29weSwgYW5kIHRodXMgc2V0RGF0YSgp
IG1vZGlmaWNhdGlvbnMgdG8gdGhlCi0gICAgLy8gY2xpcGJvYXJkIGFyZSBub3QgcmVmbGVjdGVk
IGluIGFueSBGaWxlTGlzdCBvYmplY3RzIHRoZSBwYWdlIGhhcyBhY2Nlc3NlZCBhbmQgc3RvcmVk
LgotCi0gICAgaWYgKCFjYW5SZWFkRGF0YSgpKQotICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNy
ZWF0ZSgpOwotCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAobV9mb3JEcmFnICYm
ICFtX2ZvckZpbGVEcmFnKQotICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOwotI2Vu
ZGlmCi0KLSAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMgPSBtX3Bhc3RlYm9hcmQtPnJlYWRG
aWxlbmFtZXMoKTsKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IGZpbGVMaXN0ID0gRmlsZUxpc3Q6OmNy
ZWF0ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsZW5hbWVzLnNpemUoKTsgKytp
KQotICAgICAgICBmaWxlTGlzdC0+YXBwZW5kKEZpbGU6OmNyZWF0ZShmaWxlbmFtZXNbaV0sIEZp
bGU6OkFsbENvbnRlbnRUeXBlcykpOwotICAgIHJldHVybiBmaWxlTGlzdC5yZWxlYXNlKCk7Ci19
Ci0KLSNpZiAhRU5BQkxFKERSQUdfU1VQUE9SVCkKLQotU3RyaW5nIENsaXBib2FyZDo6ZHJvcEVm
ZmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9uZSIpOwotfQotCi12
b2lkIENsaXBib2FyZDo6c2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmKQotewotfQotCi1TdHJp
bmcgQ2xpcGJvYXJkOjplZmZlY3RBbGxvd2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJ1bmluaXRpYWxpemVkIik7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpzZXRFZmZlY3RB
bGxvd2VkKGNvbnN0IFN0cmluZyYpCi17Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpzZXREcmFnSW1h
Z2UoRWxlbWVudCosIGludCwgaW50KQotewotfQotCi0jZWxzZQotCi1QYXNzUmVmUHRyPENsaXBi
b2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDbGlwYm9hcmQoQ2xpcGJvYXJkV3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKCksIERyYWdBbmREcm9wKSk7Ci19Ci0KLVBhc3NSZWZQdHI8Q2xpcGJv
YXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2FyZEFjY2Vzc1BvbGlj
eSBwb2xpY3ksIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENsaXBib2FyZChwb2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KGRyYWdEYXRhKSwgRHJhZ0FuZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5zRmlsZXMoKSkpOwotfQot
Ci1ib29sIENsaXBib2FyZDo6Y2FuU2V0RHJhZ0ltYWdlKCkgY29uc3QKLXsKLSAgICAvLyBOb3Rl
IHRoYXQgdGhlIHNwZWMgZG9lc24ndCBhY3R1YWxseSBhbGxvdyBkcmFnIGltYWdlIG1vZGlmaWNh
dGlvbiBvdXRzaWRlIHRoZSBkcmFnc3RhcnQKLSAgICAvLyBldmVudC4gVGhpcyBjYXBhYmlsaXR5
IGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmxpdHkgZm9yIHBvcnRzIHRoYXQg
aGF2ZQotICAgIC8vIHN1cHBvcnRlZCB0aGlzIGluIHRoZSBwYXN0LiBPbiBtYW55IHBvcnRzLCBh
dHRlbXB0aW5nIHRvIHNldCBhIGRyYWcgaW1hZ2Ugb3V0c2lkZSB0aGUKLSAgICAvLyBkcmFnc3Rh
cnQgb3BlcmF0aW9uIGlzIGEgbm8tb3AgYW55d2F5LgotICAgIHJldHVybiBtX2ZvckRyYWcgJiYg
KG1fcG9saWN5ID09IENsaXBib2FyZEltYWdlV3JpdGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJv
YXJkV3JpdGFibGUpOwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQq
IGVsZW1lbnQsIGludCB4LCBpbnQgeSkKLXsKLSAgICBpZiAoIWNhblNldERyYWdJbWFnZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBDYWNoZWRJbWFnZSogaW1hZ2U7Ci0gICAgaWYgKGVsZW1l
bnQgJiYgaXNIVE1MSW1hZ2VFbGVtZW50KGVsZW1lbnQpICYmICFlbGVtZW50LT5pbkRvY3VtZW50
KCkpCi0gICAgICAgIGltYWdlID0gdG9IVE1MSW1hZ2VFbGVtZW50KGVsZW1lbnQpLT5jYWNoZWRJ
bWFnZSgpOwotICAgIGVsc2UKLSAgICAgICAgaW1hZ2UgPSAwOwotCi0gICAgbV9kcmFnTG9jYXRp
b24gPSBJbnRQb2ludCh4LCB5KTsKLQotICAgIGlmIChtX2RyYWdJbWFnZUxvYWRlciAmJiBtX2Ry
YWdJbWFnZSkKLSAgICAgICAgbV9kcmFnSW1hZ2VMb2FkZXItPnN0b3BMb2FkaW5nKG1fZHJhZ0lt
YWdlKTsKLSAgICBtX2RyYWdJbWFnZSA9IGltYWdlOwotICAgIGlmIChtX2RyYWdJbWFnZSkgewot
ICAgICAgICBpZiAoIW1fZHJhZ0ltYWdlTG9hZGVyKQotICAgICAgICAgICAgbV9kcmFnSW1hZ2VM
b2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPERyYWdJbWFnZUxvYWRlcj4odGhpcyk7Ci0gICAgICAg
IG1fZHJhZ0ltYWdlTG9hZGVyLT5zdGFydExvYWRpbmcobV9kcmFnSW1hZ2UpOwotICAgIH0KLQot
ICAgIG1fZHJhZ0ltYWdlRWxlbWVudCA9IGltYWdlID8gMCA6IGVsZW1lbnQ7Ci0KLSAgICB1cGRh
dGVEcmFnSW1hZ2UoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmQ6OnVwZGF0ZURyYWdJbWFnZSgpCi17
Ci0gICAgLy8gRG9uJ3QgYWxsb3cgc2V0dGluZyB0aGUgaW1hZ2UgaWYgd2UgaGF2ZW4ndCBzdGFy
dGVkIGRyYWdnaW5nIHlldDsgd2UnbGwgcmVseSBvbiB0aGUgZHJhZ2dpbmcgY29kZQotICAgIC8v
IHRvIGluc3RhbGwgdGhpcyBkcmFnIGltYWdlIGFzIHBhcnQgb2YgZ2V0dGluZyB0aGUgZHJhZyBr
aWNrZWQgb2ZmLgotICAgIGlmICghbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2UpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIEludFBvaW50IGNvbXB1dGVkSG90U3BvdDsKLSAgICBEcmFnSW1hZ2VSZWYg
Y29tcHV0ZWRJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZShjb21wdXRlZEhvdFNwb3QpOwotICAgIGlm
ICghY29tcHV0ZWRJbWFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYXN0ZWJvYXJkLT5z
ZXREcmFnSW1hZ2UoY29tcHV0ZWRJbWFnZSwgY29tcHV0ZWRIb3RTcG90KTsKLX0KLQotI2lmICFQ
TEFURk9STShDT0NPQSkKLQotRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKLXsKLSAgICBsb2NhdGlvbiA9IG1fZHJhZ0xvY2F0
aW9uOwotCi0gICAgaWYgKG1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24oKSk7Ci0KLSAgICBpZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7Ci0gICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBtX2RyYWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKCpmcmFtZSwgKm1fZHJhZ0lt
YWdlRWxlbWVudCk7Ci0gICAgfQotCi0gICAgLy8gV2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9y
bWF0aW9uIHRvIGNyZWF0ZSBhIGRyYWcgaW1hZ2UsIHVzZSB0aGUgZGVmYXVsdCBpY29uLgotICAg
IHJldHVybiBudWxscHRyOwotfQotCi0jZW5kaWYKLQotRHJhZ0ltYWdlTG9hZGVyOjpEcmFnSW1h
Z2VMb2FkZXIoQ2xpcGJvYXJkKiBjbGlwYm9hcmQpCi0gICAgOiBtX2NsaXBib2FyZChjbGlwYm9h
cmQpCi17Ci19Ci0KLXZvaWQgRHJhZ0ltYWdlTG9hZGVyOjpzdGFydExvYWRpbmcoQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+JiBpbWFnZSkKLXsKLSAgICAvLyBGSVhN
RTogRG9lcyB0aGlzIHJlYWxseSB0cmlnZ2VyIGEgbG9hZD8gRG9lcyBpdCBuZWVkIHRvPwotICAg
IGltYWdlLT5hZGRDbGllbnQodGhpcyk7Ci19Ci0KLXZvaWQgRHJhZ0ltYWdlTG9hZGVyOjpzdG9w
TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxXZWJDb3JlOjpDYWNoZWRJbWFnZT4mIGltYWdl
KQotewotICAgIGltYWdlLT5yZW1vdmVDbGllbnQodGhpcyk7Ci19Ci0KLXZvaWQgRHJhZ0ltYWdl
TG9hZGVyOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KikKLXsKLSAg
ICBtX2NsaXBib2FyZC0+dXBkYXRlRHJhZ0ltYWdlKCk7Ci19Ci0KLXN0YXRpYyBEcmFnT3BlcmF0
aW9uIGRyYWdPcEZyb21JRU9wKGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQotewotICAgIGlmIChv
cGVyYXRpb24gPT0gInVuaW5pdGlhbGl6ZWQiKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlv
bkV2ZXJ5OwotICAgIGlmIChvcGVyYXRpb24gPT0gIm5vbmUiKQotICAgICAgICByZXR1cm4gRHJh
Z09wZXJhdGlvbk5vbmU7Ci0gICAgaWYgKG9wZXJhdGlvbiA9PSAiY29weSIpCi0gICAgICAgIHJl
dHVybiBEcmFnT3BlcmF0aW9uQ29weTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJsaW5rIikKLSAg
ICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25MaW5rOwotICAgIGlmIChvcGVyYXRpb24gPT0gIm1v
dmUiKQotICAgICAgICByZXR1cm4gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25HZW5lcmlj
IHwgRHJhZ09wZXJhdGlvbk1vdmUpOwotICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHlMaW5rIikK
LSAgICAgICAgcmV0dXJuIChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uQ29weSB8IERyYWdP
cGVyYXRpb25MaW5rKTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJjb3B5TW92ZSIpCi0gICAgICAg
IHJldHVybiAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkNvcHkgfCBEcmFnT3BlcmF0aW9u
R2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJsaW5r
TW92ZSIpCi0gICAgICAgIHJldHVybiAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkxpbmsg
fCBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKLSAgICBpZiAob3Bl
cmF0aW9uID09ICJhbGwiKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkV2ZXJ5OwotICAg
IHJldHVybiBEcmFnT3BlcmF0aW9uUHJpdmF0ZTsgLy8gcmVhbGx5IGEgbWFya2VyIGZvciAibm8g
Y29udmVyc2lvbiIKLX0KLQotc3RhdGljIGNvbnN0IGNoYXIqIElFT3BGcm9tRHJhZ09wKERyYWdP
cGVyYXRpb24gb3BlcmF0aW9uKQotewotICAgIGJvb2wgaXNHZW5lcmljTW92ZSA9IG9wZXJhdGlv
biAmIChEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKLQotICAgIGlm
ICgoaXNHZW5lcmljTW92ZSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkpICYmIChv
cGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykpIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0
aW9uRXZlcnkpCi0gICAgICAgIHJldHVybiAiYWxsIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSAm
JiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkpKQotICAgICAgICByZXR1cm4gImNvcHlN
b3ZlIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlv
bkxpbmspKQotICAgICAgICByZXR1cm4gImxpbmtNb3ZlIjsKLSAgICBpZiAoKG9wZXJhdGlvbiAm
IERyYWdPcGVyYXRpb25Db3B5KSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkxpbmspKQot
ICAgICAgICByZXR1cm4gImNvcHlMaW5rIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSkKLSAgICAg
ICAgcmV0dXJuICJtb3ZlIjsKLSAgICBpZiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkp
Ci0gICAgICAgIHJldHVybiAiY29weSI7Ci0gICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRp
b25MaW5rKQotICAgICAgICByZXR1cm4gImxpbmsiOwotICAgIHJldHVybiAibm9uZSI7Ci19Ci0K
LURyYWdPcGVyYXRpb24gQ2xpcGJvYXJkOjpzb3VyY2VPcGVyYXRpb24oKSBjb25zdAotewotICAg
IERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gZHJhZ09wRnJvbUlFT3AobV9lZmZlY3RBbGxvd2Vk
KTsKLSAgICBBU1NFUlQob3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKLSAgICBy
ZXR1cm4gb3BlcmF0aW9uOwotfQotCi1EcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6ZGVzdGluYXRp
b25PcGVyYXRpb24oKSBjb25zdAotewotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gZHJh
Z09wRnJvbUlFT3AobV9kcm9wRWZmZWN0KTsKLSAgICBBU1NFUlQob3BlcmF0aW9uID09IERyYWdP
cGVyYXRpb25Db3B5IHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTm9uZSB8fCBvcGVyYXRp
b24gPT0gRHJhZ09wZXJhdGlvbkxpbmsgfHwgb3BlcmF0aW9uID09IChEcmFnT3BlcmF0aW9uKShE
cmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKSB8fCBvcGVyYXRpb24gPT0g
RHJhZ09wZXJhdGlvbkV2ZXJ5KTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOwotfQotCi12b2lkIENs
aXBib2FyZDo6c2V0U291cmNlT3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQotewot
ICAgIEFTU0VSVF9BUkcob3BlcmF0aW9uLCBvcGVyYXRpb24gIT0gRHJhZ09wZXJhdGlvblByaXZh
dGUpOwotICAgIG1fZWZmZWN0QWxsb3dlZCA9IElFT3BGcm9tRHJhZ09wKG9wZXJhdGlvbik7Ci19
Ci0KLXZvaWQgQ2xpcGJvYXJkOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbihEcmFnT3BlcmF0aW9u
IG9wZXJhdGlvbikKLXsKLSAgICBBU1NFUlRfQVJHKG9wZXJhdGlvbiwgb3BlcmF0aW9uID09IERy
YWdPcGVyYXRpb25Db3B5IHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTm9uZSB8fCBvcGVy
YXRpb24gPT0gRHJhZ09wZXJhdGlvbkxpbmsgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25H
ZW5lcmljIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTW92ZSB8fCBvcGVyYXRpb24gPT0g
KERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25HZW5lcmljIHwgRHJhZ09wZXJhdGlvbk1vdmUp
KTsKLSAgICBtX2Ryb3BFZmZlY3QgPSBJRU9wRnJvbURyYWdPcChvcGVyYXRpb24pOwotfQotCi1T
dHJpbmcgQ2xpcGJvYXJkOjpkcm9wRWZmZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kcm9w
RWZmZWN0ID09ICJ1bmluaXRpYWxpemVkIiA/IEFTQ0lJTGl0ZXJhbCgibm9uZSIpIDogbV9kcm9w
RWZmZWN0OwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcm
IGVmZmVjdCkKLXsKLSAgICBpZiAoIW1fZm9yRHJhZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKGVmZmVjdCAhPSAibm9uZSIgJiYgZWZmZWN0ICE9ICJjb3B5IiAmJiBlZmZlY3QgIT0gImxp
bmsiICYmIGVmZmVjdCAhPSAibW92ZSIpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEZJWE1F
OiBUaGUgc3BlYyBhbGxvd3MgdGhpcyBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVGhlcmUgaXMgcHJv
YmFibHkgbm8gdmFsdWUKLSAgICAvLyBpbiBpZ25vcmluZyBhdHRlbXB0cyB0byBjaGFuZ2UgaXQu
Ci0gICAgaWYgKCFjYW5SZWFkVHlwZXMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9kcm9w
RWZmZWN0ID0gZWZmZWN0OwotfQotCi1TdHJpbmcgQ2xpcGJvYXJkOjplZmZlY3RBbGxvd2VkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9lZmZlY3RBbGxvd2VkOwotfQotCi12b2lkIENsaXBib2Fy
ZDo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmIGVmZmVjdCkKLXsKLSAgICBpZiAoIW1f
Zm9yRHJhZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWdub3JlIGFueSBhdHRlbXB0cyB0
byBzZXQgaXQgdG8gYW4gdW5rbm93biB2YWx1ZS4KLSAgICBpZiAoZHJhZ09wRnJvbUlFT3AoZWZm
ZWN0KSA9PSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KCFjYW5Xcml0ZURhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9lZmZlY3RBbGxvd2Vk
ID0gZWZmZWN0OwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAkocmV2aXNpb24gMTY2
ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChw
bWtAcG9zdC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgVG9iaWFzIEFudG9uIChhbnRvbkBz
dHVkLmZiaS5maC1kYXJtc3RhZHQuZGUpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdl
aW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8K
LQotI2lmbmRlZiBDbGlwYm9hcmRfaAotI2RlZmluZSBDbGlwYm9hcmRfaAotCi0jaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCIKLSNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgotI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgotI2lu
Y2x1ZGUgIkludFBvaW50LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xh
c3MgQ2FjaGVkSW1hZ2U7Ci0gICAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxpc3Q7Ci0gICAgY2xh
c3MgRHJhZ0RhdGE7Ci0gICAgY2xhc3MgRHJhZ0ltYWdlTG9hZGVyOwotICAgIGNsYXNzIEVsZW1l
bnQ7Ci0gICAgY2xhc3MgRmlsZUxpc3Q7Ci0gICAgY2xhc3MgUGFzdGVib2FyZDsKLQotICAgIGNs
YXNzIENsaXBib2FyZCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaXBib2FyZD4gewotICAgIHB1Ymxp
YzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5KTsKLQotICAgICAgICB+Q2xpcGJvYXJkKCk7Ci0K
LSAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3QoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXREcm9w
RWZmZWN0KGNvbnN0IFN0cmluZyYpOwotCi0gICAgICAgIFN0cmluZyBlZmZlY3RBbGxvd2VkKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKTsKLQot
ICAgICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotCi0gICAgICAgIFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBjbGVhckRhdGEoY29u
c3QgU3RyaW5nJiB0eXBlKTsKLSAgICAgICAgdm9pZCBjbGVhckRhdGEoKTsKLQotICAgICAgICBT
dHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0OwotCi0gICAgICAgIGJvb2wg
c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7Ci0KLSAgICAg
ICAgdm9pZCBzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCB4LCBpbnQgeSk7Ci0KLSNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICAgICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJ
dGVtTGlzdD4gaXRlbXMoKSA9IDA7Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldEFjY2Vzc1Bv
bGljeShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOwotICAgICAgICBib29sIGNhblJlYWRUeXBlcygp
IGNvbnN0OwotICAgICAgICBib29sIGNhblJlYWREYXRhKCkgY29uc3Q7Ci0gICAgICAgIGJvb2wg
Y2FuV3JpdGVEYXRhKCkgY29uc3Q7Ci0KLSAgICAgICAgUGFzdGVib2FyZCYgcGFzdGVib2FyZCgp
IHsgcmV0dXJuICptX3Bhc3RlYm9hcmQ7IH0KLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3Ao
KTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JEcmFnQW5k
RHJvcChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIGNvbnN0IERyYWdEYXRhJik7Ci0KLSAgICAgICAg
Ym9vbCBkcm9wRWZmZWN0SXNVbmluaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9kcm9wRWZm
ZWN0ID09ICJ1bmluaXRpYWxpemVkIjsgfQotCi0gICAgICAgIERyYWdPcGVyYXRpb24gc291cmNl
T3BlcmF0aW9uKCkgY29uc3Q7Ci0gICAgICAgIERyYWdPcGVyYXRpb24gZGVzdGluYXRpb25PcGVy
YXRpb24oKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRTb3VyY2VPcGVyYXRpb24oRHJhZ09wZXJh
dGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlv
bik7Ci0KLSAgICAgICAgdm9pZCBzZXREcmFnSGFzU3RhcnRlZCgpIHsgbV9zaG91bGRVcGRhdGVE
cmFnSW1hZ2UgPSB0cnVlOyB9Ci0gICAgICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2Uo
SW50UG9pbnQmIGRyYWdMb2NhdGlvbikgY29uc3Q7Ci0gICAgICAgIHZvaWQgdXBkYXRlRHJhZ0lt
YWdlKCk7Ci0jZW5kaWYKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gQ2xpcGJvYXJkVHlw
ZSB7IENvcHlBbmRQYXN0ZSwgRHJhZ0FuZERyb3AgfTsKLSAgICAgICAgQ2xpcGJvYXJkKENsaXBi
b2FyZEFjY2Vzc1BvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgQ2xpcGJvYXJkVHlwZSA9
IENvcHlBbmRQYXN0ZSwgYm9vbCBmb3JGaWxlRHJhZyA9IGZhbHNlKTsKLQotI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi0gICAgICAgIGJvb2wgY2FuU2V0RHJhZ0ltYWdlKCkgY29uc3Q7Ci0jZW5k
aWYKLQotICAgICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgbV9wb2xpY3k7Ci0gICAgICAgIE93
blB0cjxQYXN0ZWJvYXJkPiBtX3Bhc3RlYm9hcmQ7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQotICAgICAgICBib29sIG1fZm9yRHJhZzsKLSAgICAgICAgYm9vbCBtX2ZvckZpbGVEcmFnOwot
ICAgICAgICBTdHJpbmcgbV9kcm9wRWZmZWN0OwotICAgICAgICBTdHJpbmcgbV9lZmZlY3RBbGxv
d2VkOwotICAgICAgICBib29sIG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlOwotICAgICAgICBJbnRQ
b2ludCBtX2RyYWdMb2NhdGlvbjsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+IG1fZHJhZ0ltYWdlOwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9kcmFnSW1hZ2VF
bGVtZW50OwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhZ0ltYWdlTG9hZGVyPiBtX2RyYWdJ
bWFnZUxvYWRlcjsKLSNlbmRpZgotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIENsaXBib2FyZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJk
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAkocmV2
aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCi1dIGlu
dGVyZmFjZSBDbGlwYm9hcmQgewotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVjdDsK
LSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVmZmVjdEFsbG93ZWQ7Ci0KLSAgICBbQ3VzdG9tR2V0
dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXkgdHlwZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIEZpbGVMaXN0IGZpbGVzOwotCi0gICAgdm9pZCBjbGVhckRhdGEob3B0aW9uYWwgRE9NU3Ry
aW5nIHR5cGUpOwotICAgIERPTVN0cmluZyBnZXREYXRhKERPTVN0cmluZyB0eXBlKTsKLSAgICBi
b29sZWFuIHNldERhdGEoRE9NU3RyaW5nIHR5cGUsIERPTVN0cmluZyBkYXRhKTsKLSAgICB2b2lk
IHNldERyYWdJbWFnZShFbGVtZW50IGltYWdlLCBsb25nIHgsIGxvbmcgeSk7Ci0KLSAgICBbQ29u
ZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNU10gcmVhZG9ubHkgYXR0cmlidXRlIERhdGFUcmFu
c2Zlckl0ZW1MaXN0IGl0ZW1zOwotfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmRBY2Nlc3NQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9DbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotIAotI2lmbmRl
ZiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3lfaAotI2RlZmluZSBDbGlwYm9hcmRBY2Nlc3NQb2xpY3lf
aAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHsK
LSAgICBDbGlwYm9hcmROdW1iLCBDbGlwYm9hcmRJbWFnZVdyaXRhYmxlLCBDbGlwYm9hcmRXcml0
YWJsZSwgQ2xpcGJvYXJkVHlwZXNSZWFkYWJsZSwgQ2xpcGJvYXJkUmVhZGFibGUKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2Fy
ZEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZl
bnQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJk
RXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKIAotI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsOCArMzIsOCBAQCBDbGlwYm9hcmRFdmVudDo6
Q2xpcGJvYXJkRXZlbnQoKQogewogfQogCi1DbGlwYm9hcmRFdmVudDo6Q2xpcGJvYXJkRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQpCi0gICAgOiBFdmVudChldmVu
dFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSksIG1fY2xpcGJvYXJkKGNsaXBib2FyZCkKK0Ns
aXBib2FyZEV2ZW50OjpDbGlwYm9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IGRhdGFUcmFuc2ZlcikKKyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5j
ZWxhYmxlKSwgbV9kYXRhVHJhbnNmZXIoZGF0YVRyYW5zZmVyKQogewogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ2xpcGJvYXJkOworICAgIGNs
YXNzIERhdGFUcmFuc2ZlcjsKIAogICAgIGNsYXNzIENsaXBib2FyZEV2ZW50IDogcHVibGljIEV2
ZW50IHsKICAgICBwdWJsaWM6CkBAIC0zOCwyMSArMzgsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZEV2
ZW50KTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmRFdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyZywgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZEFyZykKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIFBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBjbGlwYm9hcmRBcmcpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxlQXJn
LCBjYW5jZWxhYmxlQXJnLCBjbGlwYm9hcmRBcmcpKTsKICAgICAgICAgfQogCi0gICAgICAgIENs
aXBib2FyZCogY2xpcGJvYXJkKCkgY29uc3QgeyByZXR1cm4gbV9jbGlwYm9hcmQuZ2V0KCk7IH0K
KyAgICAgICAgdmlydHVhbCBEYXRhVHJhbnNmZXIqIGludGVybmFsRGF0YVRyYW5zZmVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9kYXRhVHJhbnNmZXIuZ2V0KCk7IH0KIAogICAgIHByaXZh
dGU6CiAgICAgICAgIENsaXBib2FyZEV2ZW50KCk7Ci0gICAgICAgIENsaXBib2FyZEV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJs
ZUFyZywgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+KTsKKyAgICAgICAgQ2xpcGJvYXJkRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxl
QXJnLCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4pOwogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRJ
bnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICAgICAgdmlydHVh
bCBib29sIGlzQ2xpcGJvYXJkRXZlbnQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgICAgICBSZWZQ
dHI8Q2xpcGJvYXJkPiBtX2NsaXBib2FyZDsKKyAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4g
bV9kYXRhVHJhbnNmZXI7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vQ2xpcGJvYXJkTWFjLm1tCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vQ2xpcGJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTAsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJDbGlw
Ym9hcmQuaCIKLQotI2ltcG9ydCAiQ2FjaGVkSW1hZ2UuaCIKLSNpbXBvcnQgIkVsZW1lbnQuaCIK
LSNpbXBvcnQgIkRyYWdJbWFnZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEZJWE1F
OiBOZWVkIHRvIHJlZmFjdG9yIGFuZCBmaWd1cmUgb3V0IGhvdyB0byBoYW5kbGUgdGhlIGZsaXBw
aW5nIGluIGEgbW9yZSBzZW5zaWJsZSB3YXkgc28gd2UgY2FuCi0vLyB1c2UgdGhlIGRlZmF1bHQg
Q2xpcGJvYXJkOjpkcmFnSW1hZ2UgZnJvbSBDbGlwYm9hcmQuY3BwLiBOb3RlIGFsc28gdGhhdCB0
aGlzIGhhbmRsZXMgY2FzZXMgdGhhdAotLy8gQ2xpcGJvYXJkOjpkcmFnSW1hZ2UgaW4gQ2xpcGJv
YXJkLmNwcCBkb2VzIG5vdCBoYW5kbGUgY29ycmVjdGx5LCBzbyBtdXN0IHJlc29sdmUgdGhhdCBh
cyB3ZWxsLgotRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JiBsb2NhdGlvbikgY29uc3QKLXsKLSAgICBEcmFnSW1hZ2VSZWYgcmVzdWx0ID0gbmlsOwotICAg
IGlmIChtX2RyYWdJbWFnZUVsZW1lbnQpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1f
ZHJhZ0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKSB7Ci0gICAgICAgICAgICBJbnRS
ZWN0IGltYWdlUmVjdDsKLSAgICAgICAgICAgIEludFJlY3QgZWxlbWVudFJlY3Q7Ci0gICAgICAg
ICAgICByZXN1bHQgPSBjcmVhdGVEcmFnSW1hZ2VGb3JJbWFnZSgqZnJhbWUsICptX2RyYWdJbWFn
ZUVsZW1lbnQsIGltYWdlUmVjdCwgZWxlbWVudFJlY3QpOwotICAgICAgICAgICAgLy8gQ2xpZW50
IHNwZWNpZmllcyBwb2ludCByZWxhdGl2ZSB0byBlbGVtZW50LCBub3QgdGhlIHdob2xlIGltYWdl
LCB3aGljaCBtYXkgaW5jbHVkZSBjaGlsZAotICAgICAgICAgICAgLy8gbGF5ZXJzIHNwcmVhZCBv
dXQgYWxsIG92ZXIgdGhlIHBsYWNlLgotICAgICAgICAgICAgbG9jYXRpb24uc2V0WChlbGVtZW50
UmVjdC54KCkgLSBpbWFnZVJlY3QueCgpICsgbV9kcmFnTG9jYXRpb24ueCgpKTsKLSAgICAgICAg
ICAgIGxvY2F0aW9uLnNldFkoaW1hZ2VSZWN0LmhlaWdodCgpIC0gKGVsZW1lbnRSZWN0LnkoKSAt
IGltYWdlUmVjdC55KCkgKyBtX2RyYWdMb2NhdGlvbi55KCkpKTsKLSAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAobV9kcmFnSW1hZ2UpIHsKLSAgICAgICAgcmVzdWx0ID0gbV9kcmFnSW1hZ2UtPmlt
YWdlKCktPmdldE5TSW1hZ2UoKTsKLSAgICAgICAgCi0gICAgICAgIGxvY2F0aW9uID0gbV9kcmFn
TG9jYXRpb247Ci0gICAgICAgIGxvY2F0aW9uLnNldFkoW3Jlc3VsdCBzaXplXS5oZWlnaHQgLSBs
b2NhdGlvbi55KCkpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDYg
QEAKICNpbmNsdWRlICJDbGFzc05vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJDbGllbnRSZWN0LmNw
cCIKICNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5jcHAiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmNw
cCIKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5jcHAiCiAjaW5jbHVkZSAiQ29sbGVjdGlvbklu
ZGV4Q2FjaGUuY3BwIgogI2luY2x1ZGUgIkNvbW1lbnQuY3BwIgpAQCAtNTAsNiArNDksNyBAQAog
I2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJET01OYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmNwcCIKKyNpbmNsdWRlICJE
YXRhVHJhbnNmZXIuY3BwIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAuY3BwIgogI2lu
Y2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU1v
dGlvbkNvbnRyb2xsZXIuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAJ
KHJldmlzaW9uIDE2Njg3MykJKGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5jcHA6
MTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRl
ICJDYWNoZWRJbWFnZUNsaWVudC5oIgorI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCitjbGFzcyBEcmFnSW1hZ2VMb2Fk
ZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZEltYWdlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEcmFnSW1hZ2VMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBEcmFnSW1hZ2VMb2FkZXIoQ2xpcGJvYXJkKik7CisgICAgdm9pZCBz
dGFydExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+Jik7CisgICAgdm9p
ZCBzdG9wTG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4mKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3Qg
SW50UmVjdCopIG92ZXJyaWRlOworICAgIENsaXBib2FyZCogbV9jbGlwYm9hcmQ7Cit9OworCisj
ZW5kaWYKKworQ2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGlj
eSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRUeXBlIHR5cGUs
IGJvb2wgZm9yRmlsZURyYWcpCisgICAgOiBtX3BvbGljeShwb2xpY3kpCisgICAgLCBtX3Bhc3Rl
Ym9hcmQocGFzdGVib2FyZCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgICwgbV9mb3JE
cmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQorICAgICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJh
ZykKKyAgICAsIG1fZHJvcEVmZmVjdChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQiKSkKKyAg
ICAsIG1fZWZmZWN0QWxsb3dlZChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQiKSkKKyAgICAs
IG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlKGZhbHNlKQorI2VuZGlmCit7CisjaWYgIUVOQUJMRShE
UkFHX1NVUFBPUlQpCisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCB0eXBlID09IENvcHlBbmRQYXN0
ZSk7CisgICAgQVNTRVJUX1VOVVNFRChmb3JGaWxlRHJhZywgIWZvckZpbGVEcmFnKTsKKyNlbmRp
ZgorfQorCitQYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENsaXBib2FyZChwb2xpY3ksIHBvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZSA/IFBh
c3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKSA6IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZSgpKSk7Cit9CisKK0NsaXBib2FyZDo6fkNsaXBib2FyZCgpCit7CisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKKyAgICBpZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1hZ2UpCisg
ICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7CisjZW5k
aWYKK30KKyAgICAKK3ZvaWQgQ2xpcGJvYXJkOjpzZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5IHBvbGljeSkKK3sKKyAgICAvLyBPbmNlIHRoZSBjbGlwYm9hcmQgZ29lcyBudW1i
LCBpdCBjYW4gbmV2ZXIgZ28gYmFjay4KKyAgICBBU1NFUlQobV9wb2xpY3kgIT0gQ2xpcGJvYXJk
TnVtYiB8fCBwb2xpY3kgPT0gQ2xpcGJvYXJkTnVtYik7CisgICAgbV9wb2xpY3kgPSBwb2xpY3k7
Cit9CisKK2Jvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkVHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBtX3BvbGljeSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRU
eXBlc1JlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOworfQorCitib29s
IENsaXBib2FyZDo6Y2FuUmVhZERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA9
PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKK30K
KworYm9vbCBDbGlwYm9hcmQ6OmNhbldyaXRlRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOworfQorCit2b2lkIENsaXBib2FyZDo6Y2xlYXJE
YXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Bhc3RlYm9hcmQtPmNsZWFyKHR5cGUpOworfQorCit2b2lk
IENsaXBib2FyZDo6Y2xlYXJEYXRhKCkKK3sKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Bhc3RlYm9hcmQtPmNsZWFyKCk7Cit9CisKK1N0cmluZyBD
bGlwYm9hcmQ6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdAoreworICAgIGlmICgh
Y2FuUmVhZERhdGEoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKKyAgICBpZiAobV9mb3JGaWxlRHJhZykKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworI2VuZGlmCisKKyAgICByZXR1cm4gbV9wYXN0ZWJvYXJkLT5yZWFkU3RyaW5nKHR5cGUp
OworfQorCitib29sIENsaXBib2FyZDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgZGF0YSkKK3sKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIGlmIChtX2ZvckZpbGVE
cmFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAgIHJldHVybiBtX3Bhc3Rl
Ym9hcmQtPndyaXRlU3RyaW5nKHR5cGUsIGRhdGEpOworfQorCitWZWN0b3I8U3RyaW5nPiBDbGlw
Ym9hcmQ6OnR5cGVzKCkgY29uc3QKK3sKKyAgICBpZiAoIWNhblJlYWRUeXBlcygpKQorICAgICAg
ICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKworICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5
cGVzKCk7Cit9CisKK1Bhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZDo6ZmlsZXMoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBjYWNoZSB0aGUgY29tcHV0ZWQgZmlsZSBsaXN0
IGlmIGl0IHdhcyBuZWNlc3NhcnkgYW5kIGhlbHBmdWwuCisgICAgLy8gQ3VycmVudGx5LCBlYWNo
IGFjY2VzcyBnZXRzIGEgbmV3IGNvcHksIGFuZCB0aHVzIHNldERhdGEoKSBtb2RpZmljYXRpb25z
IHRvIHRoZQorICAgIC8vIGNsaXBib2FyZCBhcmUgbm90IHJlZmxlY3RlZCBpbiBhbnkgRmlsZUxp
c3Qgb2JqZWN0cyB0aGUgcGFnZSBoYXMgYWNjZXNzZWQgYW5kIHN0b3JlZC4KKworICAgIGlmICgh
Y2FuUmVhZERhdGEoKSkKKyAgICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsKKworI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCisgICAgaWYgKG1fZm9yRHJhZyAmJiAhbV9mb3JGaWxlRHJh
ZykKKyAgICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsKKyNlbmRpZgorCisgICAgVmVj
dG9yPFN0cmluZz4gZmlsZW5hbWVzID0gbV9wYXN0ZWJvYXJkLT5yZWFkRmlsZW5hbWVzKCk7Cisg
ICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlTGlzdCA9IEZpbGVMaXN0OjpjcmVhdGUoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVuYW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgZmls
ZUxpc3QtPmFwcGVuZChGaWxlOjpjcmVhdGUoZmlsZW5hbWVzW2ldLCBGaWxlOjpBbGxDb250ZW50
VHlwZXMpKTsKKyAgICByZXR1cm4gZmlsZUxpc3QucmVsZWFzZSgpOworfQorCisjaWYgIUVOQUJM
RShEUkFHX1NVUFBPUlQpCisKK1N0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3QoKSBjb25zdAor
eworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vbmUiKTsKK30KKwordm9pZCBDbGlwYm9hcmQ6
OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJikKK3sKK30KKworU3RyaW5nIENsaXBib2FyZDo6
ZWZmZWN0QWxsb3dlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5pbml0
aWFsaXplZCIpOworfQorCit2b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBT
dHJpbmcmKQoreworfQorCit2b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBp
bnQsIGludCkKK3sKK30KKworI2Vsc2UKKworUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2Fy
ZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xp
cGJvYXJkKENsaXBib2FyZFdyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpLCBEcmFnQW5kRHJvcCkpOworfQorCitQYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJk
OjpjcmVhdGVGb3JEcmFnQW5kRHJvcChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9h
cmQocG9saWN5LCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChkcmFnRGF0YSksIERy
YWdBbmREcm9wLCBkcmFnRGF0YS5jb250YWluc0ZpbGVzKCkpKTsKK30KKworYm9vbCBDbGlwYm9h
cmQ6OmNhblNldERyYWdJbWFnZSgpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoZSBzcGVj
IGRvZXNuJ3QgYWN0dWFsbHkgYWxsb3cgZHJhZyBpbWFnZSBtb2RpZmljYXRpb24gb3V0c2lkZSB0
aGUgZHJhZ3N0YXJ0CisgICAgLy8gZXZlbnQuIFRoaXMgY2FwYWJpbGl0eSBpcyBtYWludGFpbmVk
IGZvciBiYWNrd2FyZHMgY29tcGF0aWJsaXR5IGZvciBwb3J0cyB0aGF0IGhhdmUKKyAgICAvLyBz
dXBwb3J0ZWQgdGhpcyBpbiB0aGUgcGFzdC4gT24gbWFueSBwb3J0cywgYXR0ZW1wdGluZyB0byBz
ZXQgYSBkcmFnIGltYWdlIG91dHNpZGUgdGhlCisgICAgLy8gZHJhZ3N0YXJ0IG9wZXJhdGlvbiBp
cyBhIG5vLW9wIGFueXdheS4KKyAgICByZXR1cm4gbV9mb3JEcmFnICYmIChtX3BvbGljeSA9PSBD
bGlwYm9hcmRJbWFnZVdyaXRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlKTsK
K30KKwordm9pZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBpbnQg
eCwgaW50IHkpCit7CisgICAgaWYgKCFjYW5TZXREcmFnSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ2FjaGVkSW1hZ2UqIGltYWdlOworICAgIGlmIChlbGVtZW50ICYmIGlzSFRNTElt
YWdlRWxlbWVudChlbGVtZW50KSAmJiAhZWxlbWVudC0+aW5Eb2N1bWVudCgpKQorICAgICAgICBp
bWFnZSA9IHRvSFRNTEltYWdlRWxlbWVudChlbGVtZW50KS0+Y2FjaGVkSW1hZ2UoKTsKKyAgICBl
bHNlCisgICAgICAgIGltYWdlID0gMDsKKworICAgIG1fZHJhZ0xvY2F0aW9uID0gSW50UG9pbnQo
eCwgeSk7CisKKyAgICBpZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1hZ2UpCisgICAg
ICAgIG1fZHJhZ0ltYWdlTG9hZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7CisgICAgbV9k
cmFnSW1hZ2UgPSBpbWFnZTsKKyAgICBpZiAobV9kcmFnSW1hZ2UpIHsKKyAgICAgICAgaWYgKCFt
X2RyYWdJbWFnZUxvYWRlcikKKyAgICAgICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxEcmFnSW1hZ2VMb2FkZXI+KHRoaXMpOworICAgICAgICBtX2RyYWdJbWFnZUxv
YWRlci0+c3RhcnRMb2FkaW5nKG1fZHJhZ0ltYWdlKTsKKyAgICB9CisKKyAgICBtX2RyYWdJbWFn
ZUVsZW1lbnQgPSBpbWFnZSA/IDAgOiBlbGVtZW50OworCisgICAgdXBkYXRlRHJhZ0ltYWdlKCk7
Cit9CisKK3ZvaWQgQ2xpcGJvYXJkOjp1cGRhdGVEcmFnSW1hZ2UoKQoreworICAgIC8vIERvbid0
IGFsbG93IHNldHRpbmcgdGhlIGltYWdlIGlmIHdlIGhhdmVuJ3Qgc3RhcnRlZCBkcmFnZ2luZyB5
ZXQ7IHdlJ2xsIHJlbHkgb24gdGhlIGRyYWdnaW5nIGNvZGUKKyAgICAvLyB0byBpbnN0YWxsIHRo
aXMgZHJhZyBpbWFnZSBhcyBwYXJ0IG9mIGdldHRpbmcgdGhlIGRyYWcga2lja2VkIG9mZi4KKyAg
ICBpZiAoIW1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bnRQb2ludCBjb21wdXRlZEhvdFNwb3Q7CisgICAgRHJhZ0ltYWdlUmVmIGNvbXB1dGVkSW1hZ2Ug
PSBjcmVhdGVEcmFnSW1hZ2UoY29tcHV0ZWRIb3RTcG90KTsKKyAgICBpZiAoIWNvbXB1dGVkSW1h
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdlKGNv
bXB1dGVkSW1hZ2UsIGNvbXB1dGVkSG90U3BvdCk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0Ep
CisKK0RyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9j
YXRpb24pIGNvbnN0Cit7CisgICAgbG9jYXRpb24gPSBtX2RyYWdMb2NhdGlvbjsKKworICAgIGlm
IChtX2RyYWdJbWFnZSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSht
X2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOworCisg
ICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9kcmFnSW1hZ2VFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgICAgICByZXR1
cm4gY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZSgqZnJhbWUsICptX2RyYWdJbWFnZUVsZW1lbnQpOwor
ICAgIH0KKworICAgIC8vIFdlIGRvIG5vdCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBjcmVh
dGUgYSBkcmFnIGltYWdlLCB1c2UgdGhlIGRlZmF1bHQgaWNvbi4KKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworI2VuZGlmCisKK0RyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVyKENsaXBi
b2FyZCogY2xpcGJvYXJkKQorICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQoreworfQorCit2
b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RhcnRMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxlPFdl
YkNvcmU6OkNhY2hlZEltYWdlPiYgaW1hZ2UpCit7CisgICAgLy8gRklYTUU6IERvZXMgdGhpcyBy
ZWFsbHkgdHJpZ2dlciBhIGxvYWQ/IERvZXMgaXQgbmVlZCB0bz8KKyAgICBpbWFnZS0+YWRkQ2xp
ZW50KHRoaXMpOworfQorCit2b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RvcExvYWRpbmcoQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+JiBpbWFnZSkKK3sKKyAgICBpbWFn
ZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworfQorCit2b2lkIERyYWdJbWFnZUxvYWRlcjo6aW1hZ2VD
aGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCopCit7CisgICAgbV9jbGlwYm9hcmQt
PnVwZGF0ZURyYWdJbWFnZSgpOworfQorCitzdGF0aWMgRHJhZ09wZXJhdGlvbiBkcmFnT3BGcm9t
SUVPcChjb25zdCBTdHJpbmcmIG9wZXJhdGlvbikKK3sKKyAgICBpZiAob3BlcmF0aW9uID09ICJ1
bmluaXRpYWxpemVkIikKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25FdmVyeTsKKyAgICBp
ZiAob3BlcmF0aW9uID09ICJub25lIikKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Ob25l
OworICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHkiKQorICAgICAgICByZXR1cm4gRHJhZ09wZXJh
dGlvbkNvcHk7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAibGluayIpCisgICAgICAgIHJldHVybiBE
cmFnT3BlcmF0aW9uTGluazsKKyAgICBpZiAob3BlcmF0aW9uID09ICJtb3ZlIikKKyAgICAgICAg
cmV0dXJuIChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRp
b25Nb3ZlKTsKKyAgICBpZiAob3BlcmF0aW9uID09ICJjb3B5TGluayIpCisgICAgICAgIHJldHVy
biAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkNvcHkgfCBEcmFnT3BlcmF0aW9uTGluayk7
CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiY29weU1vdmUiKQorICAgICAgICByZXR1cm4gKERyYWdP
cGVyYXRpb24pKERyYWdPcGVyYXRpb25Db3B5IHwgRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFn
T3BlcmF0aW9uTW92ZSk7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAibGlua01vdmUiKQorICAgICAg
ICByZXR1cm4gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25MaW5rIHwgRHJhZ09wZXJhdGlv
bkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiYWxs
IikKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25FdmVyeTsKKyAgICByZXR1cm4gRHJhZ09w
ZXJhdGlvblByaXZhdGU7IC8vIHJlYWxseSBhIG1hcmtlciBmb3IgIm5vIGNvbnZlcnNpb24iCit9
CisKK3N0YXRpYyBjb25zdCBjaGFyKiBJRU9wRnJvbURyYWdPcChEcmFnT3BlcmF0aW9uIG9wZXJh
dGlvbikKK3sKKyAgICBib29sIGlzR2VuZXJpY01vdmUgPSBvcGVyYXRpb24gJiAoRHJhZ09wZXJh
dGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7CisKKyAgICBpZiAoKGlzR2VuZXJpY01v
dmUgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KSAmJiAob3BlcmF0aW9uICYgRHJh
Z09wZXJhdGlvbkxpbmspKSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkV2ZXJ5KQorICAg
ICAgICByZXR1cm4gImFsbCI7CisgICAgaWYgKGlzR2VuZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAm
IERyYWdPcGVyYXRpb25Db3B5KSkKKyAgICAgICAgcmV0dXJuICJjb3B5TW92ZSI7CisgICAgaWYg
KGlzR2VuZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICAg
ICAgcmV0dXJuICJsaW5rTW92ZSI7CisgICAgaWYgKChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9u
Q29weSkgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICAgICAgcmV0dXJu
ICJjb3B5TGluayI7CisgICAgaWYgKGlzR2VuZXJpY01vdmUpCisgICAgICAgIHJldHVybiAibW92
ZSI7CisgICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KQorICAgICAgICByZXR1
cm4gImNvcHkiOworICAgIGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykKKyAgICAg
ICAgcmV0dXJuICJsaW5rIjsKKyAgICByZXR1cm4gIm5vbmUiOworfQorCitEcmFnT3BlcmF0aW9u
IENsaXBib2FyZDo6c291cmNlT3BlcmF0aW9uKCkgY29uc3QKK3sKKyAgICBEcmFnT3BlcmF0aW9u
IG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9wKG1fZWZmZWN0QWxsb3dlZCk7CisgICAgQVNTRVJU
KG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgcmV0dXJuIG9wZXJhdGlv
bjsKK30KKworRHJhZ09wZXJhdGlvbiBDbGlwYm9hcmQ6OmRlc3RpbmF0aW9uT3BlcmF0aW9uKCkg
Y29uc3QKK3sKKyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9wKG1f
ZHJvcEVmZmVjdCk7CisgICAgQVNTRVJUKG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uQ29weSB8
fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERyYWdPcGVy
YXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkdl
bmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25F
dmVyeSk7CisgICAgcmV0dXJuIG9wZXJhdGlvbjsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldFNv
dXJjZU9wZXJhdGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKK3sKKyAgICBBU1NFUlRfQVJH
KG9wZXJhdGlvbiwgb3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKKyAgICBtX2Vm
ZmVjdEFsbG93ZWQgPSBJRU9wRnJvbURyYWdPcChvcGVyYXRpb24pOworfQorCit2b2lkIENsaXBi
b2FyZDo6c2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7
CisgICAgQVNTRVJUX0FSRyhvcGVyYXRpb24sIG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uQ29w
eSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERyYWdP
cGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8fCBvcGVy
YXRpb24gPT0gRHJhZ09wZXJhdGlvbk1vdmUgfHwgb3BlcmF0aW9uID09IChEcmFnT3BlcmF0aW9u
KShEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKSk7CisgICAgbV9kcm9w
RWZmZWN0ID0gSUVPcEZyb21EcmFnT3Aob3BlcmF0aW9uKTsKK30KKworU3RyaW5nIENsaXBib2Fy
ZDo6ZHJvcEVmZmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZHJvcEVmZmVjdCA9PSAidW5p
bml0aWFsaXplZCIgPyBBU0NJSUxpdGVyYWwoIm5vbmUiKSA6IG1fZHJvcEVmZmVjdDsKK30KKwor
dm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJiBlZmZlY3QpCit7Cisg
ICAgaWYgKCFtX2ZvckRyYWcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChlZmZlY3QgIT0g
Im5vbmUiICYmIGVmZmVjdCAhPSAiY29weSIgJiYgZWZmZWN0ICE9ICJsaW5rIiAmJiBlZmZlY3Qg
IT0gIm1vdmUiKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogVGhlIHNwZWMgYWxs
b3dzIHRoaXMgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRoZXJlIGlzIHByb2JhYmx5IG5vIHZhbHVl
CisgICAgLy8gaW4gaWdub3JpbmcgYXR0ZW1wdHMgdG8gY2hhbmdlIGl0LgorICAgIGlmICghY2Fu
UmVhZFR5cGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZHJvcEVmZmVjdCA9IGVmZmVj
dDsKK30KKworU3RyaW5nIENsaXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZWZmZWN0QWxsb3dlZDsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldEVmZmVjdEFs
bG93ZWQoY29uc3QgU3RyaW5nJiBlZmZlY3QpCit7CisgICAgaWYgKCFtX2ZvckRyYWcpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIElnbm9yZSBhbnkgYXR0ZW1wdHMgdG8gc2V0IGl0IHRvIGFu
IHVua25vd24gdmFsdWUuCisgICAgaWYgKGRyYWdPcEZyb21JRU9wKGVmZmVjdCkgPT0gRHJhZ09w
ZXJhdGlvblByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghY2FuV3JpdGVEYXRh
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZWZmZWN0QWxsb3dlZCA9IGVmZmVjdDsKK30K
KworI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCSh3b3JraW5nIGNvcHkpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZElt
YWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2VDbGllbnQuaCIKQEAgLTQ0LDE4ICs0NCwxOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEcmFnSW1hZ2VMb2FkZXIgZmluYWwgOiBwcml2
YXRlIENhY2hlZEltYWdlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmFnSW1h
Z2VMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBEcmFnSW1hZ2VMb2FkZXIoQ2xpcGJvYXJkKik7CisgICAgZXhwbGljaXQgRHJhZ0ltYWdlTG9h
ZGVyKERhdGFUcmFuc2ZlciopOwogICAgIHZvaWQgc3RhcnRMb2FkaW5nKENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZEltYWdlPiYpOwogICAgIHZvaWQgc3RvcExvYWRpbmcoQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkSW1hZ2U+Jik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGlt
YWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqKSBvdmVycmlkZTsKLSAgICBD
bGlwYm9hcmQqIG1fY2xpcGJvYXJkOworICAgIERhdGFUcmFuc2ZlciogbV9kYXRhVHJhbnNmZXI7
CiB9OwogCiAjZW5kaWYKIAotQ2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5IHBvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRU
eXBlIHR5cGUsIGJvb2wgZm9yRmlsZURyYWcpCitEYXRhVHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBh
c3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9saWN5KHBv
bGljeSkKICAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCkBAIC03MiwxMiArNzIsMTIgQEAgQ2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJk
QWNjZXNzUG9saQogI2VuZGlmCiB9CiAKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQorUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDbGlwYm9hcmQocG9saWN5LCBwb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUgPyBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgcG9s
aWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUgPyBQYXN0ZWJvYXJkOjpj
cmVhdGVQcml2YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkpOwog
fQogCi1DbGlwYm9hcmQ6On5DbGlwYm9hcmQoKQorRGF0YVRyYW5zZmVyOjp+RGF0YVRyYW5zZmVy
KCkKIHsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGlmIChtX2RyYWdJbWFnZUxvYWRl
ciAmJiBtX2RyYWdJbWFnZSkKQEAgLTg1LDI5ICs4NSwyOSBAQCBDbGlwYm9hcmQ6On5DbGlwYm9h
cmQoKQogI2VuZGlmCiB9CiAgICAgCi12b2lkIENsaXBib2FyZDo6c2V0QWNjZXNzUG9saWN5KENs
aXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpCit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0QWNjZXNz
UG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgLy8gT25jZSB0
aGUgY2xpcGJvYXJkIGdvZXMgbnVtYiwgaXQgY2FuIG5ldmVyIGdvIGJhY2suCi0gICAgQVNTRVJU
KG1fcG9saWN5ICE9IENsaXBib2FyZE51bWIgfHwgcG9saWN5ID09IENsaXBib2FyZE51bWIpOwor
ICAgIC8vIE9uY2UgdGhlIGRhdGFUcmFuc2ZlciBnb2VzIG51bWIsIGl0IGNhbiBuZXZlciBnbyBi
YWNrLgorICAgIEFTU0VSVChtX3BvbGljeSAhPSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51
bWIgfHwgcG9saWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7CiAgICAgbV9w
b2xpY3kgPSBwb2xpY3k7CiB9CiAKLWJvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkVHlwZXMoKSBjb25z
dAorYm9vbCBEYXRhVHJhbnNmZXI6OmNhblJlYWRUeXBlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcG9saWN5ID09IENsaXBib2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFR5
cGVzUmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7CisgICAgcmV0dXJu
IG1fcG9saWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgfHwgbV9wb2xp
Y3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpUeXBlc1JlYWRhYmxlIHx8IG1fcG9saWN5
ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGU7CiB9CiAKLWJvb2wgQ2xpcGJv
YXJkOjpjYW5SZWFkRGF0YSgpIGNvbnN0Citib29sIERhdGFUcmFuc2Zlcjo6Y2FuUmVhZERhdGEo
KSBjb25zdAogewotICAgIHJldHVybiBtX3BvbGljeSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBt
X3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKKyAgICByZXR1cm4gbV9wb2xpY3kgPT0gRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlOwogfQogCi1ib29sIENsaXBib2FyZDo6Y2FuV3JpdGVE
YXRhKCkgY29uc3QKK2Jvb2wgRGF0YVRyYW5zZmVyOjpjYW5Xcml0ZURhdGEoKSBjb25zdAogewot
ICAgIHJldHVybiBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKKyAgICByZXR1cm4gbV9w
b2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZTsKIH0KIAotdm9pZCBD
bGlwYm9hcmQ6OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIERhdGFUcmFuc2Zl
cjo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBpZiAoIWNhbldyaXRlRGF0
YSgpKQogICAgICAgICByZXR1cm47CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBDbGlwYm9hcmQ6
OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmIAogICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIodHlwZSk7
CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpjbGVhckRhdGEoKQordm9pZCBEYXRhVHJhbnNmZXI6OmNs
ZWFyRGF0YSgpCiB7CiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgQ2xpcGJvYXJkOjpjbGVhckRhdGEoKQogICAgIG1fcGFz
dGVib2FyZC0+Y2xlYXIoKTsKIH0KIAotU3RyaW5nIENsaXBib2FyZDo6Z2V0RGF0YShjb25zdCBT
dHJpbmcmIHR5cGUpIGNvbnN0CitTdHJpbmcgRGF0YVRyYW5zZmVyOjpnZXREYXRhKGNvbnN0IFN0
cmluZyYgdHlwZSkgY29uc3QKIHsKICAgICBpZiAoIWNhblJlYWREYXRhKCkpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBTdHJpbmcgQ2xpcGJvYXJkOjpnZXRE
YXRhKGNvbnN0IFN0cmluZyYgCiAgICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+cmVhZFN0cmluZyh0
eXBlKTsKIH0KIAotYm9vbCBDbGlwYm9hcmQ6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGRhdGEpCitib29sIERhdGFUcmFuc2Zlcjo6c2V0RGF0YShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICBpZiAoIWNhbldyaXRlRGF0YSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBDbGlwYm9h
cmQ6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eQogICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPndy
aXRlU3RyaW5nKHR5cGUsIGRhdGEpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBDbGlwYm9hcmQ6OnR5
cGVzKCkgY29uc3QKK1ZlY3RvcjxTdHJpbmc+IERhdGFUcmFuc2Zlcjo6dHlwZXMoKSBjb25zdAog
ewogICAgIGlmICghY2FuUmVhZFR5cGVzKCkpCiAgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PigpOwpAQCAtMTU3LDExICsxNTcsMTEgQEAgVmVjdG9yPFN0cmluZz4gQ2xpcGJvYXJkOjp0eXBl
cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+dHlwZXMoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkOjpmaWxlcygpIGNvbnN0CitQYXNzUmVmUHRyPEZpbGVM
aXN0PiBEYXRhVHJhbnNmZXI6OmZpbGVzKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2UgY291
bGQgY2FjaGUgdGhlIGNvbXB1dGVkIGZpbGUgbGlzdCBpZiBpdCB3YXMgbmVjZXNzYXJ5IGFuZCBo
ZWxwZnVsLgogICAgIC8vIEN1cnJlbnRseSwgZWFjaCBhY2Nlc3MgZ2V0cyBhIG5ldyBjb3B5LCBh
bmQgdGh1cyBzZXREYXRhKCkgbW9kaWZpY2F0aW9ucyB0byB0aGUKLSAgICAvLyBjbGlwYm9hcmQg
YXJlIG5vdCByZWZsZWN0ZWQgaW4gYW55IEZpbGVMaXN0IG9iamVjdHMgdGhlIHBhZ2UgaGFzIGFj
Y2Vzc2VkIGFuZCBzdG9yZWQuCisgICAgLy8gZGF0YVRyYW5zZmVyIGFyZSBub3QgcmVmbGVjdGVk
IGluIGFueSBGaWxlTGlzdCBvYmplY3RzIHRoZSBwYWdlIGhhcyBhY2Nlc3NlZCBhbmQgc3RvcmVk
LgogCiAgICAgaWYgKCFjYW5SZWFkRGF0YSgpKQogICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNy
ZWF0ZSgpOwpAQCAtMTgwLDUwICsxODAsNTAgQEAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJv
YXJkOjpmaWxlcygpIAogCiAjaWYgIUVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLVN0cmluZyBDbGlw
Ym9hcmQ6OmRyb3BFZmZlY3QoKSBjb25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6ZHJvcEVmZmVj
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9uZSIpOwogfQogCi12b2lk
IENsaXBib2FyZDo6c2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmKQordm9pZCBEYXRhVHJhbnNm
ZXI6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJikKIHsKIH0KIAotU3RyaW5nIENsaXBib2Fy
ZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0CitTdHJpbmcgRGF0YVRyYW5zZmVyOjplZmZlY3RBbGxv
d2VkKCkgY29uc3QKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1bmluaXRpYWxpemVkIik7
CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmluZyYpCit2
b2lkIERhdGFUcmFuc2Zlcjo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKQogewogfQog
Ci12b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBpbnQsIGludCkKK3ZvaWQg
RGF0YVRyYW5zZmVyOjpzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCwgaW50KQogewogfQogCiAj
ZWxzZQogCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcCgpCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmQoQ2xpcGJv
YXJkV3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCksIERyYWdBbmRE
cm9wKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5OjpXcml0YWJsZSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
KSwgRHJhZ0FuZERyb3ApKTsKIH0KIAotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgY29uc3Qg
RHJhZ0RhdGEmIGRyYWdEYXRhKQorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zl
cjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSwg
Y29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xp
cGJvYXJkKHBvbGljeSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEp
LCBEcmFnQW5kRHJvcCwgZHJhZ0RhdGEuY29udGFpbnNGaWxlcygpKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBEYXRhVHJhbnNmZXIocG9saWN5LCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFn
QW5kRHJvcChkcmFnRGF0YSksIERyYWdBbmREcm9wLCBkcmFnRGF0YS5jb250YWluc0ZpbGVzKCkp
KTsKIH0KIAotYm9vbCBDbGlwYm9hcmQ6OmNhblNldERyYWdJbWFnZSgpIGNvbnN0Citib29sIERh
dGFUcmFuc2Zlcjo6Y2FuU2V0RHJhZ0ltYWdlKCkgY29uc3QKIHsKICAgICAvLyBOb3RlIHRoYXQg
dGhlIHNwZWMgZG9lc24ndCBhY3R1YWxseSBhbGxvdyBkcmFnIGltYWdlIG1vZGlmaWNhdGlvbiBv
dXRzaWRlIHRoZSBkcmFnc3RhcnQKICAgICAvLyBldmVudC4gVGhpcyBjYXBhYmlsaXR5IGlzIG1h
aW50YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmxpdHkgZm9yIHBvcnRzIHRoYXQgaGF2ZQog
ICAgIC8vIHN1cHBvcnRlZCB0aGlzIGluIHRoZSBwYXN0LiBPbiBtYW55IHBvcnRzLCBhdHRlbXB0
aW5nIHRvIHNldCBhIGRyYWcgaW1hZ2Ugb3V0c2lkZSB0aGUKICAgICAvLyBkcmFnc3RhcnQgb3Bl
cmF0aW9uIGlzIGEgbm8tb3AgYW55d2F5LgotICAgIHJldHVybiBtX2ZvckRyYWcgJiYgKG1fcG9s
aWN5ID09IENsaXBib2FyZEltYWdlV3JpdGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3Jp
dGFibGUpOworICAgIHJldHVybiBtX2ZvckRyYWcgJiYgKG1fcG9saWN5ID09IERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeTo6SW1hZ2VXcml0YWJsZSB8fCBtX3BvbGljeSA9PSBEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OldyaXRhYmxlKTsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFn
ZShFbGVtZW50KiBlbGVtZW50LCBpbnQgeCwgaW50IHkpCit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0
RHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGludCB4LCBpbnQgeSkKIHsKICAgICBpZiAoIWNh
blNldERyYWdJbWFnZSgpKQogICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9p
ZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiBlbAogICAgIHVwZGF0ZURyYWdJbWFn
ZSgpOwogfQogCi12b2lkIENsaXBib2FyZDo6dXBkYXRlRHJhZ0ltYWdlKCkKK3ZvaWQgRGF0YVRy
YW5zZmVyOjp1cGRhdGVEcmFnSW1hZ2UoKQogewogICAgIC8vIERvbid0IGFsbG93IHNldHRpbmcg
dGhlIGltYWdlIGlmIHdlIGhhdmVuJ3Qgc3RhcnRlZCBkcmFnZ2luZyB5ZXQ7IHdlJ2xsIHJlbHkg
b24gdGhlIGRyYWdnaW5nIGNvZGUKICAgICAvLyB0byBpbnN0YWxsIHRoaXMgZHJhZyBpbWFnZSBh
cyBwYXJ0IG9mIGdldHRpbmcgdGhlIGRyYWcga2lja2VkIG9mZi4KQEAgLTI2Nyw3ICsyNjcsNyBA
QCB2b2lkIENsaXBib2FyZDo6dXBkYXRlRHJhZ0ltYWdlKCkKIAogI2lmICFQTEFURk9STShDT0NP
QSkKIAotRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBs
b2NhdGlvbikgY29uc3QKK0RyYWdJbWFnZVJlZiBEYXRhVHJhbnNmZXI6OmNyZWF0ZURyYWdJbWFn
ZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiB7CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2Nh
dGlvbjsKIApAQCAtMjg1LDggKzI4NSw4IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0
ZURyYWdJbWFnZSgKIAogI2VuZGlmCiAKLURyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVy
KENsaXBib2FyZCogY2xpcGJvYXJkKQotICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQorRHJh
Z0ltYWdlTG9hZGVyOjpEcmFnSW1hZ2VMb2FkZXIoRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIp
CisgICAgOiBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNmZXIpCiB7CiB9CiAKQEAgLTMwMyw3ICsz
MDMsNyBAQCB2b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RvcExvYWRpbmcoQ2FjaGVkCiAKIHZvaWQg
RHJhZ0ltYWdlTG9hZGVyOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0
KikKIHsKLSAgICBtX2NsaXBib2FyZC0+dXBkYXRlRHJhZ0ltYWdlKCk7CisgICAgbV9kYXRhVHJh
bnNmZXItPnVwZGF0ZURyYWdJbWFnZSgpOwogfQogCiBzdGF0aWMgRHJhZ09wZXJhdGlvbiBkcmFn
T3BGcm9tSUVPcChjb25zdCBTdHJpbmcmIG9wZXJhdGlvbikKQEAgLTM1MCwzOCArMzUwLDM4IEBA
IHN0YXRpYyBjb25zdCBjaGFyKiBJRU9wRnJvbURyYWdPcChEcmFnT3AKICAgICByZXR1cm4gIm5v
bmUiOwogfQogCi1EcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6c291cmNlT3BlcmF0aW9uKCkgY29u
c3QKK0RyYWdPcGVyYXRpb24gRGF0YVRyYW5zZmVyOjpzb3VyY2VPcGVyYXRpb24oKSBjb25zdAog
ewogICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gZHJhZ09wRnJvbUlFT3AobV9lZmZlY3RB
bGxvd2VkKTsKICAgICBBU1NFUlQob3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsK
ICAgICByZXR1cm4gb3BlcmF0aW9uOwogfQogCi1EcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6ZGVz
dGluYXRpb25PcGVyYXRpb24oKSBjb25zdAorRHJhZ09wZXJhdGlvbiBEYXRhVHJhbnNmZXI6OmRl
c3RpbmF0aW9uT3BlcmF0aW9uKCkgY29uc3QKIHsKICAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlv
biA9IGRyYWdPcEZyb21JRU9wKG1fZHJvcEVmZmVjdCk7CiAgICAgQVNTRVJUKG9wZXJhdGlvbiA9
PSBEcmFnT3BlcmF0aW9uQ29weSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwg
b3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJh
dGlvbikoRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkgfHwgb3BlcmF0
aW9uID09IERyYWdPcGVyYXRpb25FdmVyeSk7CiAgICAgcmV0dXJuIG9wZXJhdGlvbjsKIH0KIAot
dm9pZCBDbGlwYm9hcmQ6OnNldFNvdXJjZU9wZXJhdGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlv
bikKK3ZvaWQgRGF0YVRyYW5zZmVyOjpzZXRTb3VyY2VPcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBv
cGVyYXRpb24pCiB7CiAgICAgQVNTRVJUX0FSRyhvcGVyYXRpb24sIG9wZXJhdGlvbiAhPSBEcmFn
T3BlcmF0aW9uUHJpdmF0ZSk7CiAgICAgbV9lZmZlY3RBbGxvd2VkID0gSUVPcEZyb21EcmFnT3Ao
b3BlcmF0aW9uKTsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNldERlc3RpbmF0aW9uT3BlcmF0aW9u
KERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQordm9pZCBEYXRhVHJhbnNmZXI6OnNldERlc3RpbmF0
aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQogewogICAgIEFTU0VSVF9BUkco
b3BlcmF0aW9uLCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkNvcHkgfHwgb3BlcmF0aW9uID09
IERyYWdPcGVyYXRpb25Ob25lIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTGluayB8fCBv
cGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkdlbmVyaWMgfHwgb3BlcmF0aW9uID09IERyYWdPcGVy
YXRpb25Nb3ZlIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkdl
bmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkpOwogICAgIG1fZHJvcEVmZmVjdCA9IElFT3BGcm9t
RHJhZ09wKG9wZXJhdGlvbik7CiB9CiAKLVN0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3QoKSBj
b25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6ZHJvcEVmZmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fZHJvcEVmZmVjdCA9PSAidW5pbml0aWFsaXplZCIgPyBBU0NJSUxpdGVyYWwoIm5vbmUi
KSA6IG1fZHJvcEVmZmVjdDsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29u
c3QgU3RyaW5nJiBlZmZlY3QpCit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RHJvcEVmZmVjdChjb25z
dCBTdHJpbmcmIGVmZmVjdCkKIHsKICAgICBpZiAoIW1fZm9yRHJhZykKICAgICAgICAgcmV0dXJu
OwpAQCAtMzk3LDEyICszOTcsMTIgQEAgdm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29u
c3QgU3RyaQogICAgIG1fZHJvcEVmZmVjdCA9IGVmZmVjdDsKIH0KIAotU3RyaW5nIENsaXBib2Fy
ZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0CitTdHJpbmcgRGF0YVRyYW5zZmVyOjplZmZlY3RBbGxv
d2VkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lZmZlY3RBbGxvd2VkOwogfQogCi12b2lkIENs
aXBib2FyZDo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmIGVmZmVjdCkKK3ZvaWQgRGF0
YVRyYW5zZmVyOjpzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmluZyYgZWZmZWN0KQogewogICAg
IGlmICghbV9mb3JEcmFnKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlci5oCShyZXZpc2lvbiAxNjY4NzMpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmQuaDoxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEg
UGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMSBUb2JpYXMg
QW50b24gKGFudG9uQHN0dWQuZmJpLmZoLWRhcm1zdGFkdC5kZSkKKyAqIENvcHlyaWdodCAoQykg
MjAwNiBTYW11ZWwgV2VpbmlnIChzYW0ud2VpbmlnQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIENsaXBib2FyZF9oCisjZGVmaW5lIENsaXBib2FyZF9o
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNsaXBib2Fy
ZEFjY2Vzc1BvbGljeS5oIgorI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisjaW5jbHVkZSAiRHJh
Z0ltYWdlLmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyAgICBjbGFzcyBDYWNoZWRJbWFnZTsKKyAgICBjbGFzcyBEYXRhVHJhbnNmZXJJdGVt
TGlzdDsKKyAgICBjbGFzcyBEcmFnRGF0YTsKKyAgICBjbGFzcyBEcmFnSW1hZ2VMb2FkZXI7Cisg
ICAgY2xhc3MgRWxlbWVudDsKKyAgICBjbGFzcyBGaWxlTGlzdDsKKyAgICBjbGFzcyBQYXN0ZWJv
YXJkOworCisgICAgY2xhc3MgQ2xpcGJvYXJkIDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpcGJvYXJk
PiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworCisgICAgICAgIH5D
bGlwYm9hcmQoKTsKKworICAgICAgICBTdHJpbmcgZHJvcEVmZmVjdCgpIGNvbnN0OworICAgICAg
ICB2b2lkIHNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJik7CisKKyAgICAgICAgU3RyaW5nIGVm
ZmVjdEFsbG93ZWQoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRFZmZlY3RBbGxvd2VkKGNvbnN0
IFN0cmluZyYpOworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisKKyAg
ICAgICAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKKworICAgICAgICB2b2lk
IGNsZWFyRGF0YShjb25zdCBTdHJpbmcmIHR5cGUpOworICAgICAgICB2b2lkIGNsZWFyRGF0YSgp
OworCisgICAgICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CisK
KyAgICAgICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBk
YXRhKTsKKworICAgICAgICB2b2lkIHNldERyYWdJbWFnZShFbGVtZW50KiwgaW50IHgsIGludCB5
KTsKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorICAgICAgICBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpID0gMDsKKyNlbmRpZgorCisgICAgICAgIHZv
aWQgc2V0QWNjZXNzUG9saWN5KENsaXBib2FyZEFjY2Vzc1BvbGljeSk7CisgICAgICAgIGJvb2wg
Y2FuUmVhZFR5cGVzKCkgY29uc3Q7CisgICAgICAgIGJvb2wgY2FuUmVhZERhdGEoKSBjb25zdDsK
KyAgICAgICAgYm9vbCBjYW5Xcml0ZURhdGEoKSBjb25zdDsKKworICAgICAgICBQYXN0ZWJvYXJk
JiBwYXN0ZWJvYXJkKCkgeyByZXR1cm4gKm1fcGFzdGVib2FyZDsgfQorCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNy
ZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgY29uc3QgRHJhZ0RhdGEm
KTsKKworICAgICAgICBib29sIGRyb3BFZmZlY3RJc1VuaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6ZWQiOyB9CisKKyAgICAgICAgRHJhZ09w
ZXJhdGlvbiBzb3VyY2VPcGVyYXRpb24oKSBjb25zdDsKKyAgICAgICAgRHJhZ09wZXJhdGlvbiBk
ZXN0aW5hdGlvbk9wZXJhdGlvbigpIGNvbnN0OworICAgICAgICB2b2lkIHNldFNvdXJjZU9wZXJh
dGlvbihEcmFnT3BlcmF0aW9uKTsKKyAgICAgICAgdm9pZCBzZXREZXN0aW5hdGlvbk9wZXJhdGlv
bihEcmFnT3BlcmF0aW9uKTsKKworICAgICAgICB2b2lkIHNldERyYWdIYXNTdGFydGVkKCkgeyBt
X3Nob3VsZFVwZGF0ZURyYWdJbWFnZSA9IHRydWU7IH0KKyAgICAgICAgRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdDsKKyAgICAgICAgdm9p
ZCB1cGRhdGVEcmFnSW1hZ2UoKTsKKyNlbmRpZgorCisgICAgcHJpdmF0ZToKKyAgICAgICAgZW51
bSBDbGlwYm9hcmRUeXBlIHsgQ29weUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OworICAgICAgICBD
bGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBD
bGlwYm9hcmRUeXBlID0gQ29weUFuZFBhc3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwor
CisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2Uo
KSBjb25zdDsKKyNlbmRpZgorCisgICAgICAgIENsaXBib2FyZEFjY2Vzc1BvbGljeSBtX3BvbGlj
eTsKKyAgICAgICAgT3duUHRyPFBhc3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKworI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCisgICAgICAgIGJvb2wgbV9mb3JEcmFnOworICAgICAgICBib29sIG1f
Zm9yRmlsZURyYWc7CisgICAgICAgIFN0cmluZyBtX2Ryb3BFZmZlY3Q7CisgICAgICAgIFN0cmlu
ZyBtX2VmZmVjdEFsbG93ZWQ7CisgICAgICAgIGJvb2wgbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2U7
CisgICAgICAgIEludFBvaW50IG1fZHJhZ0xvY2F0aW9uOworICAgICAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4gbV9kcmFnSW1hZ2U7CisgICAgICAgIFJlZlB0cjxFbGVtZW50
PiBtX2RyYWdJbWFnZUVsZW1lbnQ7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmFnSW1hZ2VM
b2FkZXI+IG1fZHJhZ0ltYWdlTG9hZGVyOworI2VuZGlmCisgICAgfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ2xpcGJvYXJkX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVyLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTEgKzIxLDExIEBACiAgKgogICovCiAKLSNp
Zm5kZWYgQ2xpcGJvYXJkX2gKLSNkZWZpbmUgQ2xpcGJvYXJkX2gKKyNpZm5kZWYgRGF0YVRyYW5z
ZmVyX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
SGFuZGxlLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNp
bmNsdWRlICJEcmFnSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgpAQCAtNDIsMTEgKzQy
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGaWxlTGlzdDsKICAgICBjbGFz
cyBQYXN0ZWJvYXJkOwogCi0gICAgY2xhc3MgQ2xpcGJvYXJkIDogcHVibGljIFJlZkNvdW50ZWQ8
Q2xpcGJvYXJkPiB7CisgICAgY2xhc3MgRGF0YVRyYW5zZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
RGF0YVRyYW5zZmVyPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOwor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kpOwogCi0gICAgICAgIH5DbGlwYm9hcmQoKTsK
KyAgICAgICAgfkRhdGFUcmFuc2ZlcigpOwogCiAgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0KCkg
Y29uc3Q7CiAgICAgICAgIHZvaWQgc2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmKTsKQEAgLTcx
LDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpID0gMDsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0
QWNjZXNzUG9saWN5KENsaXBib2FyZEFjY2Vzc1BvbGljeSk7CisgICAgICAgIHZvaWQgc2V0QWNj
ZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSk7CiAgICAgICAgIGJvb2wgY2FuUmVh
ZFR5cGVzKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgY2FuUmVhZERhdGEoKSBjb25zdDsKICAgICAg
ICAgYm9vbCBjYW5Xcml0ZURhdGEoKSBjb25zdDsKQEAgLTc5LDggKzc5LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKCkgeyByZXR1cm4gKm1f
cGFzdGVib2FyZDsgfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2Fy
ZEFjY2Vzc1BvbGljeSwgY29uc3QgRHJhZ0RhdGEmKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeSwgY29uc3QgRHJhZ0RhdGEmKTsKIAogICAgICAgICBib29sIGRyb3BFZmZl
Y3RJc1VuaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5p
dGlhbGl6ZWQiOyB9CiAKQEAgLTk1LDE0ICs5NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
ZW5kaWYKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gQ2xpcGJvYXJkVHlwZSB7IENvcHlB
bmRQYXN0ZSwgRHJhZ0FuZERyb3AgfTsKLSAgICAgICAgQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vz
c1BvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgQ2xpcGJvYXJkVHlwZSA9IENvcHlBbmRQ
YXN0ZSwgYm9vbCBmb3JGaWxlRHJhZyA9IGZhbHNlKTsKKyAgICAgICAgZW51bSBUeXBlIHsgQ29w
eUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCi0gICAg
ICAgIENsaXBib2FyZEFjY2Vzc1BvbGljeSBtX3BvbGljeTsKKyAgICAgICAgRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IG1fcG9saWN5OwogICAgICAgICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0
ZWJvYXJkOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTEyMCw0ICsxMjAsNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8v
IENsaXBib2FyZF9oCisjZW5kaWYgLy8gRGF0YVRyYW5zZmVyX2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXIuaWRsCShyZXZpc2lvbiAxNjY4NzMpCShmcm9tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9DbGlwYm9hcmQuaWRsOjE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIFNraXBWVGFibGVW
YWxpZGF0aW9uLAorXSBpbnRlcmZhY2UgQ2xpcGJvYXJkIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGRyb3BFZmZlY3Q7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyBlZmZlY3RBbGxvd2VkOwor
CisgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5IHR5cGVzOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsKKworICAgIHZvaWQgY2xlYXJEYXRh
KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlKTsKKyAgICBET01TdHJpbmcgZ2V0RGF0YShET01TdHJp
bmcgdHlwZSk7CisgICAgYm9vbGVhbiBzZXREYXRhKERPTVN0cmluZyB0eXBlLCBET01TdHJpbmcg
ZGF0YSk7CisgICAgdm9pZCBzZXREcmFnSW1hZ2UoRWxlbWVudCBpbWFnZSwgbG9uZyB4LCBsb25n
IHkpOworCisgICAgW0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVNdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEYXRhVHJhbnNmZXJJdGVtTGlzdCBpdGVtczsKK307CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmlkbAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwog
ICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAotXSBpbnRlcmZhY2UgQ2xpcGJvYXJkIHsKK10gaW50
ZXJmYWNlIERhdGFUcmFuc2ZlciB7CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBkcm9wRWZmZWN0
OwogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaAkocmV2aXNpb24gMTY2
ODczKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5Lmg6MTY2
ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisgCisjaWZuZGVmIENsaXBib2FyZEFjY2Vzc1BvbGljeV9oCisj
ZGVmaW5lIENsaXBib2FyZEFjY2Vzc1BvbGljeV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgeworICAgIENsaXBib2FyZE51bWIsIENsaXBib2Fy
ZEltYWdlV3JpdGFibGUsIENsaXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmRUeXBlc1JlYWRhYmxl
LCBDbGlwYm9hcmRSZWFkYWJsZQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCSh3b3Jr
aW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEzICsyMywxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KICAKLSNpZm5kZWYgQ2xpcGJvYXJkQWNjZXNzUG9saWN5X2gKLSNkZWZpbmUgQ2xpcGJvYXJk
QWNjZXNzUG9saWN5X2gKKyNpZm5kZWYgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5X2gKKyNkZWZp
bmUgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5X2gKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1l
bnVtIENsaXBib2FyZEFjY2Vzc1BvbGljeSB7Ci0gICAgQ2xpcGJvYXJkTnVtYiwgQ2xpcGJvYXJk
SW1hZ2VXcml0YWJsZSwgQ2xpcGJvYXJkV3JpdGFibGUsIENsaXBib2FyZFR5cGVzUmVhZGFibGUs
IENsaXBib2FyZFJlYWRhYmxlCitlbnVtIGNsYXNzIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSB7
CisgICAgTnVtYiwgSW1hZ2VXcml0YWJsZSwgV3JpdGFibGUsIFR5cGVzUmVhZGFibGUsIFJlYWRh
YmxlCiB9OwogCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0LmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2xpcGJvYXJkOwogY2xhc3MgRmlsZTsK
IAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlck1hYy5tbQkocmV2aXNpb24gMTY2ODczKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkTWFjLm1tOjE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNsaXBib2FyZC5oIgorCisjaW1wb3J0
ICJDYWNoZWRJbWFnZS5oIgorI2ltcG9ydCAiRWxlbWVudC5oIgorI2ltcG9ydCAiRHJhZ0ltYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IE5lZWQgdG8gcmVmYWN0b3Ig
YW5kIGZpZ3VyZSBvdXQgaG93IHRvIGhhbmRsZSB0aGUgZmxpcHBpbmcgaW4gYSBtb3JlIHNlbnNp
YmxlIHdheSBzbyB3ZSBjYW4KKy8vIHVzZSB0aGUgZGVmYXVsdCBDbGlwYm9hcmQ6OmRyYWdJbWFn
ZSBmcm9tIENsaXBib2FyZC5jcHAuIE5vdGUgYWxzbyB0aGF0IHRoaXMgaGFuZGxlcyBjYXNlcyB0
aGF0CisvLyBDbGlwYm9hcmQ6OmRyYWdJbWFnZSBpbiBDbGlwYm9hcmQuY3BwIGRvZXMgbm90IGhh
bmRsZSBjb3JyZWN0bHksIHNvIG11c3QgcmVzb2x2ZSB0aGF0IGFzIHdlbGwuCitEcmFnSW1hZ2VS
ZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAor
eworICAgIERyYWdJbWFnZVJlZiByZXN1bHQgPSBuaWw7CisgICAgaWYgKG1fZHJhZ0ltYWdlRWxl
bWVudCkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kcmFnSW1hZ2VFbGVtZW50LT5k
b2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAgICAgICAgIEludFJlY3QgaW1hZ2VSZWN0OworICAg
ICAgICAgICAgSW50UmVjdCBlbGVtZW50UmVjdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0
ZURyYWdJbWFnZUZvckltYWdlKCpmcmFtZSwgKm1fZHJhZ0ltYWdlRWxlbWVudCwgaW1hZ2VSZWN0
LCBlbGVtZW50UmVjdCk7CisgICAgICAgICAgICAvLyBDbGllbnQgc3BlY2lmaWVzIHBvaW50IHJl
bGF0aXZlIHRvIGVsZW1lbnQsIG5vdCB0aGUgd2hvbGUgaW1hZ2UsIHdoaWNoIG1heSBpbmNsdWRl
IGNoaWxkCisgICAgICAgICAgICAvLyBsYXllcnMgc3ByZWFkIG91dCBhbGwgb3ZlciB0aGUgcGxh
Y2UuCisgICAgICAgICAgICBsb2NhdGlvbi5zZXRYKGVsZW1lbnRSZWN0LngoKSAtIGltYWdlUmVj
dC54KCkgKyBtX2RyYWdMb2NhdGlvbi54KCkpOworICAgICAgICAgICAgbG9jYXRpb24uc2V0WShp
bWFnZVJlY3QuaGVpZ2h0KCkgLSAoZWxlbWVudFJlY3QueSgpIC0gaW1hZ2VSZWN0LnkoKSArIG1f
ZHJhZ0xvY2F0aW9uLnkoKSkpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChtX2RyYWdJbWFn
ZSkgeworICAgICAgICByZXN1bHQgPSBtX2RyYWdJbWFnZS0+aW1hZ2UoKS0+Z2V0TlNJbWFnZSgp
OworICAgICAgICAKKyAgICAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2NhdGlvbjsKKyAgICAgICAg
bG9jYXRpb24uc2V0WShbcmVzdWx0IHNpemVdLmhlaWdodCAtIGxvY2F0aW9uLnkoKSk7CisgICAg
fQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlck1hYy5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCisjaW1wb3J0ICJEYXRhVHJh
bnNmZXIuaCIKIAogI2ltcG9ydCAiQ2FjaGVkSW1hZ2UuaCIKICNpbXBvcnQgIkVsZW1lbnQuaCIK
QEAgLTMzLDkgKzMzLDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IE5lZWQg
dG8gcmVmYWN0b3IgYW5kIGZpZ3VyZSBvdXQgaG93IHRvIGhhbmRsZSB0aGUgZmxpcHBpbmcgaW4g
YSBtb3JlIHNlbnNpYmxlIHdheSBzbyB3ZSBjYW4KLS8vIHVzZSB0aGUgZGVmYXVsdCBDbGlwYm9h
cmQ6OmRyYWdJbWFnZSBmcm9tIENsaXBib2FyZC5jcHAuIE5vdGUgYWxzbyB0aGF0IHRoaXMgaGFu
ZGxlcyBjYXNlcyB0aGF0Ci0vLyBDbGlwYm9hcmQ6OmRyYWdJbWFnZSBpbiBDbGlwYm9hcmQuY3Bw
IGRvZXMgbm90IGhhbmRsZSBjb3JyZWN0bHksIHNvIG11c3QgcmVzb2x2ZSB0aGF0IGFzIHdlbGwu
Ci1EcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0
aW9uKSBjb25zdAorLy8gdXNlIHRoZSBkZWZhdWx0IERhdGFUcmFuc2Zlcjo6ZHJhZ0ltYWdlIGZy
b20gRGF0YVRyYW5zZmVyLmNwcC4gTm90ZSBhbHNvIHRoYXQgdGhpcyBoYW5kbGVzIGNhc2VzIHRo
YXQKKy8vIERhdGFUcmFuc2Zlcjo6ZHJhZ0ltYWdlIGluIERhdGFUcmFuc2Zlci5jcHAgZG9lcyBu
b3QgaGFuZGxlIGNvcnJlY3RseSwgc28gbXVzdCByZXNvbHZlIHRoYXQgYXMgd2VsbC4KK0RyYWdJ
bWFnZVJlZiBEYXRhVHJhbnNmZXI6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24p
IGNvbnN0CiB7CiAgICAgRHJhZ0ltYWdlUmVmIHJlc3VsdCA9IG5pbDsKICAgICBpZiAobV9kcmFn
SW1hZ2VFbGVtZW50KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDbGlwYm9hcmQ7CitjbGFzcyBEYXRh
VHJhbnNmZXI7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEhUTUxJRnJhbWVFbGVtZW50Owog
CkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIGJvb2wgbGVnYWN5UmV0dXJuVmFsdWUo
KSBjb25zdCB7IHJldHVybiAhZGVmYXVsdFByZXZlbnRlZCgpOyB9CiAgICAgdm9pZCBzZXRMZWdh
Y3lSZXR1cm5WYWx1ZShib29sIHJldHVyblZhbHVlKSB7IHNldERlZmF1bHRQcmV2ZW50ZWQoIXJl
dHVyblZhbHVlKTsgfQogCi0gICAgQ2xpcGJvYXJkKiBjbGlwYm9hcmREYXRhKCkgY29uc3QgeyBy
ZXR1cm4gaXNDbGlwYm9hcmRFdmVudCgpID8gY2xpcGJvYXJkKCkgOiAwOyB9CisgICAgRGF0YVRy
YW5zZmVyKiBjbGlwYm9hcmREYXRhKCkgY29uc3QgeyByZXR1cm4gaXNDbGlwYm9hcmRFdmVudCgp
ID8gaW50ZXJuYWxEYXRhVHJhbnNmZXIoKSA6IDA7IH0KIAogICAgIHZpcnR1YWwgRXZlbnRJbnRl
cmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdDsKIApAQCAtMTY5LDcgKzE2OSw3IEBAIHB1Ymxp
YzoKICAgICBFdmVudCogdW5kZXJseWluZ0V2ZW50KCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmx5
aW5nRXZlbnQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFVuZGVybHlpbmdFdmVudChQYXNzUmVmUHRy
PEV2ZW50Pik7CiAKLSAgICB2aXJ0dWFsIENsaXBib2FyZCogY2xpcGJvYXJkKCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgRGF0YVRyYW5zZmVyKiBpbnRlcm5hbERhdGFUcmFuc2Zl
cigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIGJvb2wgaXNCZWluZ0Rpc3BhdGNoZWQoKSBj
b25zdCB7IHJldHVybiBldmVudFBoYXNlKCk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCShy
ZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw3ICs3Niw3IEBACiAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4g
ICAgICAgICAgY2FuY2VsQnViYmxlOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRl
IENsaXBib2FyZCAgICAgICAgY2xpcGJvYXJkRGF0YTsKKyAgICBbQ3VzdG9tXSByZWFkb25seSBh
dHRyaWJ1dGUgRGF0YVRyYW5zZmVyICAgICAgICBjbGlwYm9hcmREYXRhOwogI2VuZGlmCiAKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcg
KzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAK
LSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKQEAgLTkyLDE0ICs5MiwxNCBAQCBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNlRXZl
bnQ6OmNyZWF0CiAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgogICAg
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLAotICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0
ZWRUYXJnZXQsIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQsIGJvb2wgaXNTaW11bGF0
ZWQpCisgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCwgUGFzc1JlZlB0
cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciwgYm9vbCBpc1NpbXVsYXRlZCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE1vdXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCB0aW1lc3RhbXAsIHZpZXcsCiAgICAgICAgIGRldGFpbCwgc2NyZWVuWCwgc2NyZWVuWSwgcGFn
ZVgsIHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIG1vdmVtZW50WCwg
bW92ZW1lbnRZLAogI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXksIGJ1dHRvbiwgcmVsYXRlZFRhcmdldCwgY2xpcGJvYXJkLCBpc1NpbXVsYXRlZCkpOwor
ICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJlbGF0
ZWRUYXJnZXQsIGRhdGFUcmFuc2ZlciwgaXNTaW11bGF0ZWQpKTsKIH0KIAogTW91c2VFdmVudDo6
TW91c2VFdmVudCgpCkBAIC0xMTUsNyArMTE1LDcgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChj
b25zdCBBdG9taWNTdHJpbgogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwKICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENs
aXBib2FyZD4gY2xpcGJvYXJkLCBib29sIGlzU2ltdWxhdGVkKQorICAgICAgICAgICAgICAgICAg
ICAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxh
dGVkKQogICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIHRpbWVzdGFtcCwgdmlldywgZGV0YWlsLCBJbnRQb2ludChzY3JlZW5YLCBzY3JlZW5Z
KSwKICAgICAgICAgICAgICAgICAgICAgICAgIEludFBvaW50KHBhZ2VYLCBwYWdlWSksCiAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTEyNSw3ICsxMjUsNyBAQCBNb3VzZUV2ZW50OjpNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluCiAgICAgLCBtX2J1dHRvbihidXR0b24gPT0gKHVuc2ln
bmVkIHNob3J0KS0xID8gMCA6IGJ1dHRvbikKICAgICAsIG1fYnV0dG9uRG93bihidXR0b24gIT0g
KHVuc2lnbmVkIHNob3J0KS0xKQogICAgICwgbV9yZWxhdGVkVGFyZ2V0KHJlbGF0ZWRUYXJnZXQp
Ci0gICAgLCBtX2NsaXBib2FyZChjbGlwYm9hcmQpCisgICAgLCBtX2RhdGFUcmFuc2ZlcihkYXRh
VHJhbnNmZXIpCiB7CiB9CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluCiAgICAgLCBtX2J1dHRvbihpbml0aWFsaXplci5idXR0b24g
PT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGluaXRpYWxpemVyLmJ1dHRvbikKICAgICAsIG1f
YnV0dG9uRG93bihpbml0aWFsaXplci5idXR0b24gIT0gKHVuc2lnbmVkIHNob3J0KS0xKQogICAg
ICwgbV9yZWxhdGVkVGFyZ2V0KGluaXRpYWxpemVyLnJlbGF0ZWRUYXJnZXQpCi0gICAgLCBtX2Ns
aXBib2FyZCgwIC8qIGNsaXBib2FyZCAqLykKKyAgICAsIG1fZGF0YVRyYW5zZmVyKDAgLyogZGF0
YVRyYW5zZmVyICovKQogewogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChpbml0aWFsaXpl
ci5jbGllbnRYLCBpbml0aWFsaXplci5jbGllbnRZKSk7CiB9CkBAIC0xNzAsNyArMTcwLDcgQEAg
dm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdAogICAgIGluaXRDb29yZGlu
YXRlcyhJbnRQb2ludChjbGllbnRYLCBjbGllbnRZKSk7CiAKICAgICAvLyBGSVhNRTogbV9pc1Np
bXVsYXRlZCBpcyBub3Qgc2V0IHRvIGZhbHNlIGhlcmUuCi0gICAgLy8gRklYTUU6IG1fY2xpcGJv
YXJkIGlzIG5vdCBzZXQgdG8gMCBoZXJlLgorICAgIC8vIEZJWE1FOiBtX2RhdGFUcmFuc2ZlciBp
cyBub3Qgc2V0IHRvIDAgaGVyZS4KIH0KIAogRXZlbnRJbnRlcmZhY2UgTW91c2VFdmVudDo6ZXZl
bnRJbnRlcmZhY2UoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCShyZXZpc2lv
biAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2xp
cGJvYXJkOworY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50Owog
CiBzdHJ1Y3QgTW91c2VFdmVudEluaXQgOiBwdWJsaWMgVUlFdmVudEluaXQgewpAQCAtNjcsNyAr
NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAj
ZW5kaWYKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sCi0gICAgICAgIFBhc3NSZWZQdHI8
RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgYm9vbCBp
c1NpbXVsYXRlZCA9IGZhbHNlKTsKKyAgICAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVs
YXRlZFRhcmdldCwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkID0g
ZmFsc2UpOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRl
ZFRhcmdldCk7CiAKQEAgLTg3LDEyICs4NywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldCogcmVsYXRlZFRhcmdldCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1f
cmVsYXRlZFRhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVsYXRlZFRhcmdldChQYXNzUmVm
UHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KSB7IG1fcmVsYXRlZFRhcmdldCA9IHJlbGF0
ZWRUYXJnZXQ7IH0KIAotICAgIENsaXBib2FyZCogY2xpcGJvYXJkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9jbGlwYm9hcmQuZ2V0KCk7IH0KIAogICAgIE5vZGUqIHRvRWxlbWVudCgpIGNv
bnN0OwogICAgIE5vZGUqIGZyb21FbGVtZW50KCkgY29uc3Q7CiAKLSAgICBDbGlwYm9hcmQqIGRh
dGFUcmFuc2ZlcigpIGNvbnN0IHsgcmV0dXJuIGlzRHJhZ0V2ZW50KCkgPyBtX2NsaXBib2FyZC5n
ZXQoKSA6IDA7IH0KKyAgICAvLyBGSVhNRTogVGhlc2UgZnVuY3Rpb25zIGNhbiBiZSBtZXJnZWQg
aWYgbV9kYXRhVHJhbnNmZXIgaXMgb25seSBpbml0aWFsaXplZCBmb3IgZHJhZyBldmVudHMuCisg
ICAgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIoKSBjb25zdCB7IHJldHVybiBpc0RyYWdFdmVu
dCgpID8gbV9kYXRhVHJhbnNmZXIuZ2V0KCkgOiAwOyB9CisgICAgdmlydHVhbCBEYXRhVHJhbnNm
ZXIqIGludGVybmFsRGF0YVRyYW5zZmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9kYXRh
VHJhbnNmZXIuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRl
cmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTA5LDcgKzExMCw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgogICAgICAgICBi
b29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVu
c2lnbmVkIHNob3J0IGJ1dHRvbiwKLSAgICAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVs
YXRlZFRhcmdldCwgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBib29sIGlzU2ltdWxhdGVkKTsKKyAg
ICAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCwgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkKTsKIAogICAgIE1vdXNlRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBNb3VzZUV2ZW50SW5pdCYpOwogCkBAIC0xMTksNyAr
MTIwLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBzaG9ydCBtX2J1dHRvbjsKICAgICBib29s
IG1fYnV0dG9uRG93bjsKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fcmVsYXRlZFRhcmdldDsK
LSAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX2NsaXBib2FyZDsKKyAgICBSZWZQdHI8RGF0YVRyYW5z
ZmVyPiBtX2RhdGFUcmFuc2ZlcjsKIH07CiAKIGNsYXNzIFNpbXVsYXRlZE1vdXNlRXZlbnQgOiBw
dWJsaWMgTW91c2VFdmVudCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaWRsCShyZXZp
c2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAg
ICAgICAgICAgICB0b0VsZW1lbnQ7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
ICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ2xpcGJvYXJk
ICAgICAgICBkYXRhVHJhbnNmZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGFUcmFuc2Zl
ciAgICAgZGF0YVRyYW5zZmVyOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1doZWVs
RXZlbnQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIK
KyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTAgQEAKICNpbmNsdWRlICJDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKICNp
bmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5o
IgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRp
b25BbHRlcm5hdGl2ZS5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKQEAgLTMwMiwx
NyArMzAyLDE3IEBAIGJvb2wgRWRpdG9yOjpjYW5FZGl0UmljaGx5KCkgY29uc3QKIAogYm9vbCBF
ZGl0b3I6OmNhbkRIVE1MQ3V0KCkKIHsKLSAgICByZXR1cm4gIW1fZnJhbWUuc2VsZWN0aW9uKCku
c2VsZWN0aW9uKCkuaXNJblBhc3N3b3JkRmllbGQoKSAmJiAhZGlzcGF0Y2hDUFBFdmVudChldmVu
dE5hbWVzKCkuYmVmb3JlY3V0RXZlbnQsIENsaXBib2FyZE51bWIpOworICAgIHJldHVybiAhbV9m
cmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRGaWVsZCgpICYmICFkaXNw
YXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5iZWZvcmVjdXRFdmVudCwgRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5OjpOdW1iKTsKIH0KIAogYm9vbCBFZGl0b3I6OmNhbkRIVE1MQ29weSgpCiB7Ci0g
ICAgcmV0dXJuICFtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZp
ZWxkKCkgJiYgIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZWNvcHlFdmVudCwg
Q2xpcGJvYXJkTnVtYik7CisgICAgcmV0dXJuICFtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpLmlzSW5QYXNzd29yZEZpZWxkKCkgJiYgIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygp
LmJlZm9yZWNvcHlFdmVudCwgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsKIH0KIAog
Ym9vbCBFZGl0b3I6OmNhbkRIVE1MUGFzdGUoKQogewotICAgIHJldHVybiAhZGlzcGF0Y2hDUFBF
dmVudChldmVudE5hbWVzKCkuYmVmb3JlcGFzdGVFdmVudCwgQ2xpcGJvYXJkTnVtYik7CisgICAg
cmV0dXJuICFkaXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5iZWZvcmVwYXN0ZUV2ZW50LCBE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOwogfQogCiBib29sIEVkaXRvcjo6Y2FuQ3V0
KCkgY29uc3QKQEAgLTczNCw3ICs3MzQsNyBAQCBib29sIEVkaXRvcjo6dHJ5REhUTUxDb3B5KCkK
ICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRGaWVs
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gIWRpc3BhdGNoQ1BQRXZl
bnQoZXZlbnROYW1lcygpLmNvcHlFdmVudCwgQ2xpcGJvYXJkV3JpdGFibGUpOworICAgIHJldHVy
biAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuY29weUV2ZW50LCBEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OldyaXRhYmxlKTsKIH0KIAogYm9vbCBFZGl0b3I6OnRyeURIVE1MQ3V0KCkK
QEAgLTc0MiwxMiArNzQyLDEyIEBAIGJvb2wgRWRpdG9yOjp0cnlESFRNTEN1dCgpCiAgICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNJblBhc3N3b3JkRmllbGQoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIHJldHVybiAhZGlzcGF0Y2hDUFBFdmVudChl
dmVudE5hbWVzKCkuY3V0RXZlbnQsIENsaXBib2FyZFdyaXRhYmxlKTsKKyAgICByZXR1cm4gIWRp
c3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLmN1dEV2ZW50LCBEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3k6OldyaXRhYmxlKTsKIH0KIAogYm9vbCBFZGl0b3I6OnRyeURIVE1MUGFzdGUoKQogewot
ICAgIHJldHVybiAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkucGFzdGVFdmVudCwgQ2xp
cGJvYXJkUmVhZGFibGUpOworICAgIHJldHVybiAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVz
KCkucGFzdGVFdmVudCwgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpSZWFkYWJsZSk7CiB9CiAK
IGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgUmFuZ2Uq
IHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9uKSBjb25zdApAQCAtOTE1LDI1ICs5MTUs
MjUgQEAgdm9pZCBFZGl0b3I6OmVuc3VyZUxhc3RFZGl0Q29tbWFuZEhhc0N1cgogCiAvLyBSZXR1
cm5zIHdoZXRoZXIgY2FsbGVyIHNob3VsZCBjb250aW51ZSB3aXRoICJ0aGUgZGVmYXVsdCBwcm9j
ZXNzaW5nIiwgd2hpY2ggaXMgdGhlIHNhbWUgYXMgCiAvLyB0aGUgZXZlbnQgaGFuZGxlciBOT1Qg
c2V0dGluZyB0aGUgcmV0dXJuIHZhbHVlIHRvIGZhbHNlCi1ib29sIEVkaXRvcjo6ZGlzcGF0Y2hD
UFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5IHBvbGljeSkKK2Jvb2wgRWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5KQogewogICAg
IE5vZGUqIHRhcmdldCA9IGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKTsKICAgICBpZiAo
IXRhcmdldCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBSZWZQdHI8Q2xpcGJvYXJkPiBj
bGlwYm9hcmQgPSBDbGlwYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShwb2xpY3kpOworICAg
IFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKHBvbGljeSk7CiAKLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gQ2xp
cGJvYXJkRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIHRydWUsIHRydWUsIGNsaXBib2FyZCk7Cisg
ICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IENsaXBib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnRUeXBl
LCB0cnVlLCB0cnVlLCBkYXRhVHJhbnNmZXIpOwogICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgYm9vbCBub0RlZmF1bHRQcm9jZXNzaW5nID0g
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKLSAgICBpZiAobm9EZWZhdWx0UHJvY2Vzc2luZyAm
JiBwb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKKyAgICBpZiAobm9EZWZhdWx0UHJvY2Vz
c2luZyAmJiBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSkgewog
ICAgICAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpOwogICAgICAgICBwYXN0ZWJvYXJkLT5jbGVhcigpOwotICAgICAg
ICBwYXN0ZWJvYXJkLT53cml0ZVBhc3RlYm9hcmQoY2xpcGJvYXJkLT5wYXN0ZWJvYXJkKCkpOwor
ICAgICAgICBwYXN0ZWJvYXJkLT53cml0ZVBhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLT5wYXN0ZWJv
YXJkKCkpOwogICAgIH0KIAotICAgIC8vIGludmFsaWRhdGUgY2xpcGJvYXJkIGhlcmUgZm9yIHNl
Y3VyaXR5Ci0gICAgY2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7Cisg
ICAgLy8gaW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkKKyAgICBkYXRh
VHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIp
OwogICAgIAogICAgIHJldHVybiAhbm9EZWZhdWx0UHJvY2Vzc2luZzsKIH0KQEAgLTEzMTMsNyAr
MTMxMyw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGkKICAgICB9
CiAKICAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUuc2VsZWN0aW9uKCku
c2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0gICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpLT53cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSwgY2Fu
U21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3RlYm9hcmQ6OkNhblNtYXJ0UmVwbGFjZSA6IFBhc3Rl
Ym9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CisgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSgpLT53cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNm
ZXIoKSwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3RlYm9hcmQ6OkNhblNtYXJ0UmVwbGFj
ZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CiAgICAgZWxzZSB7CiAgICAgICAg
IEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9IG51bGxwdHI7CiAgICAgICAgIGlmIChh
Y3Rpb24gPT0gQ29weUFjdGlvbikKQEAgLTEzMzAsNyArMTMzMCw3IEBAIHZvaWQgRWRpdG9yOjpw
ZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGkKICAgICAgICAgICAgIHdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSk7CiAjZWxzZQog
ICAgICAgICAgICAgLy8gRklYTUU6IENvbnZlcnQgYWxsIG90aGVyIHBsYXRmb3JtcyB0byBtYXRj
aCBNYWMgYW5kIGRlbGV0ZSB0aGlzLgotICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9y
Q29weUFuZFBhc3RlKCktPndyaXRlU2VsZWN0aW9uKCpzZWxlY3Rpb24sIGNhblNtYXJ0Q29weU9y
RGVsZXRlKCksIG1fZnJhbWUsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JDbGlwYm9hcmQpOworICAg
ICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlU2VsZWN0
aW9uKCpzZWxlY3Rpb24sIGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIG1fZnJhbWUsIEluY2x1ZGVJ
bWFnZUFsdFRleHRGb3JEYXRhVHJhbnNmZXIpOwogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CkBA
IC0yOTU3LDcgKzI5NTcsNyBAQCBTdHJpbmcgRWRpdG9yOjpzZWxlY3RlZFRleHQoKSBjb25zdAog
ICAgIHJldHVybiBzZWxlY3RlZFRleHQoVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yKTsKIH0K
IAotU3RyaW5nIEVkaXRvcjo6c2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCkgY29uc3QKK1N0cmlu
ZyBFZGl0b3I6OnNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgaWYg
KG1fZnJhbWUuc2V0dGluZ3MoKS5zZWxlY3Rpb25JbmNsdWRlc0FsdEltYWdlVGV4dCgpKQogICAg
ICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0KFRleHRJdGVyYXRvckVtaXRzSW1hZ2VBbHRUZXh0KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBA
QAogI2lmbmRlZiBFZGl0b3JfaAogI2RlZmluZSBFZGl0b3JfaAogCi0jaW5jbHVkZSAiQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXJBY2Nlc3NQb2xpY3kuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgpAQCAt
NTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXI7CiBjbGFzcyBBcmNoaXZlUmVzb3VyY2U7Ci1jbGFzcyBDbGlwYm9hcmQ7Citj
bGFzcyBEYXRhVHJhbnNmZXI7CiBjbGFzcyBDb21wb3NpdGVFZGl0Q29tbWFuZDsKIGNsYXNzIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI7CiBjbGFzcyBFZGl0Q29tbWFuZDsKQEAgLTE3NSw3ICsxNzUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKICNlbmRp
ZgogICAgIAotICAgIGJvb2wgZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBD
bGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworICAgIGJvb2wgZGlzcGF0Y2hDUFBFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmLCBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kpOwogICAgIAogICAgIHZvaWQg
YXBwbHlTdHlsZShTdHlsZVByb3BlcnRpZXMqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3Bl
Y2lmaWVkKTsKICAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CkBAIC0zNDcsNyArMzQ3LDcgQEAg
cHVibGljOgogICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZyb20oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKSBjb25zdDsKIAogICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBjb25z
dDsKLSAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCkgY29uc3Q7CisgICAgU3Ry
aW5nIHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpIGNvbnN0OwogICAgIGJvb2wgZmluZFN0
cmluZyhjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdl
PiByYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQkocmV2aXNpb24gMTY2ODcz
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKIAogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oIgogI2luY2x1ZGUgIkRPTVJhbmdlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAgLTMxMSw3ICszMTEsNyBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGFJblJUCiAKIFN0cmluZyBFZGl0
b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KCkKIHsKLSAg
ICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpOworICAgIFN0cmluZyB0
ZXh0ID0gc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CiAgICAgdGV4dC5yZXBsYWNlKG5v
QnJlYWtTcGFjZSwgJyAnKTsKICAgICByZXR1cm4gdGV4dDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0JKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsOSAr
MjcsOSBAQAogI2ltcG9ydCAiRWRpdG9yLmgiCiAKICNpbXBvcnQgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCi0jaW1wb3J0ICJDbGlwYm9hcmQuaCIKICNpbXBvcnQgIkNvbG9yTWFjLmgiCiAjaW1w
b3J0ICJET01SYW5nZUludGVybmFsLmgiCisjaW1wb3J0ICJEYXRhVHJhbnNmZXIuaCIKICNpbXBv
cnQgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbXBvcnQgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW1w
b3J0ICJFZGl0b3IuaCIKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIEVkaXRvcjo6dGFrZUZpbmRT
dHJpbmdGcm9tU2VsZWN0aW9uCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgdHlwZXMu
YXBwZW5kKFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpKTsKICAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQp
OwotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3Ry
aW5nRm9yVHlwZShtX2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0
ZWRUZXh0Rm9yQ2xpcGJvYXJkKCkpLCBOU1N0cmluZ1Bib2FyZFR5cGUsIE5TRmluZFBib2FyZCk7
CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJp
bmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzZWxlY3Rl
ZFRleHRGb3JEYXRhVHJhbnNmZXIoKSksIE5TU3RyaW5nUGJvYXJkVHlwZSwgTlNGaW5kUGJvYXJk
KTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKQpAQCAtMjY1LDggKzI2NSw4IEBAIHZvaWQgRWRpdG9yOjpy
ZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQKICAgICAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQ
YXN0ZWJvYXJkKHBhc3RlYm9hcmQpOwogfQogCi0vLyBGSVhNRTogTWFrZXMgbm8gc2Vuc2UgdGhh
dCBzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgYWx3YXlzIGluY2x1ZGVzIGFsdCB0ZXh0LCBidXQg
c3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCBkb2VzIG5vdC4KLS8vIFRoaXMgd2FzIGxlZnQg
aW4gYSBiYWQgc3RhdGUgd2hlbiBzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgd2FzIGFkZGVkLiBO
ZWVkIHRvIGxvb2sgb3ZlciBjbGllbnRzIGFuZCBmaXggdGhpcy4KKy8vIEZJWE1FOiBNYWtlcyBu
byBzZW5zZSB0aGF0IHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciBhbHdheXMgaW5jbHVkZXMg
YWx0IHRleHQsIGJ1dCBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkIGRvZXMgbm90LgorLy8g
VGhpcyB3YXMgbGVmdCBpbiBhIGJhZCBzdGF0ZSB3aGVuIHNlbGVjdGVkVGV4dEZvckRhdGFUcmFu
c2ZlciB3YXMgYWRkZWQuIE5lZWQgdG8gbG9vayBvdmVyIGNsaWVudHMgYW5kIGZpeCB0aGlzLgog
U3RyaW5nIEVkaXRvcjo6c3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpCiB7CiAgICAgaWYg
KCFjYW5Db3B5KCkpCkBAIC0yODAsNyArMjgwLDcgQEAgU3RyaW5nIEVkaXRvcjo6c3RyaW5nU2Vs
ZWN0aW9uRm9yUGFzdGVibwogewogICAgIGlmICghY2FuQ29weSgpKQogICAgICAgICByZXR1cm4g
IiI7Ci0gICAgU3RyaW5nIHRleHQgPSBzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKTsKKyAgICBT
dHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpOwogICAgIHRleHQucmVw
bGFjZShub0JyZWFrU3BhY2UsICcgJyk7CiAgICAgcmV0dXJuIHRleHQ7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3MiwxMCAr
NTcyLDEwIEBAIHB1YmxpYzoKICAgICBFbXB0eURyYWdDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFs
IH5FbXB0eURyYWdDbGllbnQoKSB7fQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdE
ZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb24sIERyYWdEYXRhJikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFn
U291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCYpIG92ZXJyaWRlIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFj
dGlvbiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImKSBvdmVycmlkZSB7IH0KICAgICB2
aXJ0dWFsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhEcmFnRGF0YSYp
IG92ZXJyaWRlIHsgcmV0dXJuIERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmU7IH0KICAgICB2aXJ0
dWFsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJ
bnRQb2ludCYpIG92ZXJyaWRlIHsgcmV0dXJuIERyYWdTb3VyY2VBY3Rpb25Ob25lOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiwgY29u
c3QgSW50UG9pbnQmLCBDbGlwYm9hcmQmLCBGcmFtZSYsIGJvb2wpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKSBvdmVycmlkZSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0K
IH07CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NsaWVudC5oCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgCi1jbGFzcyBDbGlwYm9hcmQ7CitjbGFzcyBEYXRhVHJhbnNmZXI7CiBjbGFz
cyBEcmFnRGF0YTsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKQEAgLTQ0LDExICs0NCwx
MSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
KERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ0RhdGEmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQ
b2ludCYsIENsaXBib2FyZCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFn
U291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5z
ZmVyJikgPSAwOwogICAgIHZpcnR1YWwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tG
b3JEcmFnKERyYWdEYXRhJikgPSAwOwogICAgIHZpcnR1YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JiByb290Vmlld1BvaW50KSA9
IDA7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0
IEludFBvaW50JiBkcmFnSW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgQ2xp
cGJvYXJkJiwgRnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9y
aWdpbiwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJv
b2wgbGlua0RyYWcgPSBmYWxzZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmFnRW5kZWQoKSB7
IH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw4IEBACiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAi
Q2xpcGJvYXJkLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEcmFnQWN0aW9ucy5oIgpAQCAtMTg1LDExICsxODQsMTEgQEAgRHJhZ1Nlc3Npb24gRHJh
Z0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkKAogdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRl
ZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgaWYgKFJlZlB0cjxGcmFtZVZpZXc+IHYgPSBt
X3BhZ2UubWFpbkZyYW1lKCkudmlldygpKSB7Ci0gICAgICAgIENsaXBib2FyZEFjY2Vzc1BvbGlj
eSBwb2xpY3kgPSAoIW1fZG9jdW1lbnRVbmRlck1vdXNlIHx8IG1fZG9jdW1lbnRVbmRlck1vdXNl
LT5zZWN1cml0eU9yaWdpbigpLT5pc0xvY2FsKCkpID8gQ2xpcGJvYXJkUmVhZGFibGUgOiBDbGlw
Ym9hcmRUeXBlc1JlYWRhYmxlOwotICAgICAgICBSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQg
PSBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKHBvbGljeSwgZHJhZ0RhdGEpOwotICAg
ICAgICBjbGlwYm9hcmQtPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJj
ZU9wZXJhdGlvbk1hc2soKSk7Ci0gICAgICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgY2xpcGJv
YXJkLmdldCgpKTsKLSAgICAgICAgY2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJk
TnVtYik7ICAgIC8vIGludmFsaWRhdGUgY2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CisgICAg
ICAgIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3kgPSAoIW1fZG9jdW1lbnRVbmRlck1v
dXNlIHx8IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5zZWN1cml0eU9yaWdpbigpLT5pc0xvY2FsKCkp
ID8gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpSZWFkYWJsZSA6IERhdGFUcmFuc2ZlckFjY2Vz
c1BvbGljeTo6VHlwZXNSZWFkYWJsZTsKKyAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0
YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRy
YWdEYXRhKTsKKyAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0Rh
dGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOworICAgICAgICBtX3BhZ2UubWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChk
cmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0
QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7ICAgIC8vIGludmFs
aWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5CiAgICAgfQogICAgIG1vdXNlTW92
ZWRJbnRvRG9jdW1lbnQoMCk7CiAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2Up
CkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhE
cmFnRGF0CiAgICAgICAgIGJvb2wgcHJldmVudGVkRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICBp
ZiAobWFpbkZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQg
Y2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCi0gICAg
ICAgICAgICBSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQgPSBDbGlwYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKENsaXBib2FyZFJlYWRhYmxlLCBkcmFnRGF0YSk7Ci0gICAgICAgICAgICBj
bGlwYm9hcmQtPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2soKSk7Ci0gICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5l
dmVudEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0
YSksIGNsaXBib2FyZC5nZXQoKSk7Ci0gICAgICAgICAgICBjbGlwYm9hcmQtPnNldEFjY2Vzc1Bv
bGljeShDbGlwYm9hcmROdW1iKTsgLy8gSW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVyZSBmb3Igc2Vj
dXJpdHkKKyAgICAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciA9IERh
dGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5
OjpSZWFkYWJsZSwgZHJhZ0RhdGEpOworICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3Vy
Y2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOworICAg
ICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkucGVy
Zm9ybURyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIu
Z2V0KCkpOworICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRy
YW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVy
ZSBmb3Igc2VjdXJpdHkKICAgICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkg
ewogICAgICAgICAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSAwOwpAQCAtNTkyLDI2ICs1OTEs
MjYgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKERyYWdEYQogICAgIGlmICgh
dmlld1Byb3RlY3RvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5IHBvbGljeSA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5zZWN1cml0eU9yaWdpbigp
LT5pc0xvY2FsKCkgPyBDbGlwYm9hcmRSZWFkYWJsZSA6IENsaXBib2FyZFR5cGVzUmVhZGFibGU7
Ci0gICAgUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkID0gQ2xpcGJvYXJkOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKKyAgICBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3kgcG9saWN5ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnNlY3VyaXR5T3JpZ2luKCktPmlzTG9j
YWwoKSA/IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgOiBEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OlR5cGVzUmVhZGFibGU7CisgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0
YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRy
YWdEYXRhKTsKICAgICBEcmFnT3BlcmF0aW9uIHNyY09wTWFzayA9IGRyYWdEYXRhLmRyYWdnaW5n
U291cmNlT3BlcmF0aW9uTWFzaygpOwotICAgIGNsaXBib2FyZC0+c2V0U291cmNlT3BlcmF0aW9u
KHNyY09wTWFzayk7CisgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oc3JjT3BN
YXNrKTsKIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudCA9IGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpOwotICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
QW5kRHJvcChldmVudCwgY2xpcGJvYXJkLmdldCgpKSkgewotICAgICAgICBjbGlwYm9hcmQtPnNl
dEFjY2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsgICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQg
aGVyZSBmb3Igc2VjdXJpdHkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBk
YXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAgICAgICAgZGF0
YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1i
KTsgICAgLy8gaW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIG9wZXJhdGlvbiA9IGNsaXBib2FyZC0+ZGVz
dGluYXRpb25PcGVyYXRpb24oKTsKLSAgICBpZiAoY2xpcGJvYXJkLT5kcm9wRWZmZWN0SXNVbmlu
aXRpYWxpemVkKCkpCisgICAgb3BlcmF0aW9uID0gZGF0YVRyYW5zZmVyLT5kZXN0aW5hdGlvbk9w
ZXJhdGlvbigpOworICAgIGlmIChkYXRhVHJhbnNmZXItPmRyb3BFZmZlY3RJc1VuaW5pdGlhbGl6
ZWQoKSkKICAgICAgICAgb3BlcmF0aW9uID0gZGVmYXVsdE9wZXJhdGlvbkZvckRyYWcoc3JjT3BN
YXNrKTsKICAgICBlbHNlIGlmICghKHNyY09wTWFzayAmIG9wZXJhdGlvbikpIHsKICAgICAgICAg
Ly8gVGhlIGVsZW1lbnQgcGlja2VkIGFuIG9wZXJhdGlvbiB3aGljaCBpcyBub3Qgc3VwcG9ydGVk
IGJ5IHRoZSBzb3VyY2UKICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7CiAg
ICAgfQogCi0gICAgY2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAg
IC8vIGludmFsaWRhdGUgY2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CisgICAgZGF0YVRyYW5z
ZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgICAg
Ly8gaW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtNzMzLDExICs3MzIsMTEgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3Rh
cnREcmFnKEZyYW1lJiBzcgogICAgIEludFBvaW50IGRyYWdMb2MoMCwgMCk7CiAgICAgSW50UG9p
bnQgZHJhZ0ltYWdlT2Zmc2V0KDAsIDApOwogCi0gICAgQVNTRVJUKHN0YXRlLmNsaXBib2FyZCk7
CisgICAgQVNTRVJUKHN0YXRlLmRhdGFUcmFuc2Zlcik7CiAKLSAgICBDbGlwYm9hcmQmIGNsaXBi
b2FyZCA9ICpzdGF0ZS5jbGlwYm9hcmQ7CisgICAgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIg
PSAqc3RhdGUuZGF0YVRyYW5zZmVyOwogICAgIGlmIChzdGF0ZS50eXBlID09IERyYWdTb3VyY2VB
Y3Rpb25ESFRNTCkKLSAgICAgICAgZHJhZ0ltYWdlID0gY2xpcGJvYXJkLmNyZWF0ZURyYWdJbWFn
ZShkcmFnSW1hZ2VPZmZzZXQpOworICAgICAgICBkcmFnSW1hZ2UgPSBkYXRhVHJhbnNmZXIuY3Jl
YXRlRHJhZ0ltYWdlKGRyYWdJbWFnZU9mZnNldCk7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJh
Z1NvdXJjZUFjdGlvblNlbGVjdGlvbiB8fCAhaW1hZ2VVUkwuaXNFbXB0eSgpIHx8ICFsaW5rVVJM
LmlzRW1wdHkoKSkKICAgICAgICAgLy8gU2VsZWN0aW9uLCBpbWFnZSwgYW5kIGxpbmsgZHJhZ3Mg
cmVjZWl2ZSBhIGRlZmF1bHQgc2V0IG9mIGFsbG93ZWQgZHJhZyBvcGVyYXRpb25zIHRoYXQKICAg
ICAgICAgLy8gZm9sbG93cyBmcm9tOgpAQCAtNzU4LDcgKzc1Nyw3IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3IKIAogICAgIEltYWdlKiBpbWFnZSA9IGdldEltYWdl
KGVsZW1lbnQpOwogICAgIGlmIChzdGF0ZS50eXBlID09IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rp
b24pIHsKLSAgICAgICAgaWYgKCFjbGlwYm9hcmQucGFzdGVib2FyZCgpLmhhc0RhdGEoKSkgewor
ICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyBlbnRpcmUgYmxvY2sgaXMgYWxtb3N0IGlkZW50aWNhbCB0
byB0aGUgY29kZSBpbiBFZGl0b3I6OmNvcHksIGFuZCB0aGUgY29kZSBzaG91bGQgYmUgc2hhcmVk
LgogCiAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3JjLnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CkBAIC03NjcsNTEgKzc2Niw1MSBAQCBib29sIERy
YWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICBzcmMuZWRpdG9y
KCkud2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNlbGVjdGlvblJhbmdlLmdldCgpKTsK
IAogICAgICAgICAgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChzcmMuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0gICAgICAgICAgICAgICAgY2xpcGJvYXJkLnBhc3Rl
Ym9hcmQoKS53cml0ZVBsYWluVGV4dChzcmMuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJv
YXJkKCksIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CisgICAgICAgICAgICAgICAg
ZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS53cml0ZVBsYWluVGV4dChzcmMuZWRpdG9yKCkuc2Vs
ZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCksIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFj
ZSk7CiAgICAgICAgICAgICBlbHNlIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
RUZMKQotICAgICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53cml0ZVNlbGVjdGlvblRvUGFzdGVi
b2FyZChjbGlwYm9hcmQucGFzdGVib2FyZCgpKTsKKyAgICAgICAgICAgICAgICBzcmMuZWRpdG9y
KCkud3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSk7
CiAjZWxzZQogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IGFsbCBvdGhlciBwbGF0
Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KLSAgICAgICAgICAgICAgICBjbGlw
Ym9hcmQucGFzdGVib2FyZCgpLndyaXRlU2VsZWN0aW9uKCpzZWxlY3Rpb25SYW5nZSwgc3JjLmVk
aXRvcigpLmNhblNtYXJ0Q29weU9yRGVsZXRlKCksIHNyYywgSW5jbHVkZUltYWdlQWx0VGV4dEZv
ckNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS53
cml0ZVNlbGVjdGlvbigqc2VsZWN0aW9uUmFuZ2UsIHNyYy5lZGl0b3IoKS5jYW5TbWFydENvcHlP
ckRlbGV0ZSgpLCBzcmMsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JEYXRhVHJhbnNmZXIpOwogI2Vu
ZGlmCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS5kaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgICAgICB9Ci0gICAgICAgIG1fY2xpZW50LndpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uU2VsZWN0aW9uLCBkcmFnT3Jp
Z2luLCBjbGlwYm9hcmQpOworICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VB
Y3Rpb24oRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbiwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVy
KTsKICAgICAgICAgaWYgKCFkcmFnSW1hZ2UpIHsKICAgICAgICAgICAgIGRyYWdJbWFnZSA9IGRp
c3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oc3Jj
KSwgRHJhZ0ltYWdlQWxwaGEpOwogICAgICAgICAgICAgZHJhZ0xvYyA9IGRyYWdMb2NGb3JTZWxl
Y3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdPZmZzZXQgPSBJbnRQb2ludChkcmFn
T3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2luLnkoKSAtIGRyYWdMb2MueSgpKTsK
ICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFn
T3JpZ2luLCBjbGlwYm9hcmQsIHNyYywgZmFsc2UpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOwog
ICAgIH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlz
TnVsbCgpICYmIChtX2RyYWdTb3VyY2VBY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uSW1hZ2UpKSB7
CiAgICAgICAgIC8vIFdlIHNob3VsZG4ndCBiZSBzdGFydGluZyBhIGRyYWcgZm9yIGFuIGltYWdl
IHRoYXQgY2FuJ3QgcHJvdmlkZSBhbiBleHRlbnNpb24uCiAgICAgICAgIC8vIFRoaXMgaXMgYW4g
ZWFybHkgZGV0ZWN0aW9uIGZvciBwcm9ibGVtcyBlbmNvdW50ZXJlZCBsYXRlciB1cG9uIGRyb3Au
CiAgICAgICAgIEFTU0VSVCghaW1hZ2UtPmZpbGVuYW1lRXh0ZW5zaW9uKCkuaXNFbXB0eSgpKTsK
LSAgICAgICAgaWYgKCFjbGlwYm9hcmQucGFzdGVib2FyZCgpLmhhc0RhdGEoKSkgeworICAgICAg
ICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsKICAgICAgICAgICAgIGlmIChlbGVtZW50
LmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCkpCiAgICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dChlbGVtZW50KTsKLSAgICAgICAgICAgIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjbGlwYm9h
cmQsIGVsZW1lbnQsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxpbmtVUkwgOiBpbWFnZVVSTCwgaGl0
VGVzdFJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOworICAgICAgICAgICAgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKGRhdGFUcmFuc2ZlciwgZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0eSgpID8g
bGlua1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CiAg
ICAgICAgIH0KIAotICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24o
RHJhZ1NvdXJjZUFjdGlvbkltYWdlLCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQpOworICAgICAgICBt
X2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbkltYWdl
LCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmICghZHJhZ0ltYWdlKSB7
CiAgICAgICAgICAgICBJbnRSZWN0IGltYWdlUmVjdCA9IGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0
KCk7CiAgICAgICAgICAgICBpbWFnZVJlY3Quc2V0TG9jYXRpb24obV9wYWdlLm1haW5GcmFtZSgp
LnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKHNyYy52aWV3KCktPmNvbnRlbnRzVG9Sb290Vmll
dyhpbWFnZVJlY3QubG9jYXRpb24oKSkpKTsKLSAgICAgICAgICAgIGRvSW1hZ2VEcmFnKGVsZW1l
bnQsIGRyYWdPcmlnaW4sIGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0KCksIGNsaXBib2FyZCwgc3Jj
LCBtX2RyYWdPZmZzZXQpOworICAgICAgICAgICAgZG9JbWFnZURyYWcoZWxlbWVudCwgZHJhZ09y
aWdpbiwgaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKSwgZGF0YVRyYW5zZmVyLCBzcmMsIG1fZHJh
Z09mZnNldCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBESFRNTCBkZWZpbmVk
IGRyYWcgaW1hZ2UKLSAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2Ms
IGRyYWdPcmlnaW4sIGNsaXBib2FyZCwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBkb1N5c3Rl
bURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywg
ZmFsc2UpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghbGlua1VSTC5pc0VtcHR5KCkgJiYg
KG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25MaW5rKSkgewotICAgICAgICBp
ZiAoIWNsaXBib2FyZC5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKQotICAgICAgICAgICAgLy8gU2lt
cGxpZnkgd2hpdGVzcGFjZSBzbyB0aGUgdGl0bGUgcHV0IG9uIHRoZSBjbGlwYm9hcmQgcmVzZW1i
bGVzIHdoYXQgdGhlIHVzZXIgc2VlcworICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJv
YXJkKCkuaGFzRGF0YSgpKQorICAgICAgICAgICAgLy8gU2ltcGxpZnkgd2hpdGVzcGFjZSBzbyB0
aGUgdGl0bGUgcHV0IG9uIHRoZSBkYXRhVHJhbnNmZXIgcmVzZW1ibGVzIHdoYXQgdGhlIHVzZXIg
c2VlcwogICAgICAgICAgICAgLy8gb24gdGhlIHdlYiBwYWdlLiBUaGlzIGluY2x1ZGVzIHJlcGxh
Y2luZyBuZXdsaW5lcyB3aXRoIHNwYWNlcy4KLSAgICAgICAgICAgIHNyYy5lZGl0b3IoKS5jb3B5
VVJMKGxpbmtVUkwsIGhpdFRlc3RSZXN1bHQudGV4dENvbnRlbnQoKS5zaW1wbGlmeVdoaXRlU3Bh
Y2UoKSwgY2xpcGJvYXJkLnBhc3RlYm9hcmQoKSk7CisgICAgICAgICAgICBzcmMuZWRpdG9yKCku
Y29weVVSTChsaW5rVVJMLCBoaXRUZXN0UmVzdWx0LnRleHRDb250ZW50KCkuc2ltcGxpZnlXaGl0
ZVNwYWNlKCksIGRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkpOwogCiAgICAgICAgIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNvdXJjZVNlbGVjdGlvbiA9IHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKTsKICAgICAgICAgaWYgKHNvdXJjZVNlbGVjdGlvbi5pc0NhcmV0KCkgJiYgc291cmNlU2Vs
ZWN0aW9uLmlzQ29udGVudEVkaXRhYmxlKCkpIHsKQEAgLTgyNCw3ICs4MjMsNyBAQCBib29sIERy
YWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICAgICAgc3JjLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29u
dGVudHNPZk5vZGUobm9kZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9jbGllbnQud2lsbFBl
cmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25MaW5rLCBkcmFnT3JpZ2luLCBj
bGlwYm9hcmQpOworICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24o
RHJhZ1NvdXJjZUFjdGlvbkxpbmssIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlcik7CiAgICAgICAg
IGlmICghZHJhZ0ltYWdlKSB7CiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1h
Z2VGb3JMaW5rKGxpbmtVUkwsIGhpdFRlc3RSZXN1bHQudGV4dENvbnRlbnQoKSwgc3JjLnNldHRp
bmdzKCkuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgICAgICAgICBJbnRTaXplIHNpemUgPSBk
cmFnSW1hZ2VTaXplKGRyYWdJbWFnZSk7CkBAIC04MzMsMTIgKzgzMiwxMiBAQCBib29sIERyYWdD
b250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICAvLyBMYXRlciBjb2Rl
IGV4cGVjdHMgdGhlIGRyYWcgaW1hZ2UgdG8gYmUgc2NhbGVkIGJ5IGRldmljZSdzIHNjYWxlIGZh
Y3Rvci4KICAgICAgICAgICAgIGRyYWdJbWFnZSA9IHNjYWxlRHJhZ0ltYWdlKGRyYWdJbWFnZSwg
RmxvYXRTaXplKG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSkpOwogICAgICAgICB9Ci0gICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRy
YWdMb2MsIG1vdXNlRHJhZ2dlZFBvaW50LCBjbGlwYm9hcmQsIHNyYywgdHJ1ZSk7CisgICAgICAg
IGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIG1vdXNlRHJhZ2dlZFBvaW50LCBkYXRh
VHJhbnNmZXIsIHNyYywgdHJ1ZSk7CiAgICAgfSBlbHNlIGlmIChzdGF0ZS50eXBlID09IERyYWdT
b3VyY2VBY3Rpb25ESFRNTCkgewogICAgICAgICBpZiAoZHJhZ0ltYWdlKSB7CiAgICAgICAgICAg
ICBBU1NFUlQobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKTsKLSAg
ICAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNl
QWN0aW9uREhUTUwsIGRyYWdPcmlnaW4sIGNsaXBib2FyZCk7Ci0gICAgICAgICAgICBkb1N5c3Rl
bURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQsIHNyYywgZmFs
c2UpOworICAgICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERy
YWdTb3VyY2VBY3Rpb25ESFRNTCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAg
ICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFu
c2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgc3RhcnRlZERy
YWcgPSBmYWxzZTsKICAgICB9IGVsc2UgewpAQCAtODUyLDcgKzg1MSw3IEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3IKICAgICByZXR1cm4gc3RhcnRlZERyYWc7CiB9
CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBjb25zdCBJbnRSZWN0JiBsYXlvdXRSZWN0LCBDbGlw
Ym9hcmQmIGNsaXBib2FyZCwgRnJhbWUmIGZyYW1lLCBJbnRQb2ludCYgZHJhZ0ltYWdlT2Zmc2V0
KQordm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IEludFJlY3QmIGxheW91dFJlY3QsIERhdGFU
cmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIEludFBvaW50JiBkcmFnSW1hZ2VP
ZmZzZXQpCiB7CiAgICAgSW50UG9pbnQgbW91c2VEb3duUG9pbnQgPSBkcmFnT3JpZ2luOwogICAg
IERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UgPSBudWxscHRyOwpAQCAtODk1LDEyICs4OTQsMTIgQEAg
dm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudAogICAgIH0KIAogICAgIGRy
YWdJbWFnZU9mZnNldCA9IG1vdXNlRG93blBvaW50ICsgc2NhbGVkT3JpZ2luOwotICAgIGRvU3lz
dGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdJbWFnZU9mZnNldCwgZHJhZ09yaWdpbiwgY2xpcGJvYXJk
LCBmcmFtZSwgZmFsc2UpOworICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdJbWFnZU9m
ZnNldCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyLCBmcmFtZSwgZmFsc2UpOwogCiAgICAgZGVs
ZXRlRHJhZ0ltYWdlKGRyYWdJbWFnZSk7CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lz
dGVtRHJhZyhEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3MsIENsaXBib2FyZCYgY2xpcGJvYXJkLCBGcmFtZSYgZnJhbWUs
IGJvb2wgZm9yTGluaykKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJhZyhEcmFnSW1h
Z2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25zdCBJbnRQb2ludCYgZXZl
bnRQb3MsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIGJvb2wgZm9y
TGluaykKIHsKICAgICBtX2RpZEluaXRpYXRlRHJhZyA9IHRydWU7CiAgICAgbV9kcmFnSW5pdGlh
dG9yID0gZnJhbWUuZG9jdW1lbnQoKTsKQEAgLTkwOCw3ICs5MDcsNyBAQCB2b2lkIERyYWdDb250
cm9sbGVyOjpkb1N5c3RlbURyYWcoRHJhZ0ltCiAgICAgUmVmPE1haW5GcmFtZT4gZnJhbWVQcm90
ZWN0b3IobV9wYWdlLm1haW5GcmFtZSgpKTsKICAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3UHJv
dGVjdG9yID0gZnJhbWVQcm90ZWN0b3ItPnZpZXcoKTsKICAgICBtX2NsaWVudC5zdGFydERyYWco
aW1hZ2UsIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNv
bnRlbnRzVG9Sb290VmlldyhkcmFnTG9jKSksCi0gICAgICAgIHZpZXdQcm90ZWN0b3ItPnJvb3RW
aWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykp
LCBjbGlwYm9hcmQsIGZyYW1lUHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKKyAgICAgICAgdmll
d1Byb3RlY3Rvci0+cm9vdFZpZXdUb0NvbnRlbnRzKGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1Jv
b3RWaWV3KGV2ZW50UG9zKSksIGRhdGFUcmFuc2ZlciwgZnJhbWVQcm90ZWN0b3IuZ2V0KCksIGZv
ckxpbmspOwogICAgIC8vIERyYWdDbGllbnQ6OnN0YXJ0RHJhZyBjYW4gY2F1c2Ugb3VyIFBhZ2Ug
dG8gZGlzcGVhciwgZGVhbGxvY2F0aW5nIHx0aGlzfC4KICAgICBpZiAoIWZyYW1lUHJvdGVjdG9y
LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDbGlwYm9hcmQ7CisgICAgY2xhc3MgRGF0YVRyYW5zZmVy
OwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIERyYWdDbGllbnQ7CiAgICAgY2xhc3Mg
RHJhZ0RhdGE7CkBAIC0xMDYsMTAgKzEwNiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCBtb3VzZU1vdmVkSW50b0RvY3VtZW50KERvY3VtZW50Kik7CiAKLSAgICAgICAg
dm9pZCBkb0ltYWdlRHJhZyhFbGVtZW50JiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0
JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBJbnRQb2ludCYpOwotICAgICAgICB2b2lkIGRvU3lzdGVt
RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBDbGlw
Ym9hcmQmLCBGcmFtZSYsIGJvb2wgZm9yTGluayk7CisgICAgICAgIHZvaWQgZG9JbWFnZURyYWco
RWxlbWVudCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIERhdGFUcmFuc2ZlciYs
IEZyYW1lJiwgSW50UG9pbnQmKTsKKyAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdl
UmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJh
bWUmLCBib29sIGZvckxpbmspOwogICAgICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWco
KTsKLSAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkJiwgRWxl
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAgICAgICB2b2lkIGRl
Y2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImLCBFbGVtZW50JiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAKICAgICAgICAgUGFnZSYgbV9wYWdlOwogICAgICAg
ICBEcmFnQ2xpZW50JiBtX2NsaWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ1N0
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU3RhdGUuaAkocmV2
aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU3RhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRlZiBEcmFnU3RhdGVfaAogI2RlZmluZSBE
cmFnU3RhdGVfaAogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVyLmgiCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAK
QEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IERyYWdTdGF0ZSB7CiAgICAgUmVmUHRyPEVsZW1lbnQ+
IHNvdXJjZTsgLy8gRWxlbWVudCB0aGF0IG1heSBiZSBhIGRyYWcgc291cmNlLCBmb3IgdGhlIGN1
cnJlbnQgbW91c2UgZ2VzdHVyZS4KICAgICBib29sIHNob3VsZERpc3BhdGNoRXZlbnRzOwogICAg
IERyYWdTb3VyY2VBY3Rpb24gdHlwZTsKLSAgICBSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQ7
IC8vIFVzZWQgb24gb25seSB0aGUgc291cmNlIHNpZGUgb2YgZHJhZ2dpbmcuCisgICAgUmVmUHRy
PERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyOyAvLyBVc2VkIG9uIG9ubHkgdGhlIHNvdXJjZSBz
aWRlIG9mIGRyYWdnaW5nLgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEyLDcg
KzIwMTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlUGFzdGVHbG9iYWxTZWxlCiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1ib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFn
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYWdUYXJnZXQs
IGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIENsaXBib2FyZCogY2xpcGJvYXJkKQor
Ym9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBFbGVtZW50JiBkcmFnVGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKIHsKICAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBtX2ZyYW1lLnZpZXcoKTsKIApAQCAtMjAyOCw3ICsyMDI4LDcgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbgogICAgICAgICBldmVudC5tb3ZlbWVudERlbHRh
KCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLAogI2VuZGlmCiAgICAgICAgIGV2ZW50
LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFL
ZXkoKSwKLSAgICAgICAgMCwgMCwgY2xpcGJvYXJkKTsKKyAgICAgICAgMCwgMCwgZGF0YVRyYW5z
ZmVyKTsKIAogICAgIGRyYWdUYXJnZXQuZGlzcGF0Y2hFdmVudChtZS5nZXQoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAgICAgcmV0dXJuIG1lLT5kZWZhdWx0UHJldmVudGVkKCk7CkBAIC0yMDcyLDkg
KzIwNzIsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnZlcnREcmFnT3BlcmF0aW9uVG9Ecm9wCiAgICAg
fQogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzRmlsZU9mVHlwZShDbGlwYm9hcmQmIGNsaXBi
b2FyZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGlubGluZSBib29sIGhhc0ZpbGVPZlR5
cGUoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAg
ICBSZWZQdHI8RmlsZUxpc3Q+IGZpbGVMaXN0ID0gY2xpcGJvYXJkLmZpbGVzKCk7CisgICAgUmVm
UHRyPEZpbGVMaXN0PiBmaWxlTGlzdCA9IGRhdGFUcmFuc2Zlci5maWxlcygpOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBmaWxlTGlzdC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmlsZUxpc3QtPml0ZW0oaSktPnR5cGUoKSwgdHlwZSkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIwODIsMjMgKzIwODIsMjMgQEAgc3RhdGljIGlu
bGluZSBib29sIGhhc0ZpbGVPZlR5cGUoQ2xpcGJvYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
c3RhdGljIGlubGluZSBib29sIGhhc1N0cmluZ09mVHlwZShDbGlwYm9hcmQmIGNsaXBib2FyZCwg
Y29uc3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGlubGluZSBib29sIGhhc1N0cmluZ09mVHlwZShE
YXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIHJl
dHVybiAhdHlwZS5pc051bGwoKSAmJiBjbGlwYm9hcmQudHlwZXMoKS5jb250YWlucyh0eXBlKTsK
KyAgICByZXR1cm4gIXR5cGUuaXNOdWxsKCkgJiYgZGF0YVRyYW5zZmVyLnR5cGVzKCkuY29udGFp
bnModHlwZSk7CiB9CiAKLXN0YXRpYyBib29sIGhhc0Ryb3Bab25lVHlwZShDbGlwYm9hcmQmIGNs
aXBib2FyZCwgY29uc3QgU3RyaW5nJiBrZXl3b3JkKQorc3RhdGljIGJvb2wgaGFzRHJvcFpvbmVU
eXBlKERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBjb25zdCBTdHJpbmcmIGtleXdvcmQpCiB7
CiAgICAgaWYgKGtleXdvcmQuc3RhcnRzV2l0aCgiZmlsZToiKSkKLSAgICAgICAgcmV0dXJuIGhh
c0ZpbGVPZlR5cGUoY2xpcGJvYXJkLCBrZXl3b3JkLnN1YnN0cmluZyg1KSk7CisgICAgICAgIHJl
dHVybiBoYXNGaWxlT2ZUeXBlKGRhdGFUcmFuc2Zlciwga2V5d29yZC5zdWJzdHJpbmcoNSkpOwog
CiAgICAgaWYgKGtleXdvcmQuc3RhcnRzV2l0aCgic3RyaW5nOiIpKQotICAgICAgICByZXR1cm4g
aGFzU3RyaW5nT2ZUeXBlKGNsaXBib2FyZCwga2V5d29yZC5zdWJzdHJpbmcoNykpOworICAgICAg
ICByZXR1cm4gaGFzU3RyaW5nT2ZUeXBlKGRhdGFUcmFuc2Zlciwga2V5d29yZC5zdWJzdHJpbmco
NykpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUo
Tm9kZSogdGFyZ2V0LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKK3N0YXRpYyBib29sIGZpbmREcm9w
Wm9uZShOb2RlKiB0YXJnZXQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogewogICAgIEVs
ZW1lbnQqIGVsZW1lbnQgPSB0YXJnZXQtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudCh0YXJn
ZXQpIDogdGFyZ2V0LT5wYXJlbnRFbGVtZW50KCk7CiAgICAgZm9yICg7IGVsZW1lbnQ7IGVsZW1l
bnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkpIHsKQEAgLTIxMjEsMjAgKzIxMjEsMjAgQEAg
c3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgQwogICAgICAgICAgICAgICAg
IGlmIChkcmFnT3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Ob25lKQogICAgICAgICAgICAgICAg
ICAgICBkcmFnT3BlcmF0aW9uID0gb3A7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICBtYXRjaGVkID0gbWF0Y2hlZCB8fCBoYXNEcm9wWm9uZVR5cGUoKmNsaXBib2FyZCwga2V5
d29yZHNbaV0uc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIG1hdGNoZWQgPSBtYXRjaGVkIHx8
IGhhc0Ryb3Bab25lVHlwZSgqZGF0YVRyYW5zZmVyLCBrZXl3b3Jkc1tpXS5zdHJpbmcoKSk7CiAK
ICAgICAgICAgICAgIGlmIChtYXRjaGVkICYmIGRyYWdPcGVyYXRpb24gIT0gRHJhZ09wZXJhdGlv
bk5vbmUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1h
dGNoZWQpIHsKLSAgICAgICAgICAgIGNsaXBib2FyZC0+c2V0RHJvcEVmZmVjdChjb252ZXJ0RHJh
Z09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRpb24oZHJhZ09wZXJhdGlvbikpOworICAgICAgICAg
ICAgZGF0YVRyYW5zZmVyLT5zZXREcm9wRWZmZWN0KGNvbnZlcnREcmFnT3BlcmF0aW9uVG9Ecm9w
Wm9uZU9wZXJhdGlvbihkcmFnT3BlcmF0aW9uKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCi1ib29sIEV2ZW50
SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQpCitib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0Fu
ZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRh
VHJhbnNmZXIpCiB7CiAgICAgYm9vbCBhY2NlcHQgPSBmYWxzZTsKIApAQCAtMjE2NCwyMyArMjE2
NCwyMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uCiAgICAgICAg
IEZyYW1lKiB0YXJnZXRGcmFtZTsKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobmV3VGFyZ2V0
LmdldCgpLCB0YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKLSAg
ICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRl
RHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0g
dGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRh
VHJhbnNmZXIpOwogICAgICAgICB9IGVsc2UgaWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAg
Ly8gQXMgcGVyIHNlY3Rpb24gNy45LjQgb2YgdGhlIEhUTUwgNSBzcGVjLiwgd2UgbXVzdCBhbHdh
eXMgZmlyZSBhIGRyYWcgZXZlbnQgYmVmb3JlIGZpcmluZyBhIGRyYWdlbnRlciwgZHJhZ2xlYXZl
LCBvciBkcmFnb3ZlciBldmVudC4KICAgICAgICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2Ug
JiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpIHsKICAgICAgICAgICAgICAgICAv
LyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQg
YmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERy
YWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJh
Z2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAgICAg
YWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50LCAq
bmV3VGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0
KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCks
IGNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1Rh
cmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0YXJn
ZXRJc0ZyYW1lKG1fZHJhZ1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAgICAgICAgICAg
ICBpZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gdGFyZ2V0RnJhbWUt
PmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAg
ICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVE
cmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNlIGlmIChtX2Ry
YWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJh
Z2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAg
ICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFn
VGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKIAogICAgICAgICBpZiAobmV3VGFyZ2V0KSB7
CiAgICAgICAgICAgICAvLyBXZSBkbyBub3QgZXhwbGljaXRseSBjYWxsIGRpc3BhdGNoRHJhZ0V2
ZW50IGhlcmUgYmVjYXVzZSBpdCBjb3VsZCB1bHRpbWF0ZWx5IHJlc3VsdCBpbiB0aGUgYXBwZWFy
YW5jZSB0aGF0CkBAIC0yMTkxLDE2ICsyMTkxLDE2IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRh
dGVEcmFnQW5kRHJvcChjb24KICAgICAgICAgRnJhbWUqIHRhcmdldEZyYW1lOwogICAgICAgICBp
ZiAodGFyZ2V0SXNGcmFtZShuZXdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAg
ICAgICAgaWYgKHRhcmdldEZyYW1lKQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZy
YW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgY2xpcGJvYXJkKTsK
KyAgICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBk
YXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAo
bmV3VGFyZ2V0KSB7CiAgICAgICAgICAgICAvLyBOb3RlLCB3aGVuIGRlYWxpbmcgd2l0aCBzdWIt
ZnJhbWVzLCB3ZSBtYXkgbmVlZCB0byBmaXJlIG9ubHkgYSBkcmFnb3ZlciBldmVudCBhcyBhIGRy
YWcgZXZlbnQgbWF5IGhhdmUgYmVlbiBmaXJlZCBlYXJsaWVyLgogICAgICAgICAgICAgaWYgKCFt
X3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCAmJiBkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJh
Z1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpIHsKICAgICAgICAgICAgICAgICAvLyBmb3Ig
bm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZp
b3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNF
dmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJF
dmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBhY2NlcHQg
PSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1Rhcmdl
dCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAg
ICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCBjbGlwYm9h
cmQpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0
KCksIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJF
dmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwOCwyOSArMjIwOCwyOSBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uCiAgICAgcmV0dXJuIGFjY2Vw
dDsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQsIENsaXBib2FyZCogY2xpcGJvYXJkKQordm9pZCBFdmVudEhh
bmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogewogICAgIEZyYW1lKiB0YXJnZXRGcmFtZTsK
ICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkg
ewogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICB0YXJnZXRGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAg
ICAgICB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoZXZlbnQs
IGRhdGFUcmFuc2Zlcik7CiAgICAgfSBlbHNlIGlmIChtX2RyYWdUYXJnZXQpIHsKICAgICAgICAg
aWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50
cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZl
bnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWds
ZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAgICAgZGlz
cGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0
LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKIH0K
IAotYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmIGV2ZW50LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0
YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgRnJhbWUqIHRhcmdldEZyYW1lOwogICAg
IGJvb2wgcHJldmVudGVkRGVmYXVsdCA9IGZhbHNlOwogICAgIGlmICh0YXJnZXRJc0ZyYW1lKG1f
ZHJhZ1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAgICAgICAgIGlmICh0YXJnZXRGcmFt
ZSkKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAgICAgICAg
cHJldmVudGVkRGVmYXVsdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS5wZXJmb3JtRHJh
Z0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgfSBlbHNlIGlmIChtX2RyYWdUYXJn
ZXQpCi0gICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgY2xpcGJvYXJkKTsKKyAgICAg
ICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcm9w
RXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIGNsZWFyRHJh
Z1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0zMTY1LDEyICsz
MTY1LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGUKICAgICBy
ZXR1cm4gYWJzKGRlbHRhLndpZHRoKCkpID49IHRocmVzaG9sZCB8fCBhYnMoZGVsdGEuaGVpZ2h0
KCkpID49IHRocmVzaG9sZDsKIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpmcmVlQ2xpcGJv
YXJkKCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmcmVlRGF0YVRyYW5zZmVyKCkKIHsKLSAgICBpZiAo
IWRyYWdTdGF0ZSgpLmNsaXBib2FyZCkKKyAgICBpZiAoIWRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zl
cikKICAgICAgICAgcmV0dXJuOwotICAgIGRyYWdTdGF0ZSgpLmNsaXBib2FyZC0+c2V0QWNjZXNz
UG9saWN5KENsaXBib2FyZE51bWIpOwotICAgIGRyYWdTdGF0ZSgpLmNsaXBib2FyZCA9IDA7Cisg
ICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5OjpOdW1iKTsKKyAgICBkcmFnU3RhdGUoKS5kYXRhVHJhbnNmZXIgPSAwOwog
fQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZHJhZ1NvdXJjZUVuZGVkQXQoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCwgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCkBAIC0zMTgwLDExICsz
MTgwLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChjb24KICAgICBw
cmVwYXJlTW91c2VFdmVudChyZXF1ZXN0LCBldmVudCk7CiAKICAgICBpZiAoZHJhZ1N0YXRlKCku
c291cmNlICYmIGRyYWdTdGF0ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzKSB7Ci0gICAgICAgIGRy
YWdTdGF0ZSgpLmNsaXBib2FyZC0+c2V0RGVzdGluYXRpb25PcGVyYXRpb24ob3BlcmF0aW9uKTsK
KyAgICAgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXREZXN0aW5hdGlvbk9wZXJhdGlv
bihvcGVyYXRpb24pOwogICAgICAgICAvLyBGb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQg
aGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vIGRlZmF1
bHQgYmVoYXZpb3IuCiAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5k
cmFnZW5kRXZlbnQsIGV2ZW50KTsKICAgICB9Ci0gICAgZnJlZUNsaXBib2FyZCgpOworICAgIGZy
ZWVEYXRhVHJhbnNmZXIoKTsKICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAwOwogICAgIC8vIElu
IGNhc2UgdGhlIGRyYWcgd2FzIGVuZGVkIGR1ZSB0byBhbiBlc2NhcGUga2V5IHByZXNzIHdlIG5l
ZWQgdG8gZW5zdXJlCiAgICAgLy8gdGhhdCBjb25zZWN1dGl2ZSBtb3VzZW1vdmUgZXZlbnRzIGRv
bid0IHJlaW5pdGlhdGUgdGhlIGRyYWcgYW5kIGRyb3AuCkBAIC0zMjAxLDcgKzMyMDEsNyBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFCiAvLyBSZXR1cm4gdmFsdWUg
aW5kaWNhdGVzIGlmIHdlIHNob3VsZCBjb250aW51ZSAiZGVmYXVsdCBwcm9jZXNzaW5nIiwgaS5l
Liwgd2hldGhlciBldmVudCBoYW5kbGVyIGNhbmNlbGVkLgogYm9vbCBFdmVudEhhbmRsZXI6OmRp
c3BhdGNoRHJhZ1NyY0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogewotICAgIHJldHVybiAhZGlzcGF0Y2hEcmFnRXZl
bnQoZXZlbnRUeXBlLCAqZHJhZ1N0YXRlKCkuc291cmNlLCBldmVudCwgZHJhZ1N0YXRlKCkuY2xp
cGJvYXJkLmdldCgpKTsKKyAgICByZXR1cm4gIWRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50VHlwZSwg
KmRyYWdTdGF0ZSgpLnNvdXJjZSwgZXZlbnQsIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci5nZXQo
KSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBFeGFjdGx5T25lQml0U2V0KERyYWdTb3VyY2VBY3Rp
b24gbikKQEAgLTMyOTAsMTAgKzMyOTAsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURy
YWcoY29uc3QgTW91cwogICAgIAogICAgIERyYWdPcGVyYXRpb24gc3JjT3AgPSBEcmFnT3BlcmF0
aW9uTm9uZTsgICAgICAKICAgICAKLSAgICAvLyBUaGlzIGRvZXMgd29yayBvbmx5IGlmIHdlIG1p
c3NlZCBhIGRyYWdFbmQuIERvIGl0IGFueXdheSwganVzdCB0byBtYWtlIHN1cmUgdGhlIG9sZCBj
bGlwYm9hcmQgZ2V0cyBudW1iZWQuCi0gICAgZnJlZUNsaXBib2FyZCgpOworICAgIC8vIFRoaXMg
ZG9lcyB3b3JrIG9ubHkgaWYgd2UgbWlzc2VkIGEgZHJhZ0VuZC4gRG8gaXQgYW55d2F5LCBqdXN0
IHRvIG1ha2Ugc3VyZSB0aGUgb2xkIGRhdGFUcmFuc2ZlciBnZXRzIG51bWJlZC4KKyAgICBmcmVl
RGF0YVRyYW5zZmVyKCk7CiAKLSAgICBkcmFnU3RhdGUoKS5jbGlwYm9hcmQgPSBjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCgpOworICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2ZlciA9IGNyZWF0ZURy
YWdnaW5nRGF0YVRyYW5zZmVyKCk7CiAgICAgCiAgICAgaWYgKGRyYWdTdGF0ZSgpLnNob3VsZERp
c3BhdGNoRXZlbnRzKSB7CiAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgaXMgYSBET00g
YmFzZWQgZHJhZy4gSWYgaXQgaXMsIGdldCB0aGUgRE9NIHNwZWNpZmllZCBkcmFnIGltYWdlIGFu
ZCBvZmZzZXQuCkBAIC0zMzAyLDcgKzMzMDIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
RHJhZyhjb25zdCBNb3VzCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB3
b3JrIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMuCiAgICAgICAgICAgICAgICAgRmxvYXRQb2lu
dCBhYnNQb3MgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKCk7CiAgICAgICAgICAgICAgICAg
SW50U2l6ZSBkZWx0YSA9IG1fbW91c2VEb3duUG9zIC0gcm91bmRlZEludFBvaW50KGFic1Bvcyk7
Ci0gICAgICAgICAgICAgICAgZHJhZ1N0YXRlKCkuY2xpcGJvYXJkLT5zZXREcmFnSW1hZ2UoZHJh
Z1N0YXRlKCkuc291cmNlLmdldCgpLCBkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSk7Cisg
ICAgICAgICAgICAgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXREcmFnSW1hZ2UoZHJh
Z1N0YXRlKCkuc291cmNlLmdldCgpLCBkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFRoZSByZW5kZXJlciBoYXMg
ZGlzYXBwZWFyZWQsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgb25TdGFydERyYWcgaGFuZGxlciBo
YXMgaGlkZGVuCiAgICAgICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgaW4gc29tZSB3YXkuICBJ
biB0aGlzIGNhc2Ugd2UganVzdCBraWxsIHRoZSBkcmFnLgpAQCAtMzMxNCwxOCArMzMxNCwxOCBA
QCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzCiAgICAgICAgIG1fbW91
c2VEb3duTWF5U3RhcnREcmFnID0gZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRy
YWdzdGFydEV2ZW50LCBtX21vdXNlRG93bikKICAgICAgICAgICAgICYmICFtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZpZWxkKCk7CiAgICAgICAgIAotICAgICAg
ICAvLyBJbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGFnYWluc3QgYW55bW9yZSBwYXN0ZWJvYXJk
IHdyaXRpbmcgZm9yIHNlY3VyaXR5LiAgVGhlIGRyYWcKKyAgICAgICAgLy8gSW52YWxpZGF0ZSBk
YXRhVHJhbnNmZXIgaGVyZSBhZ2FpbnN0IGFueW1vcmUgcGFzdGVib2FyZCB3cml0aW5nIGZvciBz
ZWN1cml0eS4gIFRoZSBkcmFnCiAgICAgICAgIC8vIGltYWdlIGNhbiBzdGlsbCBiZSBjaGFuZ2Vk
IGFzIHdlIGRyYWcsIGJ1dCBub3QgdGhlIHBhc3RlYm9hcmQgZGF0YS4KLSAgICAgICAgZHJhZ1N0
YXRlKCkuY2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkSW1hZ2VXcml0YWJsZSk7
CisgICAgICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFU
cmFuc2ZlckFjY2Vzc1BvbGljeTo6SW1hZ2VXcml0YWJsZSk7CiAgICAgICAgIAogICAgICAgICBp
ZiAobV9tb3VzZURvd25NYXlTdGFydERyYWcpIHsKICAgICAgICAgICAgIC8vIEdhdGhlciB2YWx1
ZXMgZnJvbSBESFRNTCBlbGVtZW50LCBpZiBpdCBzZXQgYW55LgotICAgICAgICAgICAgc3JjT3Ag
PSBkcmFnU3RhdGUoKS5jbGlwYm9hcmQtPnNvdXJjZU9wZXJhdGlvbigpOworICAgICAgICAgICAg
c3JjT3AgPSBkcmFnU3RhdGUoKS5kYXRhVHJhbnNmZXItPnNvdXJjZU9wZXJhdGlvbigpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAvLyBZdWNrLCBhIGRyYWdnZWRJbWFnZTptb3ZlVG86IG1l
c3NhZ2UgY2FuIGJlIGZpcmVkIGFzIGEgcmVzdWx0IG9mIGtpY2tpbmcgb2ZmIHRoZQogICAgICAg
ICAgICAgLy8gZHJhZyB3aXRoIGRyYWdJbWFnZSEgQmVjYXVzZSBvZiB0aGF0IGR1bWIgcmVlbnRy
YW5jeSwgd2UgbWF5IHRoaW5rIHdlJ3ZlIG5vdAogICAgICAgICAgICAgLy8gc3RhcnRlZCB0aGUg
ZHJhZyB3aGVuIHRoYXQgaGFwcGVucy4gU28gd2UgaGF2ZSB0byBhc3N1bWUgaXQncyBzdGFydGVk
IGJlZm9yZSB3ZSBraWNrIGl0IG9mZi4KLSAgICAgICAgICAgIGRyYWdTdGF0ZSgpLmNsaXBib2Fy
ZC0+c2V0RHJhZ0hhc1N0YXJ0ZWQoKTsKKyAgICAgICAgICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFu
c2Zlci0+c2V0RHJhZ0hhc1N0YXJ0ZWQoKTsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTMz
NDgsNyArMzM0OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXMK
IGNsZWFudXBEcmFnOgogICAgIGlmICghbV9tb3VzZURvd25NYXlTdGFydERyYWcpIHsKICAgICAg
ICAgLy8gU29tZXRoaW5nIGZhaWxlZCB0byBzdGFydCB0aGUgZHJhZywgY2xlYW4gdXAuCi0gICAg
ICAgIGZyZWVDbGlwYm9hcmQoKTsKKyAgICAgICAgZnJlZURhdGFUcmFuc2ZlcigpOwogICAgICAg
ICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAwOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsOCArNjgsOCBAQCBjbGFzcyBO
U1ZpZXc7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dG9zY3JvbGxDb250cm9sbGVy
OwotY2xhc3MgQ2xpcGJvYXJkOwogY2xhc3MgQ29udGFpbmVyTm9kZTsKK2NsYXNzIERhdGFUcmFu
c2ZlcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50OwpAQCAt
MTU5LDkgKzE1OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRz
RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcG9uc2libGUg
Zm9yIHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKLSAgICBib29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIENsaXBib2FyZCopOwotICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiwgQ2xpcGJvYXJkKik7Ci0gICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERy
b3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgQ2xpcGJvYXJkKik7CisgICAgYm9vbCB1cGRh
dGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsK
KyAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERh
dGFUcmFuc2ZlciopOworICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0
ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQpOwogI2VuZGlm
CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRy
YWdTdGF0ZSgpOwogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKICAgICAK
LSAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25z
dDsKKyAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNm
ZXIoKSBjb25zdDsKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiAgICAgYm9vbCBl
dmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3Q7CkBAIC0z
NjUsOSArMzY1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZXQsIGJvb2wgY2FuY2VsYWJs
ZSwgaW50IGNsaWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJvb2wgc2V0VW5k
ZXIpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCBkaXNwYXRjaERyYWdFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgdGFyZ2V0LCBjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmLCBDbGlwYm9hcmQqKTsKKyAgICBib29sIGRpc3BhdGNoRHJhZ0V2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiB0YXJnZXQsIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogCi0gICAgdm9pZCBmcmVlQ2xp
cGJvYXJkKCk7CisgICAgdm9pZCBmcmVlRGF0YVRyYW5zZmVyKCk7CiAKICAgICBib29sIGhhbmRs
ZURyYWcoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENoZWNrRHJhZ0h5c3Rl
cmVzaXMpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRs
ZXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFu
ZGxlckVmbC5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvZWZs
L0V2ZW50SGFuZGxlckVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUg
IkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9s
bGVyLmgiCkBAIC05Nyw5ICs5Nyw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVu
dFRvV2lkZ2UKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPENsaXBi
b2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CitQYXNz
UmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFu
c2ZlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKTsKKyAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwog
fQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVy
R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJv
bGxlckd0ay5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3Rr
L0RyYWdDb250cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAKLSNpbmNs
dWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJE
cmFnRGF0YS5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAt
NjksOSArNjksOSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpjbGVhbnVwQWZ0ZXJTeXN0ZW1ECiB7
CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlw
Ym9hcmQmIGNsaXBib2FyZCwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbGFiZWwpCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFn
SW1hZ2UoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIGNsaXBib2FyZC5wYXN0ZWJv
YXJkKCkud3JpdGVJbWFnZShlbGVtZW50LCB1cmwsIGxhYmVsKTsKKyAgICBkYXRhVHJhbnNmZXIu
cGFzdGVib2FyZCgpLndyaXRlSW1hZ2UoZWxlbWVudCwgdXJsLCBsYWJlbCk7CiB9CiAKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAkocmV2aXNp
b24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5j
bHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUg
IkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC05Nyw5ICs5Nyw5IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2UKIH0KIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVh
dGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICByZXR1cm4gRGF0YVRy
YW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
IAotI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCisjaW1wb3J0ICJEYXRhVHJhbnNmZXIuaCIKICNpbXBv
cnQgIkRyYWdDbGllbnQuaCIKICNpbXBvcnQgIkRyYWdEYXRhLmgiCiAjaW1wb3J0ICJFbGVtZW50
LmgiCkBAIC04Miw5ICs4Miw5IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5
c3RlbUQKICAgICAgICAgZHJhZ0VuZGVkKCk7CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRl
Y2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQmIGNsaXBib2FyZCwgRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCit2b2lkIERyYWdDb250
cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNm
ZXIsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVs
KQogewotICAgIG1fY2xpZW50LmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjbGlwYm9hcmQucGFz
dGVib2FyZCgpLm5hbWUoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCwgZWxlbWVudC5kb2N1bWVudCgp
LmZyYW1lKCkpOworICAgIG1fY2xpZW50LmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShkYXRhVHJh
bnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCwgZWxlbWVudC5k
b2N1bWVudCgpLmZyYW1lKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJCbG9ja0V4Y2VwdGlvbnMuaCIK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRl
ICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEcmFn
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb2N1c0Nv
bnRyb2xsZXIuaCIKQEAgLTY4MCwxMyArNjgwLDEzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVu
dEFjdGl2YXRlZFZpZXcoY28KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLVBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29u
c3QKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
RGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJh
Z3N0YXJ0IGFkZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRv
bmUgZm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCiAg
ICAgT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGUoTlNE
cmFnUGJvYXJkKTsKICAgICBwYXN0ZWJvYXJkLT5jbGVhcigpOwotICAgIHJldHVybiBDbGlwYm9h
cmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFn
Q29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRy
YW5zZmVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBEcmFnQ29u
dHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRAogewogfQogCi12b2lkIERyYWdDb250cm9sbGVy
OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkJiBjbGlwYm9hcmQsIEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQordm9pZCBEcmFn
Q29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYgZGF0YVRy
YW5zZmVyLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBs
YWJlbCkKIHsKLSAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkID0gY2xpcGJvYXJkLnBhc3RlYm9h
cmQoKTsKKyAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkID0gZGF0YVRyYW5zZmVyLnBhc3RlYm9h
cmQoKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGNoZWNrPwogICAg
IGlmICghcGFzdGVib2FyZC53cml0YWJsZURhdGFPYmplY3QoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAkocmV2aXNpb24gMTY2ODczKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsOCArMjgsOCBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCiAjaW5jbHVk
ZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgi
CisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2lu
Y2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtOTIs
MTIgKzkyLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY28KIH0K
IAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRI
YW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CitQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ2F0YVRyYW5zZmVyKCkgY29uc3QK
IHsKICNpZiBPUyhXSU5DRSkKICAgICByZXR1cm4gMDsKICNlbHNlCi0gICAgcmV0dXJuIENsaXBi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogI2VuZGlmCiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBA
QCBjbGFzcyBGcmFtZTsKIGNsYXNzIFJhbmdlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1lbnVt
IFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCB7IERlZmF1bHRTZWxlY3Rl
ZFRleHRUeXBlLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkIH07CitlbnVtIFNob3Vs
ZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRl
eHRUeXBlLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yRGF0YVRyYW5zZmVyIH07CiAKIC8vIEZvciB3
cml0aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hl
c3QgZm9ybWF0cyBvbiB0b3AuCiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBkb2N1bWVudEZyYWdtZW50KEZyYW1lJiwgUmFuZ2UmLCBib29sIGFsbG93UGxhaW5UZXh0
LCBib29sJiBjaG9zZVBsYWluVGV4dCk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCiAg
ICAgdm9pZCB3cml0ZUltYWdlKEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRp
dGxlKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KLSAgICB2b2lkIHdyaXRlU2VsZWN0
aW9uKFJhbmdlJiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmLCBTaG91bGRTZXJp
YWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgPSBEZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSk7
IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCisgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihS
YW5nZSYsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiwgU2hvdWxkU2VyaWFsaXpl
U2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyID0gRGVmYXVsdFNlbGVjdGVkVGV4dFR5cGUpOyAv
LyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uLgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEsp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3Bw
CShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCwxMCArMTU4LDEwIEBAIGJvb2wgUGFz
dGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UmIHNlbGVjdGVkUmFuZ2UsIGJv
b2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiBmcmFtZSwgU2hvdWxkU2VyaWFsaXplU2Vs
ZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkIHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBi
b2FyZCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UmIHNlbGVjdGVkUmFu
Z2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiBmcmFtZSwgU2hvdWxkU2VyaWFs
aXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyIHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2ZlcikKIHsKICAgICBtX2RhdGFPYmplY3QtPmNsZWFyQWxsKCk7Ci0gICAg
bV9kYXRhT2JqZWN0LT5zZXRUZXh0KHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBi
b2FyZCA9PSBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkID8gZnJhbWUuZWRpdG9yKCku
c2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCkgOiBmcmFtZS5lZGl0b3IoKS5zZWxlY3RlZFRleHQo
KSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXRUZXh0KHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2ZlciA9PSBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yRGF0YVRyYW5zZmVyID8g
ZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkgOiBmcmFtZS5lZGl0
b3IoKS5zZWxlY3RlZFRleHQoKSk7CiAgICAgbV9kYXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRl
TWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBS
ZXNvbHZlTm9uTG9jYWxVUkxzKSk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQkocmV2aXNpb24g
MTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIK
IAogI2ltcG9ydCAiQ2FjaGVkSW1hZ2UuaCIKLSNpbXBvcnQgIkNsaXBib2FyZC5oIgogI2ltcG9y
dCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiRG9jdW1lbnQuaCIKICNpbXBvcnQgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGFzdGVib2FyZFdpbi5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM4LDcgKzQz
OCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVSYW5nZVRvRGF0YU9iamVjdCgKICAgICBpZiAo
bWVkaXVtLmhHbG9iYWwgJiYgRkFJTEVEKG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXREYXRhKGh0
bWxGb3JtYXQoKSwgJm1lZGl1bSwgVFJVRSkpKQogICAgICAgICA6Okdsb2JhbEZyZWUobWVkaXVt
LmhHbG9iYWwpOwogCi0gICAgU3RyaW5nIHN0ciA9IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCgpOworICAgIFN0cmluZyBzdHIgPSBmcmFtZS5lZGl0b3IoKS5zZWxlY3Rl
ZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKICAgICByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0
eWxlTmV3bGluZXMoc3RyKTsKICAgICByZXBsYWNlTkJTUFdpdGhTcGFjZShzdHIpOwogICAgIG1l
ZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShzdHIpOwpAQCAtNDUwLDcgKzQ1MCw3IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVSYW5nZVRvRGF0YU9iamVjdCgKICAgICAgICAgbV93cml0
YWJsZURhdGFPYmplY3QtPlNldERhdGEoc21hcnRQYXN0ZUZvcm1hdCgpLCAmbWVkaXVtLCBUUlVF
KTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSYgc2VsZWN0ZWRS
YW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmIGZyYW1lLCBTaG91bGRTZXJp
YWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgc2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0
Rm9yQ2xpcGJvYXJkKQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSYgc2Vs
ZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmIGZyYW1lLCBTaG91
bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgc2hvdWxkU2VyaWFsaXplU2Vs
ZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKQogewogICAgIGNsZWFyKCk7CiAKQEAgLTQ2Niw3ICs0
NjYsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlJiBzCiAgICAgfQog
ICAgIAogICAgIC8vIFB1dCBwbGFpbiBzdHJpbmcgb24gdGhlIHBhc3RlYm9hcmQuIENGX1VOSUNP
REVURVhUIGNvdmVycyBDRl9URVhUIGFzIHdlbGwKLSAgICBTdHJpbmcgc3RyID0gc2hvdWxkU2Vy
aWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID09IEluY2x1ZGVJbWFnZUFsdFRleHRGb3JD
bGlwYm9hcmQgPyBmcmFtZS5lZGl0b3IoKS5zZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSA6IGZy
YW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dCgpOworICAgIFN0cmluZyBzdHIgPSBzaG91bGRTZXJp
YWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgPT0gSW5jbHVkZUltYWdlQWx0VGV4dEZv
ckRhdGFUcmFuc2ZlciA/IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2Zl
cigpIDogZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0KCk7CiAgICAgcmVwbGFjZU5ld2xpbmVz
V2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CiAgICAgcmVwbGFjZU5CU1BXaXRoU3BhY2Uo
c3RyKTsKICAgICBpZiAoOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjY5MzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNC0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJkIHRvIERhdGFUcmFuc2Zl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMzcx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKIDIwMTQtMDQtMDggIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBhIGJ1bmRsZSBmb3JtIGRlbGVn
YXRlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFn
RGVzdGkKICAgICAgICAgbV9wYWdlLT5tYXlQZXJmb3JtVXBsb2FkRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uKCk7IC8vIFVwbG9hZCBjYW4gaGFwcGVuIGZyb20gYSBkcm9wIGV2ZW50IGhhbmRsZXIsIHNv
IHdlIHNob3VsZCBwcmVwYXJlIGVhcmx5LgogfQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYs
IENsaXBib2FyZCYpCit2b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFj
dGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYpCiB7
CiB9CiAKQEAgLTU3LDcgKzU3LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50Ojpk
cmFnU291cgogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQotdm9p
ZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29sKQordm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IElu
dFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQogewogfQogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDExICs0MywxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFj
dGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
IGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9p
bnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
ZXZlbnRQb3MsIFdlYkNvcmU6OkNsaXBib2FyZCYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5r
RHJhZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNv
cmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdp
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpEYXRhVHJhbnNm
ZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJy
aWRlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJE
cmFnQ2xpZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmUKICAgICByZXR1cm4gYml0bWFwLnJlbGVh
c2UoKTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoUmV0YWluUHRyPE5TSW1h
Z2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiwgQ2xpcGJv
YXJkJiwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQordm9pZCBXZWJEcmFnQ2xpZW50Ojpz
dGFydERyYWcoUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQs
IGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtE
cmFnKQogewogICAgIEludFNpemUgYml0bWFwU2l6ZShbaW1hZ2Ugc2l6ZV0pOwogICAgIFJlZlB0
cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IGNvbnZlcnRJbWFnZVRvQml0bWFwKGltYWdlLmdl
dCgpLCBiaXRtYXBTaXplKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjkzNCkK
KysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDE0LTA0LTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBDbGlwYm9hcmQgdG8gRGF0YVRyYW5zZmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEzNzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlld1Bs
YWNlaG9sZGVyLm1tOgorCiAyMDE0LTA0LTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSB0aGUgbGVnYWN5IHN0cmluZyBkcmF3
aW5nIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNl
aG9sZGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERG
Vmlld1BsYWNlaG9sZGVyLm1tCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViS2l0L2lv
cy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KICNpbXBvcnQgPFVJS2l0L1VJS2l0
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NsaXBib2FyZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9EYXRh
VHJhbnNmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjY5MzQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wNC0wOCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJv
YXJkIHRvIERhdGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6
OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbik6CisgICAgICAgIChXZWJEcmFnQ2xpZW50Ojpz
dGFydERyYWcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKwogMjAxNC0wNC0w
OCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdCBwYXJ0
IG9mIFtDb2NvYV0gQWRkIFdLRm9ybURlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCShyZXZpc2lvbiAxNjY4NzMpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDExICszMywxMSBAQCBjbGFzcyBXZWJEcmFnQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6OkRyCiBwdWJsaWM6CiAgICAgV2ViRHJhZ0NsaWVudChXZWJWaWV3Kik7CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRy
YWdEZXN0aW5hdGlvbkFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3Vy
Y2VBY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihX
ZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNv
cmU6OkRhdGFUcmFuc2ZlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rp
b25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBldmVudFBvcywgV2ViQ29yZTo6Q2xpcGJvYXJkJiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxp
bmtEcmFnKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRy
YWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBldmVudFBvcywgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwgV2ViQ29yZTo6
RnJhbWUmLCBib29sIGxpbmtEcmFnKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6
OkVsZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpG
cmFtZSopIG92ZXJyaWRlOwogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
bW0JKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAKICNpbXBv
cnQgIldlYlVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYlVJRGVsZWdhdGVQcml2YXRlLmgiCiAj
aW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNvcmUvQ2xpcGJvYXJkLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFn
RGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRp
dG9yQ2xpZW50Lmg+CkBAIC04NCwxMiArODQsMTIgQEAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlv
biBXZWJEcmFnQ2xpZW50OgogICAgIHJldHVybiAoRHJhZ1NvdXJjZUFjdGlvbilbW21fd2ViVmll
dyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZHJhZ1NvdXJjZUFjdGlv
bk1hc2tGb3JQb2ludDp2aWV3UG9pbnRdOwogfQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFjdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1vdXNlRG93blBvaW50LCBXZWJDb3JlOjpDbGlwYm9h
cmQmIGNsaXBib2FyZCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbW91c2VEb3duUG9pbnQsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYgZGF0YVRyYW5z
ZmVyKQogewotICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1f
d2ViVmlldyB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VBY3Rpb24p
YWN0aW9uIGZyb21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQYXN0ZWJv
YXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpjbGlwYm9hcmQucGFzdGVib2FyZCgpLm5hbWUoKV1dOwor
ICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyB3
aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VBY3Rpb24pYWN0aW9uIGZy
b21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIHBhc3Rl
Ym9hcmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKV1dOwogfQogCi12
b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25z
dCBJbnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgQ2xpcGJvYXJkJiBjbGlw
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6
c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiBhdCwgY29u
c3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUm
IGZyYW1lLCBib29sIGxpbmtEcmFnKQogewogICAgIFJldGFpblB0cjxXZWJIVE1MVmlldz4gaHRt
bFZpZXcgPSAoV2ViSFRNTFZpZXcqKVtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZp
ZXddOwogICAgIGlmICghW2h0bWxWaWV3LmdldCgpIGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3
IGNsYXNzXV0pCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERy
YWcoRHJhZ0ltYWdlUgogICAgIFJldGFpblB0cjxXZWJIVE1MVmlldz4gdG9wVmlld1Byb3RlY3Rv
ciA9IHRvcEhUTUxWaWV3OwogICAgIAogICAgIFt0b3BIVE1MVmlldyBfc3RvcEF1dG9zY3JvbGxU
aW1lcl07Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0
ZWJvYXJkV2l0aE5hbWU6Y2xpcGJvYXJkLnBhc3RlYm9hcmQoKS5uYW1lKCldOworICAgIE5TUGFz
dGVib2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOmRh
dGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpXTsKIAogICAgIE5TSW1hZ2UgKmRyYWdOU0lt
YWdlID0gZHJhZ0ltYWdlLmdldCgpOwogICAgIFdlYkhUTUxWaWV3ICpzb3VyY2VIVE1MVmlldyA9
IGh0bWxWaWV3LmdldCgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
REZWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBACiAjaW1wb3J0ICJXZWJW
aWV3LmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFBERktpdC9QREZL
aXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ2xpcGJvYXJkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Rh
dGFUcmFuc2Zlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Zvcm1TdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228866</attachid>
            <date>2014-04-08 12:15:28 -0700</date>
            <delta_ts>2014-04-08 13:45:09 -0700</delta_ts>
            <desc>with fixes</desc>
            <filename>DataTransfer.txt</filename>
            <type>text/plain</type>
            <size>231320</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjkzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MSBAQAorMjAxNC0wNC0wOCAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJk
IHRvIERhdGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyB0aGUgbmFtZSB1c2VkIGluIEhUTUw1LCBhbmQgaXQncyBtdWNoIGJl
dHRlciB0aGFuIHRoZSBjb25mdXNpbmcgQ2xpcGJvYXJkIG9uZS4KKworICAgICAgICBSZW5hbWVk
IHJlbGF0ZWQgZW51bXMgdG9vLCBhbmQgbWFkZSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgYW4g
ZW51bSBjbGFzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDbGlwYm9hcmRD
dXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVy
Q3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlw
Ym9hcmRDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNEYXRhVHJhbnNmZXI6OnR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2xpcGJvYXJkOjp0eXBlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAgICogZG9tL0NsaXBi
b2FyZC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaXBib2FyZC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkRXZlbnQ6OkNsaXBib2FyZEV2ZW50
KToKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkRXZlbnQ6
OmNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0NsaXBib2FyZE1hYy5tbTogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9EYXRh
VHJhbnNmZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNw
cC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6fkRhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhVHJhbnNmZXI6OnNldEFjY2Vzc1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXI6OmNhblJlYWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXI6OmNhblJlYWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2FuV3Jp
dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2xlYXJEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Z2V0RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXI6OnNldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
Ojp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6ZHJvcEVmZmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXI6OnNldERyb3BFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjplZmZlY3RBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6
c2V0RWZmZWN0QWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OnNldERy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2FuU2V0RHJhZ0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6dXBkYXRlRHJhZ0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y3JlYXRlRHJhZ0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdJbWFnZUxvYWRlcjo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlcjo6c291cmNlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFU
cmFuc2Zlcjo6ZGVzdGluYXRpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjpzZXRTb3VyY2VPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6OkNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6On5DbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpz
ZXRBY2Nlc3NQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpj
YW5SZWFkVHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjYW5S
ZWFkRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNhbldyaXRl
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNsZWFyRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmdldERhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpzZXREYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6dHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkOjpmaWxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6OmRyb3BFZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpz
ZXREcm9wRWZmZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6ZWZm
ZWN0QWxsb3dlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnNldEVm
ZmVjdEFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpzZXRE
cmFnSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNh
blNldERyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnVw
ZGF0ZURyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNy
ZWF0ZURyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnNv
dXJjZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmRl
c3RpbmF0aW9uT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2Fy
ZDo6c2V0U291cmNlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZDo6c2V0RGVzdGluYXRpb25PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9E
YXRhVHJhbnNmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5o
LgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmlkbC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaDoKKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVyTWFjLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpjcmVhdGVE
cmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2Up
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnQ6OmNsaXBib2FyZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OmludGVybmFsRGF0
YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpjbGlwYm9hcmQpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9FdmVudC5pZGw6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVu
dDo6aW5pdE1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpNb3VzZUV2ZW50OjpkYXRhVHJhbnNmZXIpOgorICAgICAgICAqIGRvbS9Nb3Vz
ZUV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5ESFRNTEN1dCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhbkRIVE1MQ29weSk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmNhbkRIVE1MUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0
cnlESFRNTENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cnlESFRNTEN1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnRyeURIVE1MUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KToKKyAgICAg
ICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9EcmFnQ2xpZW50Lmg6Cisg
ICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZHJhZ0V4aXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6cGVyZm9ybURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRyeURI
VE1MRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKToKKyAgICAgICAgKiBwYWdl
L0RyYWdDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9EcmFnU3RhdGUuaDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmRpc3BhdGNoRHJhZ0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0ZpbGVPZlR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6aGFzU3RyaW5nT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Omhh
c0Ryb3Bab25lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRHJvcFpvbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZnJlZURhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6ZGlzcGF0Y2hEcmFnU3JjRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZnJlZUNs
aXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBwYWdl
L2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdl
L21hYy9EcmFnQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJh
Z2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVh
dGVEcmFnZ2luZ0NsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS93aW4vRHJhZ0Nv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdhdGFU
cmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
Q2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUmFuZ2VUb0RhdGFPYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorCiAyMDE0
LTA0LTA4ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAg
IFtXaW5DYWlyb10gQ29tcGlsZSBlcnJvciBpbiBUZXh0dXJlTWFwcGVyLmgKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDcgKzM0NCw2IEBAIHNldChXZWJDb3JlX0lE
TF9GSUxFUwogICAgIGRvbS9DaGlsZE5vZGUuaWRsCiAgICAgZG9tL0NsaWVudFJlY3QuaWRsCiAg
ICAgZG9tL0NsaWVudFJlY3RMaXN0LmlkbAotICAgIGRvbS9DbGlwYm9hcmQuaWRsCiAgICAgZG9t
L0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCiAgICAgZG9tL0N1c3Rv
bUV2ZW50LmlkbApAQCAtMzU0LDYgKzM1Myw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAg
IGRvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmlkbAogICAgIGRvbS9ET01TdHJpbmdMaXN0Lmlk
bAogICAgIGRvbS9ET01TdHJpbmdNYXAuaWRsCisgICAgZG9tL0RhdGFUcmFuc2Zlci5pZGwKICAg
ICBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3Qu
aWRsCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbApAQCAtMTEyNyw3ICsxMTI3LDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9DbGFzc05vZGVMaXN0LmNwcAogICAgIGRvbS9D
bGllbnRSZWN0LmNwcAogICAgIGRvbS9DbGllbnRSZWN0TGlzdC5jcHAKLSAgICBkb20vQ2xpcGJv
YXJkLmNwcAogICAgIGRvbS9DbGlwYm9hcmRFdmVudC5jcHAKICAgICBkb20vQ29sbGVjdGlvbklu
ZGV4Q2FjaGUuY3BwCiAgICAgZG9tL0NvbW1lbnQuY3BwCkBAIC0xMTQxLDYgKzExNDAsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAogICAgIGRv
bS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAogICAgIGRvbS9ET01TdHJpbmdMaXN0LmNwcAor
ICAgIGRvbS9EYXRhVHJhbnNmZXIuY3BwCiAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCiAg
ICAgZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCiAgICAgZG9tL0RlY29kZWREYXRhRG9jdW1l
bnRQYXJzZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAx
NjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc1LDcgKzc1LDYgQEAKICNpbmNsdWRlICJKU0NoYXJhY3RlckRhdGEuY3BwIgogI2lu
Y2x1ZGUgIkpTQ2xpZW50UmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNDbGllbnRSZWN0TGlzdC5jcHAi
Ci0jaW5jbHVkZSAiSlNDbGlwYm9hcmQuY3BwIgogI2luY2x1ZGUgIkpTQ2xvc2VFdmVudC5jcHAi
CiAjaW5jbHVkZSAiSlNDb21tYW5kTGluZUFQSUhvc3QuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWVu
dC5jcHAiCkBAIC0xMDQsNiArMTAzLDcgQEAKICNpbmNsdWRlICJKU0RhdGFiYXNlLmNwcCIKICNp
bmNsdWRlICJKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTRGF0YWJhc2VTeW5j
LmNwcCIKKyNpbmNsdWRlICJKU0RhdGFUcmFuc2Zlci5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhVHJh
bnNmZXJJdGVtLmNwcCIKICNpbmNsdWRlICJKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCIKICNp
bmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUxLDcgKzI1MSw2IEBAIE5P
Tl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0NoaWxkTm9kZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL0NsaWVudFJlY3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9DbGllbnRSZWN0TGlzdC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0NsaXBib2FyZC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9D
b21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ3VzdG9tRXZlbnQuaWRs
IFwKQEAgLTI2MCw2ICsyNTksNyBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RP
TVN0cmluZ0xpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9ET01TdHJpbmdNYXAuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL2RvbS9EYXRhVHJhbnNmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVy
SXRlbUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwg
XApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIF9f
Wk43V2ViQ29yZTEwRm9udEdseXBoczE1cmVsZWFzZUZvbnREYXQKIF9fWk43V2ViQ29yZTEwSlNE
b2N1bWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3RDMUVSS05TXzlGbG9hdFJl
Y3RFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0VOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2
ZW50RWlOUzVfSU5TXzROb2RlRUVFCi1fX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJL
TjNXVEYxMkF0b21pY1N0cmluZ0ViYmROUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVp
aWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgor
X19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJk
TlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVu
dFRhcmdldEVFRU5TNV9JTlNfMTJEYXRhVHJhbnNmZXJFRUViCiBfX1pON1dlYkNvcmUxMFBhc3Rl
Ym9hcmQxNHdyaXRlUGxhaW5UZXh0RVJLTjNXVEY2U3RyaW5nRU5TMF8xOFNtYXJ0UmVwbGFjZU9w
dGlvbkUKIF9fWk43V2ViQ29yZTEwUGFzdGVib2FyZDIxY3JlYXRlRm9yQ29weUFuZFBhc3RlRXYK
IF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEwY29tcG9zaXRvckV2CkBAIC0xODksNiArMTg5LDcg
QEAgX19aTjdXZWJDb3JlMTFtZW1vcnlDYWNoZUV2CiBfX1pON1dlYkNvcmUxMXN0YXJ0T2ZMaW5l
RVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FCiBfX1pON1dlYkNvcmUxMXN0YXJ0T2ZXb3JkRVJLTlNf
MTVWaXNpYmxlUG9zaXRpb25FTlNfOUVXb3JkU2lkZUUKIF9fWk43V2ViQ29yZTExd3JpdGVUb0Zp
bGVFaVBLY2kKK19fWk43V2ViQ29yZTEyRGF0YVRyYW5zZmVyRDFFdgogX19aTjdXZWJDb3JlMTJF
ZGl0aW5nU3R5bGVEMUV2CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEwbW91c2VNb3ZlZEVS
S05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNHNj
cm9sbE92ZXJmbG93RU5TXzE1U2Nyb2xsRGlyZWN0aW9uRU5TXzE3U2Nyb2xsR3JhbnVsYXJpdHlF
UE5TXzROb2RlRQpAQCAtMTMwNyw3ICsxMzA4LDYgQEAgX19aTjdXZWJDb3JlOG9wZW5GaWxlRVJL
TjNXVEY2U3RyaW5nRU5TXwogX19aTjdXZWJDb3JlOHRvU3RyaW5nRVJLTjNXVEY2VmVjdG9ySU5T
XzExUHJveHlTZXJ2ZXJFTG0wRU5TMF8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3Jl
OHRvVUludDE2RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uRQogX19aTjdXZWJDb3JlOHRvVUludDY0RVBOM0pTQzlFeGVjU3Rh
dGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19a
TjdXZWJDb3JlOUNsaXBib2FyZEQxRXYKIF9fWk43V2ViQ29yZTlET01XaW5kb3czMGRpc3BhdGNo
QWxsUGVuZGluZ1VubG9hZEV2ZW50c0V2CiBfX1pON1dlYkNvcmU5RE9NV2luZG93MzZkaXNwYXRj
aEFsbFBlbmRpbmdCZWZvcmVVbmxvYWRFdmVudHNFdgogX19aTjdXZWJDb3JlOUZsb2F0UmVjdDVz
Y2FsZUVmZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3Jl
LnhjY29uZmlnCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9XZWJDb3JlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDYgQEAg
SkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUl9Qcm9kdQogSkFWQVNDUklQVENPUkVf
UFJJVkFURV9IRUFERVJTX2VuZ2luZWVyaW5nID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL0phdmFT
Y3JpcHRDb3JlLmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKIAogRVhDTFVERURfU09VUkNFX0ZJ
TEVfTkFNRVMgPSAkKEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTXyQoUExBVEZPUk1fTkFNRSkp
OwotRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lb3MgPSAqLnRpZmYgKkN1cnNvci5w
bmcgQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBBWE9iamVjdENhY2hlTWFjLm1tIENsaXBib2Fy
ZE1hYy5tbSBDb2xvck1hYy5tbSBDdXJzb3IuY3BwIEN1cnNvck1hYy5tbSBFZGl0b3JNYWMubW0g
RXZlbnRIYW5kbGVyTWFjLm1tIEV2ZW50TG9vcE1hYy5tbSBHZW9sb2NhdGlvblNlcnZpY2VNYWMu
bW0gR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAgSWNvbkRhdGFiYXNlLmNwcCBJY29uTWFj
Lm1tIEtpbGxSaW5nTWFjLm1tIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBNSU1FVHlw
ZVJlZ2lzdHJ5TWFjLm1tIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIE5TU2Nyb2xsZXJJbXBE
ZXRhaWxzLm1tIE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCBQYXN0ZWJvYXJkTWFjLm1tIFBs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIFBsYXRmb3JtTW91c2VFdmVudE1hYy5tbSBQbGF0Zm9y
bVBhc3RlYm9hcmRNYWMubW0gUGxhdGZvcm1TY3JlZW5NYWMubW0gUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbSBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBSdW5Mb29wTWFjLm1t
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
Lm1tIFNjcm9sbFZpZXdNYWMubW0gU2Nyb2xsYmFyVGhlbWVNYWMubW0gU2hhcmVkVGltZXJNYWMu
bW0gU291bmRNYWMubW0gU3lzdGVtVGltZU1hYy5jcHAgVGhlbWVNYWMubW0gVGhyZWFkQ2hlY2su
bW0gVXNlckFnZW50TWFjLm1tIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gV2ViQ29yZVVSTFJlc3BvbnNlLm1tIFdlYkNvcmVWaWV3
Lm0gV2ViRm9udENhY2hlLm1tIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBXZWJXaW5kb3dBbmltYXRpb24ubW0g
V2lkZ2V0TWFjLm1tIG1hYy9MYXllclBvb2wubW0gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNw
cDsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zID0gKi50aWZmICpDdXJzb3Iu
cG5nIEFjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gQVhPYmplY3RDYWNoZU1hYy5tbSBDb2xvck1h
Yy5tbSBDdXJzb3IuY3BwIEN1cnNvck1hYy5tbSBEYXRhVHJhbnNmZXJNYWMubW0gRWRpdG9yTWFj
Lm1tIEV2ZW50SGFuZGxlck1hYy5tbSBFdmVudExvb3BNYWMubW0gR2VvbG9jYXRpb25TZXJ2aWNl
TWFjLm1tIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIEljb25EYXRhYmFzZS5jcHAgSWNv
bk1hYy5tbSBLaWxsUmluZ01hYy5tbSBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gTUlN
RVR5cGVSZWdpc3RyeU1hYy5tbSBNZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBOU1Njcm9sbGVy
SW1wRGV0YWlscy5tbSBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgUGFzdGVib2FyZE1hYy5t
bSBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBQbGF0Zm9ybU1vdXNlRXZlbnRNYWMubW0gUGxh
dGZvcm1QYXN0ZWJvYXJkTWFjLm1tIFBsYXRmb3JtU2NyZWVuTWFjLm1tIFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNYWMubW0gUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAgUnVuTG9vcE1h
Yy5tbSBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZU1hYy5tbSBTY3JvbGxWaWV3TWFjLm1tIFNjcm9sbGJhclRoZW1lTWFjLm1tIFNoYXJlZFRpbWVy
TWFjLm1tIFNvdW5kTWFjLm1tIFN5c3RlbVRpbWVNYWMuY3BwIFRoZW1lTWFjLm1tIFRocmVhZENo
ZWNrLm1tIFVzZXJBZ2VudE1hYy5tbSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIFdlYkNvcmVVUkxSZXNwb25zZS5tbSBXZWJDb3Jl
Vmlldy5tIFdlYkZvbnRDYWNoZS5tbSBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIFdl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gV2ViV2luZG93QW5pbWF0aW9u
Lm1tIFdpZGdldE1hYy5tbSBtYWMvTGF5ZXJQb29sLm1tIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5jcHA7CiBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVzaW11bGF0b3IgPSAkKEVY
Q0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zKTsKIEVYQ0xVREVEX1NPVVJDRV9GSUxF
X05BTUVTX21hY29zeCA9ICpJT1MuaCAqSU9TLmNwcCAqSU9TLm1tIEpTVG91Y2gqIEpTR2VzdHVy
ZSogRE9NR2VzdHVyZSogRE9NVG91Y2gqIEtpbGxSaW5nTm9uZS5jcHAgV0FLQXBwS2l0U3R1YnMu
aCBXQUtDbGlwVmlldy5oIFdBS1Jlc3BvbmRlci5oIFdBS1Njcm9sbFZpZXcuaCBXQUtWaWV3Lmgg
V0FLVmlld1ByaXZhdGUuaCBXQUtXaW5kb3cuaCBXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIFdLR3Jh
cGhpY3MuaCBXS1R5cGVzLmggV0tVdGlsaXRpZXMuaCBXS1ZpZXcuaCBXS1ZpZXdQcml2YXRlLmgg
V2ViQ29yZVRocmVhZC5oIFdlYkNvcmVUaHJlYWRNZXNzYWdlLmggV2ViQ29yZVRocmVhZFJ1bi5o
IFdlYkNvcmVUaHJlYWRTeXN0ZW1JbnRlcmZhY2UuaDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTY2ODczKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtOTk1LDIwICs5OTUsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaXBib2FyZC5jcHAiPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CkBAIC0xMzQ1LDYgKzEzMzEsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJh
bnNmZXIuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0uY3BwIj4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTEyMzc3LDcgKzEyMzc3LDcgQEAKICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ2xpcGJvYXJkLmNw
cCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ2xpcGJvYXJkRXZlbnQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjM5
MSw3ICsxMjM5MSw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXENsaXBib2FyZEV2ZW50LmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
b21cQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjQwNSw3ICsxMjQwNSw3IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbGxlY3Rpb25JbmRleENhY2hl
LmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ29tbWVudC5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTEyNDE5LDcg
KzEyNDE5LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
b21cQ29tbWVudC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbXBvc2l0
aW9uRXZlbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0xMjQzMyw3ICsxMjQzMyw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbXBvc2l0aW9uRXZlbnQuY3BwIj4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRvbVxDb250YWluZXJOb2RlLmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0NDcsNyArMTI0NDcsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb250YWluZXJO
b2RlLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xMjQ2MSw3ICsxMjQ2MSw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCI+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ3VzdG9tRXZlbnQuY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjQ3NSw3ICsx
MjQ3NSw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9t
XEN1c3RvbUV2ZW50LmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KQEAgLTEyNDg5LDcgKzEyNDg5LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cRGF0YXNldERPTVN0cmluZ01hcC5jcHAiPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zlci5jcHAiPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MDU0LDcgKzE2MDU0
LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5n
c1xqc1xKU0NsaXBib2FyZEN1c3RvbS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIj4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA2OCw3ICsxNjA2OCw3
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ1NTUnVsZUN1c3RvbS5jcHAiPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MDgyLDcgKzE2MDgyLDcgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xK
U0NTU1J1bGVDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA5Niw3ICsxNjA5Niw3IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDU1NSdWxlTGlz
dEN1c3RvbS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlND
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYxMTAsNyArMTYxMTAsNyBAQAogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGlu
Z3NcanNcSlNDU1NWYWx1ZUN1c3RvbS5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MTI0LDcgKzE2MTI0LDcgQEAKICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0NTU1ZhbHVlQ3Vz
dG9tLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3Rv
bVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjEzOCw3ICsxNjEzOCw3IEBACiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xD
b21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MTUyLDcgKzE2MTUyLDcg
QEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODExMyw3ICsxODExMyw2IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQ
bGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDaGFy
YWN0ZXJEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNDbGllbnRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDbGllbnRSZWN0TGlzdC5oIiAvPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpcGJvYXJkLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb21tYW5k
TGluZUFQSUhvc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0NvbW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbXBvc2l0aW9uRXZlbnQuaCIgLz4KQEAgLTE4MTM4LDYg
KzE4MTM3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0N1c3RvbUV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhYmFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YWJhc2VTeW5jLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFy
Y2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXIu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0RhdGFUcmFuc2Zlckl0ZW0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmgiIC8+CkBAIC0yMDIzMiw4ICsyMDIzMiw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkb21cQ2xhc3NOb2RlTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXENsaWVudFJlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGll
bnRSZWN0TGlzdC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2Fy
ZC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2FyZEFjY2Vzc1Bv
bGljeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2FyZEV2ZW50
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ29sbGVjdGlvbkluZGV4Q2Fj
aGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDb21tZW50LmgiIC8+CkBA
IC0yMDI0Myw2ICsyMDI0MSw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ3Jv
c3NUaHJlYWRUYXNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ3VzdG9t
RXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxEYXRhc2V0RE9NU3Ry
aW5nTWFwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVy
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVy
SXRlbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zlckl0
ZW1MaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGVjb2RlZERhdGFE
b2N1bWVudFBhcnNlci5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTY2ODczKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJz
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDU0LDkgKzMwNTQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXENsaWVudFJlY3RMaXN0LmNwcCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENs
aXBib2FyZC5jcHAiPgotICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9hcmRFdmVudC5jcHAiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTMwNzgsNiAr
MzA3NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cRGF0YXNldERPTVN0cmlu
Z01hcC5jcHAiPgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxEYXRhVHJhbnNmZXIuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5jcHAiPgogICAgICAgPEZpbHRlcj5kb208
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTQyNjMsOSArNDI2Myw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAi
PgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDbGlwYm9hcmRDdXN0b20u
Y3BwIj4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ29tbWFuZExpbmVB
UElIb3N0Q3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkBAIC00Mjg3LDYgKzQyODQsOSBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIj4KICAgICAg
IDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCI+
CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC01MjI0LDkgKzUyMjQsNiBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpZW50UmVjdExpc3QuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaXBi
b2FyZC5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3Vy
Y2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC01Mjk5LDYgKzUyOTYsOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZv
cm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YWJhc2VT
eW5jLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNEYXRhVHJhbnNmZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0Zp
bHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0uY3BwIj4KICAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMDAzLDEyICsx
MDAwMyw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ2xpZW50UmVjdExpc3Qu
aCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2FyZC5oIj4KLSAgICAgIDxGaWx0ZXI+ZG9t
PC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
b21cQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiPgotICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9h
cmRFdmVudC5oIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xMDAzMyw2ICsxMDAyNywxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XERhdGFzZXRET01TdHJpbmdNYXAuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zl
ci5oIj4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgiPgor
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtLmgiPgogICAgICAgPEZpbHRlcj5k
b208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEzMDM4LDkgKzEzMDM4LDYgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaWVudFJl
Y3RMaXN0LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ2xpcGJvYXJkLmgiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVy
PgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTQ29tbWFuZExpbmVBUElIb3N0LmgiPgogICAgICAgPEZpbHRlcj5EZXJp
dmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTMxMTMsNiArMTMxMTAs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
aiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
RGF0YWJhc2VTeW5jLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVyLmgiPgorICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbS5oIj4KICAgICAgIDxGaWx0
ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcxNSw3ICsxNzE1LDcgQEAKIAkJNEIzNDgwOTQw
RUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFn
ZVNvdXJjZUNHLmggKi87IH07CiAJCTRCNkZBNkY0MEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJl
cGxhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRC
NkZBNkYyMEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QjZGQTZGNzBDMzlFNEExMDAwODcw
MTEgLyogU21hcnRSZXBsYWNlQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNG
LmNwcCAqLzsgfTsKLQkJNEI4QUY0QUEwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vz
c1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEI4QUY0QTkwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTRCOEFGNEFBMEIx
Q0UwMkIwMDY4NzY5MCAvKiBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5
MCAvKiBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0QkFFOTVCMTBCMkZBOUNFMDBBRUQ4QTAgLyogRWRp
dG9yRGVsZXRlQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QkFFOTVCMDBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5
MjEwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTFGMEEzOURBQkEwMDIyMEZF
NSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIy
MEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVy
ZU5hbWVzLmggKi87IH07CkBAIC0yNDkzLDcgKzI0OTMsNyBAQAogCQk4NEQwQzQwNjExMTVGMUVB
MDAxOEFBMzQgLyogQWZmaW5lVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NEQwQzQwNTExMTVGMUVBMDAxOEFBMzQgLyogQWZmaW5lVHJh
bnNmb3JtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODUwMzFCM0MwQTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9yZVVubG9hZEV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjI2MEE0NEVG
QzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi87IH07CiAJCTg1MDMxQjNEMEE0
NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCMjcwQTQ0RUZDNzAwRjk5MkUwIC8qIEJl
Zm9yZVVubG9hZEV2ZW50LmggKi87IH07Ci0JCTg1MDMxQjNFMEE0NEVGQzcwMEY5OTJFMCAvKiBD
bGlwYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1MDMxQjI4MEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NTAzMUIzRTBBNDRFRkM3MDBGOTky
RTAgLyogRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzFCM0Yw
QTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjI5MEE0NEVGQzcwMEY5OTJFMCAvKiBD
bGlwYm9hcmRFdmVudC5jcHAgKi87IH07CiAJCTg1MDMxQjQwMEE0NEVGQzcwMEY5OTJFMCAvKiBD
bGlwYm9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzFCMkEwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggKi87IH07
CiAJCTg1MDMxQjQxMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIyQjBBNDRFRkM3MDBGOTkyRTAg
LyogRXZlbnQuY3BwICovOyB9OwpAQCAtMzI3NCw3ICszMjc0LDcgQEAKIAkJOTNGMTlBRTYwODI0
NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEIyQjI0RjA1NkJGMTVGMDBEMkI3NzEgLyog
U1NMS2V5R2VuZXJhdG9yTWFjLmNwcCAqLzsgfTsKIAkJOTNGMTlBRjgwODI0NUU1OTAwMUU5QUJD
IC8qIFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJFOTFGQzhDMDYxMzM2NjYwMDVFMzc5MCAvKiBQb3NpdGlvbi5jcHAgKi87IH07CiAJ
CTkzRjE5QUZEMDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MQ2FudmFzRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUY2QTNENTA2NjNCRjA0
MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuY3BwICovOyB9OwotCQk5M0YxOUFGRjA4MjQ1
RTU5MDAxRTlBQkMgLyogQ2xpcGJvYXJkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2Fy
ZE1hYy5tbSAqLzsgfTsKKwkJOTNGMTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIERhdGFUcmFuc2Zl
ck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
OTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBEYXRhVHJhbnNmZXJNYWMubW0gKi87IH07CiAJCTkz
RjE5QjAzMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RjI0OTA2RDE4QTdF
MDA0QTZGQTMgLyogWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwICovOyB9OwogCQk5M0YxOUIwNDA4
MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RjI0QjA2RDE4QTdFMDA0QTZGQTMgLyogWFNM
VFByb2Nlc3Nvci5jcHAgKi87IH07CiAJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xU
UHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzA2RjI0RDA2RDE4QTdFMDA0QTZGQTMgLyogWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwICovOyB9OwpAQCAtMzc3Nyw3ICszNzc3LDcgQEAKIAkJQTc3RTFGRUYxNEFBQ0I2RTAw
NUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29w
ZUFkb3B0ZXIuY3BwICovOyB9OwogCQlBNzdFMUZGMDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNj
b3BlQWRvcHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCAqLzsgfTsK
IAkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODFDNkE2MTM4MjhCNUQw
MDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi87IH07Ci0JCUE3ODQ5NDFCMEI1RkU1MDcw
MDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAg
Ki87IH07CisJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBEYXRhVHJhbnNmZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVG
RTUwNzAwMUUyMzdBIC8qIERhdGFUcmFuc2Zlci5jcHAgKi87IH07CiAJCUE3OEU1MjZGMTM0NkJE
MTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1l
dGVyU2hhZG93RWxlbWVudC5jcHAgKi87IH07CiAJCUE3OEU1MjcwMTM0NkJEMTcwMEFEOUMzMSAv
KiBNZXRlclNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3OEU1MjZFMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1l
bnQuaCAqLzsgfTsKIAkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEz
OTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLzsgfTsKQEAgLTUxOTUsOSAr
NTE5NSw5IEBACiAJCUJDQTI1NzE1MTI5M0MwMTAwMDdBMjYzRCAvKiBWZXJ0aWNhbFBvc2l0aW9u
Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QTI1NzE0MTI5M0MwMTAwMDdBMjYzRCAvKiBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCAqLzsgfTsK
IAkJQkNBMkIwNjExMDUwNDc2MDAwNDNCRDFDIC8qIFVzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTJCMDYwMTA1MDQ3NUYwMDQzQkQx
QyAvKiBVc2VyU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQkNBMkIwOEIxMDUwNUJDRDAwNDNCRDFDIC8qIFVzZXJTY3JpcHRUeXBlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMkIwOEEx
MDUwNUJDRDAwNDNCRDFDIC8qIFVzZXJTY3JpcHRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDQTgzRTRGMEQ3Q0UxRTkwMDM0MjFBOCAv
KiBKU0NsaXBib2FyZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuY3BwICovOyB9
OwotCQlCQ0E4M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTgzRTRFMEQ3Q0UxRTkwMDM0
MjFBOCAvKiBKU0NsaXBib2FyZC5oICovOyB9OwotCQlCQ0E4M0U1MjBEN0NFMjA1MDAzNDIxQTgg
LyogSlNDbGlwYm9hcmRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkQ3Vz
dG9tLmNwcCAqLzsgfTsKKwkJQkNBODNFNEYwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5z
ZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QTgzRTREMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5jcHAgKi87IH07CisJCUJD
QTgzRTUwMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4
IC8qIEpTRGF0YVRyYW5zZmVyLmggKi87IH07CisJCUJDQTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAv
KiBKU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNEYXRhVHJhbnNm
ZXJDdXN0b20uY3BwICovOyB9OwogCQlCQ0E4NDZENjBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVy
UmVwbGljYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0E4NDZENDBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi87IH07CiAJ
CUJDQTg0NkQ3MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4NDZENTBEQzY3QTM1MDAyNkMz
MDkgLyogUmVuZGVyUmVwbGljYS5oICovOyB9OwogCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcg
LyogQmFja0ZvcndhcmRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0E4QzgxQzExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRD
b250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTc5NTgsNyArNzk1OCw3IEBACiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBD
U1NDcm9zc2ZhZGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1ND
cm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDkwNjYwNDBC
RTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExheW91dFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQ5MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ2xpcGJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKKwkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIERhdGFUcmFu
c2Zlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUy
NyAvKiBET01TZWN1cml0eVBvbGljeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBET01TZWN1cml0eVBvbGljeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOUEyNDZCMTVCOUJCREQwMEQzNDUyNyAvKiBET01TZWN1cml0eVBvbGljeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TZWN1cml0eVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlBMjQ3MDE1QjlDMjk1MDBEMzQ1MjcgLyogRE9NRE9N
U2VjdXJpdHlQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRE9N
U2VjdXJpdHlQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2ODUsNyAr
ODY4NSw3IEBACiAJCTRCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlQ0cuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0
UmVwbGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbWFydFJlcGxhY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEI2RkE2RjYwQzM5RTRBMTAwMDg3MDEx
IC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNtYXJ0UmVwbGFjZUNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEI4
QUY0QTkwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcGJvYXJkQWNjZXNzUG9saWN5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBEYXRh
VHJhbnNmZXJBY2Nlc3NQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QkFFOTVCMDBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRvckRlbGV0ZUFjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0RTE5NTkxRjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFG
ZWF0dXJlTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhRmVhdHVyZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEUxOTU5
MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUZlYXR1cmVOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtOTUzNyw3ICs5NTM3LDcgQEAKIAkJODREMEM0MDUxMTE1RjFFQTAwMThB
QTM0IC8qIEFmZmluZVRyYW5zZm9ybS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBBZmZpbmVUcmFuc2Zvcm0uaDsgcGF0aCA9IHRyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjI2MEE0NEVGQzcwMEY5OTJFMCAv
KiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmVmb3JlVW5sb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTAzMUIyNzBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJlZm9yZVVubG9hZEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMxQjI4MEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9h
cmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogRGF0
YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNm
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUwMzFCMjkwQTQ0RUZDNzAwRjk5
MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDbGlwYm9hcmRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg1MDMxQjJBMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcGJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODUwMzFCMkIwQTQ0RUZDNzAwRjk5MkUwIC8qIEV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDgzNSw3ICsxMDgzNSw3IEBACiAJCUE3N0UxRkVEMTRBQUNC
NkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFRyZWVTY29wZUFkb3B0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBE
b2N1bWVudE1hcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
b2N1bWVudE1hcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3ODQ5NDFB
MEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBEYXRhVHJhbnNmZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNo
YWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWV0
ZXJTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUy
NkUxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZXRlclNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVsbENoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0NzcsMTAgKzEyNDc3LDEwIEBACiAJ
CUJDQTJCMDhBMTA1MDVCQ0QwMDQzQkQxQyAvKiBVc2VyU2NyaXB0VHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlclNjcmlwdFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVkQWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1RjY0MjAw
Qjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY2hlZHVsZWRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNB
ODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIENsaXBib2FyZC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2xpcGJvYXJkLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNBODNF
NEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpcGJvYXJkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDQTgzRTUxMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0NsaXBib2FyZEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaXBib2Fy
ZEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQTgzRTM2MEQ3Q0RD
NEUwMDM0MjFBOCAvKiBEYXRhVHJhbnNmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERh
dGFUcmFuc2Zlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQTgzRTREMEQ3
Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0RhdGFUcmFuc2Zlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFUcmFuc2Zlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNEYXRh
VHJhbnNmZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0E4NDZENDBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSZXBsaWNhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODQ2RDUwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxp
Y2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUmVwbGljYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0E4QzgxQzExRTNEMzY5MDA4MTJGQjcgLyog
QmFja0ZvcndhcmRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJhY2tGb3J3YXJkQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg5NDEsMTIgKzE4OTQxLDEyIEBACiAJCQkJOTNGOUI3OUYwQkE2MDMyNjAwODU0MDY0IC8qIEpT
Q0RBVEFTZWN0aW9uLmggKi8sCiAJCQkJNjVERjMxREYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hh
cmFjdGVyRGF0YS5jcHAgKi8sCiAJCQkJNjVERjMxRTAwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hh
cmFjdGVyRGF0YS5oICovLAotCQkJCUJDQTgzRTREMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0NsaXBi
b2FyZC5jcHAgKi8sCi0JCQkJQkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJk
LmggKi8sCiAJCQkJOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgKi8s
CiAJCQkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovLAogCQkJCUZF
NkZENDhCMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCAqLywKIAkJCQlGRTZG
RDQ4QzBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGluYXRlcy5oICovLAorCQkJCUJDQTgzRTRE
MEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5jcHAgKi8sCisJCQkJQkNBODNFNEUw
RDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8sCiAJCQkJMzFGQjFBNjMxMjBB
NUQzRjAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnQuY3BwICovLAogCQkJCTMxRkIxQTY0
MTIwQTVEM0YwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50LmggKi8sCiAJCQkJNTlBODYw
MDUxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgKi8sCkBA
IC0yMDUxOCw3ICsyMDUxOCw2IEBACiAJCQkJNDlFRUQxNEIxMDUxOTcxOTAwMDk5RkFCIC8qIEpT
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0RDEwNTE5
NzFBMDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJ
CQk5M0JBNTlCMTBGMkFBNUZFMDA4RThFOTkgLyogSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwICov
LAotCQkJCUJDQTgzRTUxMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0NsaXBib2FyZEN1c3RvbS5jcHAg
Ki8sCiAJCQkJQTU4NEZFMzcxODY0REFDMTAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcCAqLywKIAkJCQkyMDlCNDU2QTE2Nzk2QTdFMDBFNTRFNEUgLyogSlNDcnlwdG9D
dXN0b20uY3BwICovLAogCQkJCUUxNTdBOEU2MTgxODRDNjcwMDlGODIxRCAvKiBKU0NyeXB0b0tl
eUN1c3RvbS5jcHAgKi8sCkBAIC0yMDUyOSw2ICsyMDUyOCw3IEBACiAJCQkJQkM1ODI1RjIwQzBC
ODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJ
QUQ3MjZGRUExNkQ5RjQwQjAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5o
ICovLAogCQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNw
cCAqLywKKwkJCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXJDdXN0
b20uY3BwICovLAogCQkJCTQxNjJBNDUzMTAxMTQ1RTMwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQkzMUZCMUE2QjEyMEE1RDY5MDBEQzAy
QTAgLyogSlNEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJNTkwRTFCNEExMUU0
RUY3MDAwNjlGNzg0IC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAgKi8sCkBA
IC0yMjEzNywxMyArMjIxMzcsOCBAQAogCQkJCUJDQzA2NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5jcHAgKi8sCiAJCQkJQkNDMDY1N0IwRjNDRTFCNzAwQ0QyRDg3IC8qIENs
aWVudFJlY3RMaXN0LmggKi8sCiAJCQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3RMaXN0LmlkbCAqLywKLQkJCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJv
YXJkLmNwcCAqLywKLQkJCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkLmgg
Ki8sCi0JCQkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIENsaXBib2FyZC5pZGwgKi8sCi0J
CQkJNEI4QUY0QTkwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oICov
LAogCQkJCTg1MDMxQjI5MEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgKi8s
CiAJCQkJODUwMzFCMkEwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggKi8sCi0J
CQkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5tbSAqLywKIAkJCQlF
NDI1QTQ5OTE4MjkyQjg0MDAyMENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCAqLywKIAkJ
CQk5QkQ4QTk1OTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwICov
LAogCQkJCTY1NTBCNjk3MDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmNwcCAqLywKQEAgLTIy
MTYyLDYgKzIyMTU3LDExIEBACiAJCQkJNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmNwcCAqLywKIAkJCQk2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCAqLywKIAkJCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaWRs
ICovLAorCQkJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBEYXRhVHJhbnNmZXIuY3BwICov
LAorCQkJCTg1MDMxQjI4MEE0NEVGQzcwMEY5OTJFMCAvKiBEYXRhVHJhbnNmZXIuaCAqLywKKwkJ
CQlCQ0E4M0UzNjBEN0NEQzRFMDAzNDIxQTggLyogRGF0YVRyYW5zZmVyLmlkbCAqLywKKwkJCQky
RDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogRGF0YVRyYW5zZmVyTWFjLm1tICovLAorCQkJCTRC
OEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaCAqLywK
IAkJCQlCQzY0NjQxQjExRDdGNDE2MDA2NDU1QjAgLyogRGF0YXNldERPTVN0cmluZ01hcC5jcHAg
Ki8sCiAJCQkJQkM2NDY0MUExMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAu
aCAqLywKIAkJCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5o
ICovLApAQCAtMjMxMjAsOCArMjMxMjAsOCBAQAogCQkJCUJDOTA0Qjc3MEQxMDk5OEYwMDY4MEQz
MiAvKiBDbGFzc05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU3RTBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1ODEwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTAz
MUIzRTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
QjhBRjRBQTBCMUNFMDJCMDA2ODc2OTAgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4NTAzMUIzRTBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0QjhBRjRBQTBCMUNFMDJCMDA2ODc2OTAgLyogRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZCOTJERjRCMTVG
RUQwODcwMDk5NDQzMyAvKiBDbGlwUGF0aE9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTdBQUJEMTMxNEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQyNzEsNyArMjQyNzEsNyBAQAogCQkJCTY1REYzMUY0MDlEMUNDNjAwMDBCRTMyNSAvKiBK
U0NoYXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NTg4MEYzQ0UyQTcwMENE
MkQ4NyAvKiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NThBMEYzQ0Uy
QTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0E4
M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDQTgzRTUwMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTU4NEZFM0MxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVB
UElIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzgxLDkgKzI2NzgxLDkgQEAKIAkJCQlC
QzkwNEI3NjBEMTA5OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0MwNjU3RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBi
b2FyZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyog
RGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcwMEY5
OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0YxOUFGRjA4
MjQ1RTU5MDAxRTlBQkMgLyogQ2xpcGJvYXJkTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNG
MTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIERhdGFUcmFuc2Zlck1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDREVBNzYzNDE0NjBCNTZGMDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTY2MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3NjcyLDggKzI3NjcyLDggQEAKIAkJCQk2NURGMzFGMzA5RDFDQzYw
MDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2
NTg3MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNDMDY1ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQkNBODNFNEYwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUJDQTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0NsaXBi
b2FyZEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQ0E4M0U0RjBEN0NFMUU5MDAzNDIx
QTggLyogSlNEYXRhVHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNBODNFNTIwRDdD
RTIwNTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxRkI1NTA1MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTU4NEZFM0IxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElI
b3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTM4MTg2NERBQzEwMDg0M0IxMCAvKiBK
U0NvbW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2
aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0Fs
bEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tEYXRhLmNwcCIKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCIK
LSNpbmNsdWRlICJKU0NsaXBib2FyZEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDb21tYW5kTGlu
ZUFQSUhvc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ3J5cHRvQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIgpAQCAtNjIsNiArNjEs
NyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvd1NoZWxsLmNwcCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuY3BwIgorI2luY2x1ZGUgIkpT
RGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTRGljdGlvbmFyeS5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20uY3BwCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNDbGlwYm9hcmQuaCIKLQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi11c2luZyBuYW1l
c3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUpTVmFsdWUgSlNDbGlwYm9hcmQ6
OnR5cGVzKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiB0eXBl
cyA9IGltcGwoKS50eXBlcygpOwotICAgIHJldHVybiB0eXBlcy5pc0VtcHR5KCkgPyBqc051bGwo
KSA6IGpzQXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHR5cGVzKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVHJh
bnNmZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMTY2ODczKQkoZnJvbSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHA6MTY2ODczKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQ2xp
cGJvYXJkLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKwordXNpbmcgbmFtZXNwYWNlIEpT
QzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpTQ2xpcGJvYXJkOjp0eXBlcyhF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBpbXBs
KCkudHlwZXMoKTsKKyAgICByZXR1cm4gdHlwZXMuaXNFbXB0eSgpID8ganNOdWxsKCkgOiBqc0Fy
cmF5KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0eXBlcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVyQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFU
cmFuc2ZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTUg
KzI3LDE1IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ2xpcGJv
YXJkLmgiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXIuaCIKIAotI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgSlNDbGlwYm9hcmQ6OnR5cGVzKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK0pTVmFsdWUgSlNEYXRhVHJhbnNmZXI6OnR5cGVzKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlcyA9IGltcGwoKS50eXBl
cygpOwogICAgIHJldHVybiB0eXBlcy5pc0VtcHR5KCkgPyBqc051bGwoKSA6IGpzQXJyYXkoZXhl
YywgZ2xvYmFsT2JqZWN0KCksIHR5cGVzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
MTIgKzI5LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgog
Ci0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVu
dEludGVyZmFjZXMuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiSlNDbGlw
Ym9hcmQuaCIKKyNpbmNsdWRlICJKU0RhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuY3BwCShyZXZpc2lvbiAx
NjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw0MjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQ2xpcGJvYXJkLmgiCi0KLSNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNh
Y2hlZEltYWdlQ2xpZW50LmgiCi0jaW5jbHVkZSAiRHJhZ0RhdGEuaCIKLSNpbmNsdWRlICJFZGl0
b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KLWNsYXNzIERyYWdJbWFnZUxvYWRlciBm
aW5hbCA6IHByaXZhdGUgQ2FjaGVkSW1hZ2VDbGllbnQgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKERyYWdJbWFnZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIGV4cGxpY2l0IERyYWdJbWFnZUxvYWRlcihDbGlwYm9hcmQqKTsKLSAgICB2b2lkIHN0YXJ0
TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4mKTsKLSAgICB2b2lkIHN0
b3BMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiYpOwotCi1wcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRS
ZWN0Kikgb3ZlcnJpZGU7Ci0gICAgQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKLX07Ci0KLSNlbmRp
ZgotCi1DbGlwYm9hcmQ6OkNsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIENsaXBib2FyZFR5cGUgdHlwZSwgYm9v
bCBmb3JGaWxlRHJhZykKLSAgICA6IG1fcG9saWN5KHBvbGljeSkKLSAgICAsIG1fcGFzdGVib2Fy
ZChwYXN0ZWJvYXJkKQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgLCBtX2ZvckRyYWco
dHlwZSAhPSBDb3B5QW5kUGFzdGUpCi0gICAgLCBtX2ZvckZpbGVEcmFnKGZvckZpbGVEcmFnKQot
ICAgICwgbV9kcm9wRWZmZWN0KEFTQ0lJTGl0ZXJhbCgidW5pbml0aWFsaXplZCIpKQotICAgICwg
bV9lZmZlY3RBbGxvd2VkKEFTQ0lJTGl0ZXJhbCgidW5pbml0aWFsaXplZCIpKQotICAgICwgbV9z
aG91bGRVcGRhdGVEcmFnSW1hZ2UoZmFsc2UpCi0jZW5kaWYKLXsKLSNpZiAhRU5BQkxFKERSQUdf
U1VQUE9SVCkKLSAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIHR5cGUgPT0gQ29weUFuZFBhc3RlKTsK
LSAgICBBU1NFUlRfVU5VU0VEKGZvckZpbGVEcmFnLCAhZm9yRmlsZURyYWcpOwotI2VuZGlmCi19
Ci0KLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQotewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2xpcGJvYXJkKHBvbGljeSwgcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlID8gUGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSgpIDogUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkpKTsKLX0KLQotQ2xpcGJvYXJkOjp+Q2xpcGJvYXJkKCkKLXsKLSNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotICAgIGlmIChtX2RyYWdJbWFnZUxvYWRlciAmJiBtX2RyYWdJbWFnZSkKLSAgICAg
ICAgbV9kcmFnSW1hZ2VMb2FkZXItPnN0b3BMb2FkaW5nKG1fZHJhZ0ltYWdlKTsKLSNlbmRpZgot
fQotICAgIAotdm9pZCBDbGlwYm9hcmQ6OnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kgcG9saWN5KQotewotICAgIC8vIE9uY2UgdGhlIGNsaXBib2FyZCBnb2VzIG51bWIsIGl0
IGNhbiBuZXZlciBnbyBiYWNrLgotICAgIEFTU0VSVChtX3BvbGljeSAhPSBDbGlwYm9hcmROdW1i
IHx8IHBvbGljeSA9PSBDbGlwYm9hcmROdW1iKTsKLSAgICBtX3BvbGljeSA9IHBvbGljeTsKLX0K
LQotYm9vbCBDbGlwYm9hcmQ6OmNhblJlYWRUeXBlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
cG9saWN5ID09IENsaXBib2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFR5cGVz
UmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7Ci19Ci0KLWJvb2wgQ2xp
cGJvYXJkOjpjYW5SZWFkRGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcG9saWN5ID09IENs
aXBib2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOwotfQotCi1i
b29sIENsaXBib2FyZDo6Y2FuV3JpdGVEYXRhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wb2xp
Y3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpjbGVhckRhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlKQotewotICAgIGlmICghY2FuV3JpdGVEYXRhKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIodHlwZSk7Ci19Ci0KLXZvaWQgQ2xp
cGJvYXJkOjpjbGVhckRhdGEoKQotewotICAgIGlmICghY2FuV3JpdGVEYXRhKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIoKTsKLX0KLQotU3RyaW5nIENsaXBi
b2FyZDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0Ci17Ci0gICAgaWYgKCFjYW5S
ZWFkRGF0YSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotICAgIGlmIChtX2ZvckZpbGVEcmFnKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnJlYWRTdHJpbmcodHlwZSk7Ci19
Ci0KLWJvb2wgQ2xpcGJvYXJkOjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBkYXRhKQotewotICAgIGlmICghY2FuV3JpdGVEYXRhKCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgaWYgKG1fZm9yRmlsZURyYWcp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIG1fcGFzdGVib2Fy
ZC0+d3JpdGVTdHJpbmcodHlwZSwgZGF0YSk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IENsaXBib2Fy
ZDo6dHlwZXMoKSBjb25zdAotewotICAgIGlmICghY2FuUmVhZFR5cGVzKCkpCi0gICAgICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOwotCi0gICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+dHlwZXMo
KTsKLX0KLQotUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkOjpmaWxlcygpIGNvbnN0Ci17
Ci0gICAgLy8gRklYTUU6IFdlIGNvdWxkIGNhY2hlIHRoZSBjb21wdXRlZCBmaWxlIGxpc3QgaWYg
aXQgd2FzIG5lY2Vzc2FyeSBhbmQgaGVscGZ1bC4KLSAgICAvLyBDdXJyZW50bHksIGVhY2ggYWNj
ZXNzIGdldHMgYSBuZXcgY29weSwgYW5kIHRodXMgc2V0RGF0YSgpIG1vZGlmaWNhdGlvbnMgdG8g
dGhlCi0gICAgLy8gY2xpcGJvYXJkIGFyZSBub3QgcmVmbGVjdGVkIGluIGFueSBGaWxlTGlzdCBv
YmplY3RzIHRoZSBwYWdlIGhhcyBhY2Nlc3NlZCBhbmQgc3RvcmVkLgotCi0gICAgaWYgKCFjYW5S
ZWFkRGF0YSgpKQotICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOwotCi0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAobV9mb3JEcmFnICYmICFtX2ZvckZpbGVEcmFnKQot
ICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOwotI2VuZGlmCi0KLSAgICBWZWN0b3I8
U3RyaW5nPiBmaWxlbmFtZXMgPSBtX3Bhc3RlYm9hcmQtPnJlYWRGaWxlbmFtZXMoKTsKLSAgICBS
ZWZQdHI8RmlsZUxpc3Q+IGZpbGVMaXN0ID0gRmlsZUxpc3Q6OmNyZWF0ZSgpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgZmlsZW5hbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmaWxlTGlz
dC0+YXBwZW5kKEZpbGU6OmNyZWF0ZShmaWxlbmFtZXNbaV0sIEZpbGU6OkFsbENvbnRlbnRUeXBl
cykpOwotICAgIHJldHVybiBmaWxlTGlzdC5yZWxlYXNlKCk7Ci19Ci0KLSNpZiAhRU5BQkxFKERS
QUdfU1VQUE9SVCkKLQotU3RyaW5nIENsaXBib2FyZDo6ZHJvcEVmZmVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9uZSIpOwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0
RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmKQotewotfQotCi1TdHJpbmcgQ2xpcGJvYXJkOjplZmZl
Y3RBbGxvd2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1bmluaXRpYWxp
emVkIik7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmlu
ZyYpCi17Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjpzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCwg
aW50KQotewotfQotCi0jZWxzZQotCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcCgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9h
cmQoQ2xpcGJvYXJkV3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCks
IERyYWdBbmREcm9wKSk7Ci19Ci0KLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZChw
b2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgRHJhZ0Fu
ZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5zRmlsZXMoKSkpOwotfQotCi1ib29sIENsaXBib2FyZDo6
Y2FuU2V0RHJhZ0ltYWdlKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgdGhlIHNwZWMgZG9l
c24ndCBhY3R1YWxseSBhbGxvdyBkcmFnIGltYWdlIG1vZGlmaWNhdGlvbiBvdXRzaWRlIHRoZSBk
cmFnc3RhcnQKLSAgICAvLyBldmVudC4gVGhpcyBjYXBhYmlsaXR5IGlzIG1haW50YWluZWQgZm9y
IGJhY2t3YXJkcyBjb21wYXRpYmxpdHkgZm9yIHBvcnRzIHRoYXQgaGF2ZQotICAgIC8vIHN1cHBv
cnRlZCB0aGlzIGluIHRoZSBwYXN0LiBPbiBtYW55IHBvcnRzLCBhdHRlbXB0aW5nIHRvIHNldCBh
IGRyYWcgaW1hZ2Ugb3V0c2lkZSB0aGUKLSAgICAvLyBkcmFnc3RhcnQgb3BlcmF0aW9uIGlzIGEg
bm8tb3AgYW55d2F5LgotICAgIHJldHVybiBtX2ZvckRyYWcgJiYgKG1fcG9saWN5ID09IENsaXBi
b2FyZEltYWdlV3JpdGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUpOwotfQot
Ci12b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGludCB4LCBp
bnQgeSkKLXsKLSAgICBpZiAoIWNhblNldERyYWdJbWFnZSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBDYWNoZWRJbWFnZSogaW1hZ2U7Ci0gICAgaWYgKGVsZW1lbnQgJiYgaXNIVE1MSW1hZ2VF
bGVtZW50KGVsZW1lbnQpICYmICFlbGVtZW50LT5pbkRvY3VtZW50KCkpCi0gICAgICAgIGltYWdl
ID0gdG9IVE1MSW1hZ2VFbGVtZW50KGVsZW1lbnQpLT5jYWNoZWRJbWFnZSgpOwotICAgIGVsc2UK
LSAgICAgICAgaW1hZ2UgPSAwOwotCi0gICAgbV9kcmFnTG9jYXRpb24gPSBJbnRQb2ludCh4LCB5
KTsKLQotICAgIGlmIChtX2RyYWdJbWFnZUxvYWRlciAmJiBtX2RyYWdJbWFnZSkKLSAgICAgICAg
bV9kcmFnSW1hZ2VMb2FkZXItPnN0b3BMb2FkaW5nKG1fZHJhZ0ltYWdlKTsKLSAgICBtX2RyYWdJ
bWFnZSA9IGltYWdlOwotICAgIGlmIChtX2RyYWdJbWFnZSkgewotICAgICAgICBpZiAoIW1fZHJh
Z0ltYWdlTG9hZGVyKQotICAgICAgICAgICAgbV9kcmFnSW1hZ2VMb2FkZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPERyYWdJbWFnZUxvYWRlcj4odGhpcyk7Ci0gICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVy
LT5zdGFydExvYWRpbmcobV9kcmFnSW1hZ2UpOwotICAgIH0KLQotICAgIG1fZHJhZ0ltYWdlRWxl
bWVudCA9IGltYWdlID8gMCA6IGVsZW1lbnQ7Ci0KLSAgICB1cGRhdGVEcmFnSW1hZ2UoKTsKLX0K
LQotdm9pZCBDbGlwYm9hcmQ6OnVwZGF0ZURyYWdJbWFnZSgpCi17Ci0gICAgLy8gRG9uJ3QgYWxs
b3cgc2V0dGluZyB0aGUgaW1hZ2UgaWYgd2UgaGF2ZW4ndCBzdGFydGVkIGRyYWdnaW5nIHlldDsg
d2UnbGwgcmVseSBvbiB0aGUgZHJhZ2dpbmcgY29kZQotICAgIC8vIHRvIGluc3RhbGwgdGhpcyBk
cmFnIGltYWdlIGFzIHBhcnQgb2YgZ2V0dGluZyB0aGUgZHJhZyBraWNrZWQgb2ZmLgotICAgIGlm
ICghbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIEludFBv
aW50IGNvbXB1dGVkSG90U3BvdDsKLSAgICBEcmFnSW1hZ2VSZWYgY29tcHV0ZWRJbWFnZSA9IGNy
ZWF0ZURyYWdJbWFnZShjb21wdXRlZEhvdFNwb3QpOwotICAgIGlmICghY29tcHV0ZWRJbWFnZSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYXN0ZWJvYXJkLT5zZXREcmFnSW1hZ2UoY29tcHV0
ZWRJbWFnZSwgY29tcHV0ZWRIb3RTcG90KTsKLX0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQot
RHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlv
bikgY29uc3QKLXsKLSAgICBsb2NhdGlvbiA9IG1fZHJhZ0xvY2F0aW9uOwotCi0gICAgaWYgKG1f
ZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJh
Z0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7Ci0KLSAgICBp
ZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2Ry
YWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBj
cmVhdGVEcmFnSW1hZ2VGb3JOb2RlKCpmcmFtZSwgKm1fZHJhZ0ltYWdlRWxlbWVudCk7Ci0gICAg
fQotCi0gICAgLy8gV2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNyZWF0ZSBh
IGRyYWcgaW1hZ2UsIHVzZSB0aGUgZGVmYXVsdCBpY29uLgotICAgIHJldHVybiBudWxscHRyOwot
fQotCi0jZW5kaWYKLQotRHJhZ0ltYWdlTG9hZGVyOjpEcmFnSW1hZ2VMb2FkZXIoQ2xpcGJvYXJk
KiBjbGlwYm9hcmQpCi0gICAgOiBtX2NsaXBib2FyZChjbGlwYm9hcmQpCi17Ci19Ci0KLXZvaWQg
RHJhZ0ltYWdlTG9hZGVyOjpzdGFydExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8V2ViQ29y
ZTo6Q2FjaGVkSW1hZ2U+JiBpbWFnZSkKLXsKLSAgICAvLyBGSVhNRTogRG9lcyB0aGlzIHJlYWxs
eSB0cmlnZ2VyIGEgbG9hZD8gRG9lcyBpdCBuZWVkIHRvPwotICAgIGltYWdlLT5hZGRDbGllbnQo
dGhpcyk7Ci19Ci0KLXZvaWQgRHJhZ0ltYWdlTG9hZGVyOjpzdG9wTG9hZGluZyhDYWNoZWRSZXNv
dXJjZUhhbmRsZTxXZWJDb3JlOjpDYWNoZWRJbWFnZT4mIGltYWdlKQotewotICAgIGltYWdlLT5y
ZW1vdmVDbGllbnQodGhpcyk7Ci19Ci0KLXZvaWQgRHJhZ0ltYWdlTG9hZGVyOjppbWFnZUNoYW5n
ZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KikKLXsKLSAgICBtX2NsaXBib2FyZC0+dXBk
YXRlRHJhZ0ltYWdlKCk7Ci19Ci0KLXN0YXRpYyBEcmFnT3BlcmF0aW9uIGRyYWdPcEZyb21JRU9w
KGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQotewotICAgIGlmIChvcGVyYXRpb24gPT0gInVuaW5p
dGlhbGl6ZWQiKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkV2ZXJ5OwotICAgIGlmIChv
cGVyYXRpb24gPT0gIm5vbmUiKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbk5vbmU7Ci0g
ICAgaWYgKG9wZXJhdGlvbiA9PSAiY29weSIpCi0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9u
Q29weTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJsaW5rIikKLSAgICAgICAgcmV0dXJuIERyYWdP
cGVyYXRpb25MaW5rOwotICAgIGlmIChvcGVyYXRpb24gPT0gIm1vdmUiKQotICAgICAgICByZXR1
cm4gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25HZW5lcmljIHwgRHJhZ09wZXJhdGlvbk1v
dmUpOwotICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHlMaW5rIikKLSAgICAgICAgcmV0dXJuIChE
cmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uQ29weSB8IERyYWdPcGVyYXRpb25MaW5rKTsKLSAg
ICBpZiAob3BlcmF0aW9uID09ICJjb3B5TW92ZSIpCi0gICAgICAgIHJldHVybiAoRHJhZ09wZXJh
dGlvbikoRHJhZ09wZXJhdGlvbkNvcHkgfCBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVy
YXRpb25Nb3ZlKTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJsaW5rTW92ZSIpCi0gICAgICAgIHJl
dHVybiAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkxpbmsgfCBEcmFnT3BlcmF0aW9uR2Vu
ZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJhbGwiKQot
ICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkV2ZXJ5OwotICAgIHJldHVybiBEcmFnT3BlcmF0
aW9uUHJpdmF0ZTsgLy8gcmVhbGx5IGEgbWFya2VyIGZvciAibm8gY29udmVyc2lvbiIKLX0KLQot
c3RhdGljIGNvbnN0IGNoYXIqIElFT3BGcm9tRHJhZ09wKERyYWdPcGVyYXRpb24gb3BlcmF0aW9u
KQotewotICAgIGJvb2wgaXNHZW5lcmljTW92ZSA9IG9wZXJhdGlvbiAmIChEcmFnT3BlcmF0aW9u
R2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKLQotICAgIGlmICgoaXNHZW5lcmljTW92ZSAm
JiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkpICYmIChvcGVyYXRpb24gJiBEcmFnT3Bl
cmF0aW9uTGluaykpIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uRXZlcnkpCi0gICAgICAg
IHJldHVybiAiYWxsIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiAob3BlcmF0aW9uICYgRHJh
Z09wZXJhdGlvbkNvcHkpKQotICAgICAgICByZXR1cm4gImNvcHlNb3ZlIjsKLSAgICBpZiAoaXNH
ZW5lcmljTW92ZSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkxpbmspKQotICAgICAgICBy
ZXR1cm4gImxpbmtNb3ZlIjsKLSAgICBpZiAoKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5
KSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkxpbmspKQotICAgICAgICByZXR1cm4gImNv
cHlMaW5rIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSkKLSAgICAgICAgcmV0dXJuICJtb3ZlIjsK
LSAgICBpZiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkpCi0gICAgICAgIHJldHVybiAi
Y29weSI7Ci0gICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKQotICAgICAgICBy
ZXR1cm4gImxpbmsiOwotICAgIHJldHVybiAibm9uZSI7Ci19Ci0KLURyYWdPcGVyYXRpb24gQ2xp
cGJvYXJkOjpzb3VyY2VPcGVyYXRpb24oKSBjb25zdAotewotICAgIERyYWdPcGVyYXRpb24gb3Bl
cmF0aW9uID0gZHJhZ09wRnJvbUlFT3AobV9lZmZlY3RBbGxvd2VkKTsKLSAgICBBU1NFUlQob3Bl
cmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOwot
fQotCi1EcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6ZGVzdGluYXRpb25PcGVyYXRpb24oKSBjb25z
dAotewotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gZHJhZ09wRnJvbUlFT3AobV9kcm9w
RWZmZWN0KTsKLSAgICBBU1NFUlQob3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Db3B5IHx8IG9w
ZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTm9uZSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlv
bkxpbmsgfHwgb3BlcmF0aW9uID09IChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uR2VuZXJp
YyB8IERyYWdPcGVyYXRpb25Nb3ZlKSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkV2ZXJ5
KTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0U291cmNl
T3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQotewotICAgIEFTU0VSVF9BUkcob3Bl
cmF0aW9uLCBvcGVyYXRpb24gIT0gRHJhZ09wZXJhdGlvblByaXZhdGUpOwotICAgIG1fZWZmZWN0
QWxsb3dlZCA9IElFT3BGcm9tRHJhZ09wKG9wZXJhdGlvbik7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJk
OjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKLXsKLSAg
ICBBU1NFUlRfQVJHKG9wZXJhdGlvbiwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Db3B5IHx8
IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTm9uZSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJh
dGlvbkxpbmsgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25HZW5lcmljIHx8IG9wZXJhdGlv
biA9PSBEcmFnT3BlcmF0aW9uTW92ZSB8fCBvcGVyYXRpb24gPT0gKERyYWdPcGVyYXRpb24pKERy
YWdPcGVyYXRpb25HZW5lcmljIHwgRHJhZ09wZXJhdGlvbk1vdmUpKTsKLSAgICBtX2Ryb3BFZmZl
Y3QgPSBJRU9wRnJvbURyYWdPcChvcGVyYXRpb24pOwotfQotCi1TdHJpbmcgQ2xpcGJvYXJkOjpk
cm9wRWZmZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kcm9wRWZmZWN0ID09ICJ1bmluaXRp
YWxpemVkIiA/IEFTQ0lJTGl0ZXJhbCgibm9uZSIpIDogbV9kcm9wRWZmZWN0OwotfQotCi12b2lk
IENsaXBib2FyZDo6c2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmIGVmZmVjdCkKLXsKLSAgICBp
ZiAoIW1fZm9yRHJhZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGVmZmVjdCAhPSAibm9u
ZSIgJiYgZWZmZWN0ICE9ICJjb3B5IiAmJiBlZmZlY3QgIT0gImxpbmsiICYmIGVmZmVjdCAhPSAi
bW92ZSIpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBhbGxvd3Mg
dGhpcyBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVGhlcmUgaXMgcHJvYmFibHkgbm8gdmFsdWUKLSAg
ICAvLyBpbiBpZ25vcmluZyBhdHRlbXB0cyB0byBjaGFuZ2UgaXQuCi0gICAgaWYgKCFjYW5SZWFk
VHlwZXMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9kcm9wRWZmZWN0ID0gZWZmZWN0Owot
fQotCi1TdHJpbmcgQ2xpcGJvYXJkOjplZmZlY3RBbGxvd2VkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9lZmZlY3RBbGxvd2VkOwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0QWxsb3dl
ZChjb25zdCBTdHJpbmcmIGVmZmVjdCkKLXsKLSAgICBpZiAoIW1fZm9yRHJhZykKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgLy8gSWdub3JlIGFueSBhdHRlbXB0cyB0byBzZXQgaXQgdG8gYW4gdW5r
bm93biB2YWx1ZS4KLSAgICBpZiAoZHJhZ09wRnJvbUlFT3AoZWZmZWN0KSA9PSBEcmFnT3BlcmF0
aW9uUHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9lZmZlY3RBbGxvd2VkID0gZWZmZWN0OwotfQotCi0j
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0NsaXBib2FyZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyMyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDEgVG9iaWFzIEFudG9uIChhbnRvbkBzdHVkLmZiaS5maC1kYXJtc3Rh
ZHQuZGUpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0Bn
bWFpbC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBDbGlwYm9h
cmRfaAotI2RlZmluZSBDbGlwYm9hcmRfaAotCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKLSNpbmNsdWRlICJEcmFn
QWN0aW9ucy5oIgotI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgotI2luY2x1ZGUgIkludFBvaW50Lmgi
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgQ2FjaGVkSW1hZ2U7Ci0g
ICAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxpc3Q7Ci0gICAgY2xhc3MgRHJhZ0RhdGE7Ci0gICAg
Y2xhc3MgRHJhZ0ltYWdlTG9hZGVyOwotICAgIGNsYXNzIEVsZW1lbnQ7Ci0gICAgY2xhc3MgRmls
ZUxpc3Q7Ci0gICAgY2xhc3MgUGFzdGVib2FyZDsKLQotICAgIGNsYXNzIENsaXBib2FyZCA6IHB1
YmxpYyBSZWZDb3VudGVkPENsaXBib2FyZD4gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5KTsKLQotICAgICAgICB+Q2xpcGJvYXJkKCk7Ci0KLSAgICAgICAgU3RyaW5nIGRy
b3BFZmZlY3QoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXREcm9wRWZmZWN0KGNvbnN0IFN0cmlu
ZyYpOwotCi0gICAgICAgIFN0cmluZyBlZmZlY3RBbGxvd2VkKCkgY29uc3Q7Ci0gICAgICAgIHZv
aWQgc2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKTsKLQotICAgICAgICBWZWN0b3I8U3Ry
aW5nPiB0eXBlcygpIGNvbnN0OwotCi0gICAgICAgIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVz
KCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKTsK
LSAgICAgICAgdm9pZCBjbGVhckRhdGEoKTsKLQotICAgICAgICBTdHJpbmcgZ2V0RGF0YShjb25z
dCBTdHJpbmcmIHR5cGUpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7Ci0KLSAgICAgICAgdm9pZCBzZXREcmFnSW1h
Z2UoRWxlbWVudCosIGludCB4LCBpbnQgeSk7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9J
VEVNUykKLSAgICAgICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gaXRlbXMoKSA9
IDA7Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRBY2Nl
c3NQb2xpY3kpOwotICAgICAgICBib29sIGNhblJlYWRUeXBlcygpIGNvbnN0OwotICAgICAgICBi
b29sIGNhblJlYWREYXRhKCkgY29uc3Q7Ci0gICAgICAgIGJvb2wgY2FuV3JpdGVEYXRhKCkgY29u
c3Q7Ci0KLSAgICAgICAgUGFzdGVib2FyZCYgcGFzdGVib2FyZCgpIHsgcmV0dXJuICptX3Bhc3Rl
Ym9hcmQ7IH0KLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChDbGlwYm9hcmRBY2Nl
c3NQb2xpY3ksIGNvbnN0IERyYWdEYXRhJik7Ci0KLSAgICAgICAgYm9vbCBkcm9wRWZmZWN0SXNV
bmluaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9kcm9wRWZmZWN0ID09ICJ1bmluaXRpYWxp
emVkIjsgfQotCi0gICAgICAgIERyYWdPcGVyYXRpb24gc291cmNlT3BlcmF0aW9uKCkgY29uc3Q7
Ci0gICAgICAgIERyYWdPcGVyYXRpb24gZGVzdGluYXRpb25PcGVyYXRpb24oKSBjb25zdDsKLSAg
ICAgICAgdm9pZCBzZXRTb3VyY2VPcGVyYXRpb24oRHJhZ09wZXJhdGlvbik7Ci0gICAgICAgIHZv
aWQgc2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbik7Ci0KLSAgICAgICAgdm9p
ZCBzZXREcmFnSGFzU3RhcnRlZCgpIHsgbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2UgPSB0cnVlOyB9
Ci0gICAgICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGRyYWdMb2Nh
dGlvbikgY29uc3Q7Ci0gICAgICAgIHZvaWQgdXBkYXRlRHJhZ0ltYWdlKCk7Ci0jZW5kaWYKLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gQ2xpcGJvYXJkVHlwZSB7IENvcHlBbmRQYXN0ZSwg
RHJhZ0FuZERyb3AgfTsKLSAgICAgICAgQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSwg
UGFzc093blB0cjxQYXN0ZWJvYXJkPiwgQ2xpcGJvYXJkVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9v
bCBmb3JGaWxlRHJhZyA9IGZhbHNlKTsKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
ICAgIGJvb2wgY2FuU2V0RHJhZ0ltYWdlKCkgY29uc3Q7Ci0jZW5kaWYKLQotICAgICAgICBDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kgbV9wb2xpY3k7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBt
X3Bhc3RlYm9hcmQ7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICAgICBib29sIG1f
Zm9yRHJhZzsKLSAgICAgICAgYm9vbCBtX2ZvckZpbGVEcmFnOwotICAgICAgICBTdHJpbmcgbV9k
cm9wRWZmZWN0OwotICAgICAgICBTdHJpbmcgbV9lZmZlY3RBbGxvd2VkOwotICAgICAgICBib29s
IG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlOwotICAgICAgICBJbnRQb2ludCBtX2RyYWdMb2NhdGlv
bjsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG1fZHJhZ0ltYWdl
OwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9kcmFnSW1hZ2VFbGVtZW50OwotICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RHJhZ0ltYWdlTG9hZGVyPiBtX2RyYWdJbWFnZUxvYWRlcjsKLSNlbmRp
ZgotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIENsaXBib2Fy
ZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAkocmV2aXNpb24gMTY2ODczKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi1bCi0gICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCi1dIGludGVyZmFjZSBDbGlwYm9hcmQg
ewotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVjdDsKLSAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGVmZmVjdEFsbG93ZWQ7Ci0KLSAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRy
aWJ1dGUgQXJyYXkgdHlwZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVz
OwotCi0gICAgdm9pZCBjbGVhckRhdGEob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUpOwotICAgIERP
TVN0cmluZyBnZXREYXRhKERPTVN0cmluZyB0eXBlKTsKLSAgICBib29sZWFuIHNldERhdGEoRE9N
U3RyaW5nIHR5cGUsIERPTVN0cmluZyBkYXRhKTsKLSAgICB2b2lkIHNldERyYWdJbWFnZShFbGVt
ZW50IGltYWdlLCBsb25nIHgsIGxvbmcgeSk7Ci0KLSAgICBbQ29uZGl0aW9uYWw9REFUQV9UUkFO
U0ZFUl9JVEVNU10gcmVhZG9ubHkgYXR0cmlidXRlIERhdGFUcmFuc2Zlckl0ZW1MaXN0IGl0ZW1z
OwotfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgJ
KHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotIAotI2lmbmRlZiBDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3lfaAotI2RlZmluZSBDbGlwYm9hcmRBY2Nlc3NQb2xpY3lfaAotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWVudW0gQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHsKLSAgICBDbGlwYm9hcmROdW1i
LCBDbGlwYm9hcmRJbWFnZVdyaXRhYmxlLCBDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkVHlw
ZXNSZWFkYWJsZSwgQ2xpcGJvYXJkUmVhZGFibGUKLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLSNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuY3BwCShyZXZpc2lvbiAx
NjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q2xpcGJvYXJkRXZlbnQuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRh
dGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzIsOCArMzIsOCBAQCBDbGlwYm9hcmRFdmVudDo6Q2xpcGJvYXJkRXZlbnQoKQog
ewogfQogCi1DbGlwYm9hcmRFdmVudDo6Q2xpcGJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8
Q2xpcGJvYXJkPiBjbGlwYm9hcmQpCi0gICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSksIG1fY2xpcGJvYXJkKGNsaXBib2FyZCkKK0NsaXBib2FyZEV2ZW50OjpDbGlw
Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlcikK
KyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKSwgbV9kYXRhVHJh
bnNmZXIoZGF0YVRyYW5zZmVyKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJk
RXZlbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2Fy
ZEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgY2xhc3MgQ2xpcGJvYXJkOworICAgIGNsYXNzIERhdGFUcmFuc2ZlcjsK
IAogICAgIGNsYXNzIENsaXBib2FyZEV2ZW50IDogcHVibGljIEV2ZW50IHsKICAgICBwdWJsaWM6
CkBAIC0zOCwyMSArMzgsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZEV2ZW50KTsKICAgICAgICAgfQot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmRFdmVudD4gY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywg
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZEFyZykKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIFBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVyPiBjbGlwYm9hcmRBcmcpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ2xpcGJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBj
bGlwYm9hcmRBcmcpKTsKICAgICAgICAgfQogCi0gICAgICAgIENsaXBib2FyZCogY2xpcGJvYXJk
KCkgY29uc3QgeyByZXR1cm4gbV9jbGlwYm9hcmQuZ2V0KCk7IH0KKyAgICAgICAgdmlydHVhbCBE
YXRhVHJhbnNmZXIqIGludGVybmFsRGF0YVRyYW5zZmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9kYXRhVHJhbnNmZXIuZ2V0KCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIENsaXBi
b2FyZEV2ZW50KCk7Ci0gICAgICAgIENsaXBib2FyZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+KTsKKyAgICAgICAgQ2xpcGJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlcj4pOwogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRl
cmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCBib29sIGlzQ2xpcGJvYXJk
RXZlbnQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgICAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX2Ns
aXBib2FyZDsKKyAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gbV9kYXRhVHJhbnNmZXI7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkTWFjLm1tCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJDbGlwYm9hcmQuaCIKLQotI2ltcG9y
dCAiQ2FjaGVkSW1hZ2UuaCIKLSNpbXBvcnQgIkVsZW1lbnQuaCIKLSNpbXBvcnQgIkRyYWdJbWFn
ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEZJWE1FOiBOZWVkIHRvIHJlZmFjdG9y
IGFuZCBmaWd1cmUgb3V0IGhvdyB0byBoYW5kbGUgdGhlIGZsaXBwaW5nIGluIGEgbW9yZSBzZW5z
aWJsZSB3YXkgc28gd2UgY2FuCi0vLyB1c2UgdGhlIGRlZmF1bHQgQ2xpcGJvYXJkOjpkcmFnSW1h
Z2UgZnJvbSBDbGlwYm9hcmQuY3BwLiBOb3RlIGFsc28gdGhhdCB0aGlzIGhhbmRsZXMgY2FzZXMg
dGhhdAotLy8gQ2xpcGJvYXJkOjpkcmFnSW1hZ2UgaW4gQ2xpcGJvYXJkLmNwcCBkb2VzIG5vdCBo
YW5kbGUgY29ycmVjdGx5LCBzbyBtdXN0IHJlc29sdmUgdGhhdCBhcyB3ZWxsLgotRHJhZ0ltYWdl
UmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QK
LXsKLSAgICBEcmFnSW1hZ2VSZWYgcmVzdWx0ID0gbmlsOwotICAgIGlmIChtX2RyYWdJbWFnZUVs
ZW1lbnQpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZHJhZ0ltYWdlRWxlbWVudC0+
ZG9jdW1lbnQoKS5mcmFtZSgpKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IGltYWdlUmVjdDsKLSAg
ICAgICAgICAgIEludFJlY3QgZWxlbWVudFJlY3Q7Ci0gICAgICAgICAgICByZXN1bHQgPSBjcmVh
dGVEcmFnSW1hZ2VGb3JJbWFnZSgqZnJhbWUsICptX2RyYWdJbWFnZUVsZW1lbnQsIGltYWdlUmVj
dCwgZWxlbWVudFJlY3QpOwotICAgICAgICAgICAgLy8gQ2xpZW50IHNwZWNpZmllcyBwb2ludCBy
ZWxhdGl2ZSB0byBlbGVtZW50LCBub3QgdGhlIHdob2xlIGltYWdlLCB3aGljaCBtYXkgaW5jbHVk
ZSBjaGlsZAotICAgICAgICAgICAgLy8gbGF5ZXJzIHNwcmVhZCBvdXQgYWxsIG92ZXIgdGhlIHBs
YWNlLgotICAgICAgICAgICAgbG9jYXRpb24uc2V0WChlbGVtZW50UmVjdC54KCkgLSBpbWFnZVJl
Y3QueCgpICsgbV9kcmFnTG9jYXRpb24ueCgpKTsKLSAgICAgICAgICAgIGxvY2F0aW9uLnNldFko
aW1hZ2VSZWN0LmhlaWdodCgpIC0gKGVsZW1lbnRSZWN0LnkoKSAtIGltYWdlUmVjdC55KCkgKyBt
X2RyYWdMb2NhdGlvbi55KCkpKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9kcmFnSW1h
Z2UpIHsKLSAgICAgICAgcmVzdWx0ID0gbV9kcmFnSW1hZ2UtPmltYWdlKCktPmdldE5TSW1hZ2Uo
KTsKLSAgICAgICAgCi0gICAgICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jYXRpb247Ci0gICAgICAg
IGxvY2F0aW9uLnNldFkoW3Jlc3VsdCBzaXplXS5oZWlnaHQgLSBsb2NhdGlvbi55KCkpOwotICAg
IH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJDbGFz
c05vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJDbGllbnRSZWN0LmNwcCIKICNpbmNsdWRlICJDbGll
bnRSZWN0TGlzdC5jcHAiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmNwcCIKICNpbmNsdWRlICJDbGlw
Ym9hcmRFdmVudC5jcHAiCiAjaW5jbHVkZSAiQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwIgogI2lu
Y2x1ZGUgIkNvbW1lbnQuY3BwIgpAQCAtNTAsNiArNDksNyBAQAogI2luY2x1ZGUgIkRPTUltcGxl
bWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCIKICNp
bmNsdWRlICJET01TdHJpbmdMaXN0LmNwcCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuY3BwIgog
I2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAuY3BwIgogI2luY2x1ZGUgIkRlY29kZWREYXRh
RG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
IgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAJKHJldmlzaW9uIDE2Njg3MykJ
KGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5jcHA6MTY2ODczKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
MjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNsaXBib2FyZC5o
IgorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZUNsaWVu
dC5oIgorI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRWRpdG9yLmgiCisjaW5jbHVk
ZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQorCitjbGFzcyBEcmFnSW1hZ2VMb2FkZXIgZmluYWwgOiBwcml2YXRl
IENhY2hlZEltYWdlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmFnSW1hZ2VM
b2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBE
cmFnSW1hZ2VMb2FkZXIoQ2xpcGJvYXJkKik7CisgICAgdm9pZCBzdGFydExvYWRpbmcoQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+Jik7CisgICAgdm9pZCBzdG9wTG9hZGluZyhDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4mKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCopIG92ZXJyaWRl
OworICAgIENsaXBib2FyZCogbV9jbGlwYm9hcmQ7Cit9OworCisjZW5kaWYKKworQ2xpcGJvYXJk
OjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRUeXBlIHR5cGUsIGJvb2wgZm9yRmlsZURyYWcp
CisgICAgOiBtX3BvbGljeShwb2xpY3kpCisgICAgLCBtX3Bhc3RlYm9hcmQocGFzdGVib2FyZCkK
KyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgICwgbV9mb3JEcmFnKHR5cGUgIT0gQ29weUFu
ZFBhc3RlKQorICAgICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJhZykKKyAgICAsIG1fZHJvcEVm
ZmVjdChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQiKSkKKyAgICAsIG1fZWZmZWN0QWxsb3dl
ZChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQiKSkKKyAgICAsIG1fc2hvdWxkVXBkYXRlRHJh
Z0ltYWdlKGZhbHNlKQorI2VuZGlmCit7CisjaWYgIUVOQUJMRShEUkFHX1NVUFBPUlQpCisgICAg
QVNTRVJUX1VOVVNFRCh0eXBlLCB0eXBlID09IENvcHlBbmRQYXN0ZSk7CisgICAgQVNTRVJUX1VO
VVNFRChmb3JGaWxlRHJhZywgIWZvckZpbGVEcmFnKTsKKyNlbmRpZgorfQorCitQYXNzUmVmUHRy
PENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5IHBvbGljeSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZChw
b2xpY3ksIHBvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZSA/IFBhc3RlYm9hcmQ6OmNyZWF0ZVBy
aXZhdGUoKSA6IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKSk7Cit9CisKK0Ns
aXBib2FyZDo6fkNsaXBib2FyZCgpCit7CisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICBp
ZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1hZ2UpCisgICAgICAgIG1fZHJhZ0ltYWdl
TG9hZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7CisjZW5kaWYKK30KKyAgICAKK3ZvaWQg
Q2xpcGJvYXJkOjpzZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkK
K3sKKyAgICAvLyBPbmNlIHRoZSBjbGlwYm9hcmQgZ29lcyBudW1iLCBpdCBjYW4gbmV2ZXIgZ28g
YmFjay4KKyAgICBBU1NFUlQobV9wb2xpY3kgIT0gQ2xpcGJvYXJkTnVtYiB8fCBwb2xpY3kgPT0g
Q2xpcGJvYXJkTnVtYik7CisgICAgbV9wb2xpY3kgPSBwb2xpY3k7Cit9CisKK2Jvb2wgQ2xpcGJv
YXJkOjpjYW5SZWFkVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA9PSBDbGlw
Ym9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRUeXBlc1JlYWRhYmxlIHx8IG1f
cG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOworfQorCitib29sIENsaXBib2FyZDo6Y2FuUmVh
ZERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA9PSBDbGlwYm9hcmRSZWFkYWJs
ZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKK30KKworYm9vbCBDbGlwYm9hcmQ6
OmNhbldyaXRlRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9saWN5ID09IENsaXBib2Fy
ZFdyaXRhYmxlOworfQorCit2b2lkIENsaXBib2FyZDo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSkKK3sKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Bhc3RlYm9hcmQtPmNsZWFyKHR5cGUpOworfQorCit2b2lkIENsaXBib2FyZDo6Y2xlYXJE
YXRhKCkKK3sKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Bhc3RlYm9hcmQtPmNsZWFyKCk7Cit9CisKK1N0cmluZyBDbGlwYm9hcmQ6OmdldERhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdAoreworICAgIGlmICghY2FuUmVhZERhdGEoKSkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICBp
ZiAobV9mb3JGaWxlRHJhZykKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlmCisKKyAg
ICByZXR1cm4gbV9wYXN0ZWJvYXJkLT5yZWFkU3RyaW5nKHR5cGUpOworfQorCitib29sIENsaXBi
b2FyZDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3sK
KyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQorICAgIGlmIChtX2ZvckZpbGVEcmFnKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKKworICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPndyaXRlU3RyaW5n
KHR5cGUsIGRhdGEpOworfQorCitWZWN0b3I8U3RyaW5nPiBDbGlwYm9hcmQ6OnR5cGVzKCkgY29u
c3QKK3sKKyAgICBpZiAoIWNhblJlYWRUeXBlcygpKQorICAgICAgICByZXR1cm4gVmVjdG9yPFN0
cmluZz4oKTsKKworICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzKCk7Cit9CisKK1Bhc3NS
ZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZDo6ZmlsZXMoKSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBXZSBjb3VsZCBjYWNoZSB0aGUgY29tcHV0ZWQgZmlsZSBsaXN0IGlmIGl0IHdhcyBuZWNlc3Nh
cnkgYW5kIGhlbHBmdWwuCisgICAgLy8gQ3VycmVudGx5LCBlYWNoIGFjY2VzcyBnZXRzIGEgbmV3
IGNvcHksIGFuZCB0aHVzIHNldERhdGEoKSBtb2RpZmljYXRpb25zIHRvIHRoZQorICAgIC8vIGNs
aXBib2FyZCBhcmUgbm90IHJlZmxlY3RlZCBpbiBhbnkgRmlsZUxpc3Qgb2JqZWN0cyB0aGUgcGFn
ZSBoYXMgYWNjZXNzZWQgYW5kIHN0b3JlZC4KKworICAgIGlmICghY2FuUmVhZERhdGEoKSkKKyAg
ICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsKKworI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisgICAgaWYgKG1fZm9yRHJhZyAmJiAhbV9mb3JGaWxlRHJhZykKKyAgICAgICAgcmV0dXJu
IEZpbGVMaXN0OjpjcmVhdGUoKTsKKyNlbmRpZgorCisgICAgVmVjdG9yPFN0cmluZz4gZmlsZW5h
bWVzID0gbV9wYXN0ZWJvYXJkLT5yZWFkRmlsZW5hbWVzKCk7CisgICAgUmVmUHRyPEZpbGVMaXN0
PiBmaWxlTGlzdCA9IEZpbGVMaXN0OjpjcmVhdGUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGZpbGVuYW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgZmlsZUxpc3QtPmFwcGVuZChGaWxl
OjpjcmVhdGUoZmlsZW5hbWVzW2ldLCBGaWxlOjpBbGxDb250ZW50VHlwZXMpKTsKKyAgICByZXR1
cm4gZmlsZUxpc3QucmVsZWFzZSgpOworfQorCisjaWYgIUVOQUJMRShEUkFHX1NVUFBPUlQpCisK
K1N0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3QoKSBjb25zdAoreworICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoIm5vbmUiKTsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29u
c3QgU3RyaW5nJikKK3sKK30KKworU3RyaW5nIENsaXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5pbml0aWFsaXplZCIpOworfQorCit2
b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKQoreworfQorCit2
b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBpbnQsIGludCkKK3sKK30KKwor
I2Vsc2UKKworUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkKENsaXBib2FyZFdy
aXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpLCBEcmFnQW5kRHJvcCkp
OworfQorCitQYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmQocG9saWN5LCBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChkcmFnRGF0YSksIERyYWdBbmREcm9wLCBkcmFnRGF0
YS5jb250YWluc0ZpbGVzKCkpKTsKK30KKworYm9vbCBDbGlwYm9hcmQ6OmNhblNldERyYWdJbWFn
ZSgpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoZSBzcGVjIGRvZXNuJ3QgYWN0dWFsbHkg
YWxsb3cgZHJhZyBpbWFnZSBtb2RpZmljYXRpb24gb3V0c2lkZSB0aGUgZHJhZ3N0YXJ0CisgICAg
Ly8gZXZlbnQuIFRoaXMgY2FwYWJpbGl0eSBpcyBtYWludGFpbmVkIGZvciBiYWNrd2FyZHMgY29t
cGF0aWJsaXR5IGZvciBwb3J0cyB0aGF0IGhhdmUKKyAgICAvLyBzdXBwb3J0ZWQgdGhpcyBpbiB0
aGUgcGFzdC4gT24gbWFueSBwb3J0cywgYXR0ZW1wdGluZyB0byBzZXQgYSBkcmFnIGltYWdlIG91
dHNpZGUgdGhlCisgICAgLy8gZHJhZ3N0YXJ0IG9wZXJhdGlvbiBpcyBhIG5vLW9wIGFueXdheS4K
KyAgICByZXR1cm4gbV9mb3JEcmFnICYmIChtX3BvbGljeSA9PSBDbGlwYm9hcmRJbWFnZVdyaXRh
YmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlKTsKK30KKwordm9pZCBDbGlwYm9h
cmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBpbnQgeCwgaW50IHkpCit7CisgICAg
aWYgKCFjYW5TZXREcmFnSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVkSW1h
Z2UqIGltYWdlOworICAgIGlmIChlbGVtZW50ICYmIGlzSFRNTEltYWdlRWxlbWVudChlbGVtZW50
KSAmJiAhZWxlbWVudC0+aW5Eb2N1bWVudCgpKQorICAgICAgICBpbWFnZSA9IHRvSFRNTEltYWdl
RWxlbWVudChlbGVtZW50KS0+Y2FjaGVkSW1hZ2UoKTsKKyAgICBlbHNlCisgICAgICAgIGltYWdl
ID0gMDsKKworICAgIG1fZHJhZ0xvY2F0aW9uID0gSW50UG9pbnQoeCwgeSk7CisKKyAgICBpZiAo
bV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1hZ2UpCisgICAgICAgIG1fZHJhZ0ltYWdlTG9h
ZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7CisgICAgbV9kcmFnSW1hZ2UgPSBpbWFnZTsK
KyAgICBpZiAobV9kcmFnSW1hZ2UpIHsKKyAgICAgICAgaWYgKCFtX2RyYWdJbWFnZUxvYWRlcikK
KyAgICAgICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxEcmFnSW1h
Z2VMb2FkZXI+KHRoaXMpOworICAgICAgICBtX2RyYWdJbWFnZUxvYWRlci0+c3RhcnRMb2FkaW5n
KG1fZHJhZ0ltYWdlKTsKKyAgICB9CisKKyAgICBtX2RyYWdJbWFnZUVsZW1lbnQgPSBpbWFnZSA/
IDAgOiBlbGVtZW50OworCisgICAgdXBkYXRlRHJhZ0ltYWdlKCk7Cit9CisKK3ZvaWQgQ2xpcGJv
YXJkOjp1cGRhdGVEcmFnSW1hZ2UoKQoreworICAgIC8vIERvbid0IGFsbG93IHNldHRpbmcgdGhl
IGltYWdlIGlmIHdlIGhhdmVuJ3Qgc3RhcnRlZCBkcmFnZ2luZyB5ZXQ7IHdlJ2xsIHJlbHkgb24g
dGhlIGRyYWdnaW5nIGNvZGUKKyAgICAvLyB0byBpbnN0YWxsIHRoaXMgZHJhZyBpbWFnZSBhcyBw
YXJ0IG9mIGdldHRpbmcgdGhlIGRyYWcga2lja2VkIG9mZi4KKyAgICBpZiAoIW1fc2hvdWxkVXBk
YXRlRHJhZ0ltYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBJbnRQb2ludCBjb21wdXRlZEhv
dFNwb3Q7CisgICAgRHJhZ0ltYWdlUmVmIGNvbXB1dGVkSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2Uo
Y29tcHV0ZWRIb3RTcG90KTsKKyAgICBpZiAoIWNvbXB1dGVkSW1hZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdlKGNvbXB1dGVkSW1hZ2UsIGNvbXB1
dGVkSG90U3BvdCk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK0RyYWdJbWFnZVJlZiBD
bGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0Cit7Cisg
ICAgbG9jYXRpb24gPSBtX2RyYWdMb2NhdGlvbjsKKworICAgIGlmIChtX2RyYWdJbWFnZSkKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2Uo
KSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOworCisgICAgaWYgKG1fZHJhZ0ltYWdl
RWxlbWVudCkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kcmFnSW1hZ2VFbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdl
Rm9yTm9kZSgqZnJhbWUsICptX2RyYWdJbWFnZUVsZW1lbnQpOworICAgIH0KKworICAgIC8vIFdl
IGRvIG5vdCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBkcmFnIGltYWdlLCB1
c2UgdGhlIGRlZmF1bHQgaWNvbi4KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlmCisK
K0RyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVyKENsaXBib2FyZCogY2xpcGJvYXJkKQor
ICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQoreworfQorCit2b2lkIERyYWdJbWFnZUxvYWRl
cjo6c3RhcnRMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxlPFdlYkNvcmU6OkNhY2hlZEltYWdl
PiYgaW1hZ2UpCit7CisgICAgLy8gRklYTUU6IERvZXMgdGhpcyByZWFsbHkgdHJpZ2dlciBhIGxv
YWQ/IERvZXMgaXQgbmVlZCB0bz8KKyAgICBpbWFnZS0+YWRkQ2xpZW50KHRoaXMpOworfQorCit2
b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RvcExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8V2Vi
Q29yZTo6Q2FjaGVkSW1hZ2U+JiBpbWFnZSkKK3sKKyAgICBpbWFnZS0+cmVtb3ZlQ2xpZW50KHRo
aXMpOworfQorCit2b2lkIERyYWdJbWFnZUxvYWRlcjo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdl
KiwgY29uc3QgSW50UmVjdCopCit7CisgICAgbV9jbGlwYm9hcmQtPnVwZGF0ZURyYWdJbWFnZSgp
OworfQorCitzdGF0aWMgRHJhZ09wZXJhdGlvbiBkcmFnT3BGcm9tSUVPcChjb25zdCBTdHJpbmcm
IG9wZXJhdGlvbikKK3sKKyAgICBpZiAob3BlcmF0aW9uID09ICJ1bmluaXRpYWxpemVkIikKKyAg
ICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25FdmVyeTsKKyAgICBpZiAob3BlcmF0aW9uID09ICJu
b25lIikKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Ob25lOworICAgIGlmIChvcGVyYXRp
b24gPT0gImNvcHkiKQorICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkNvcHk7CisgICAgaWYg
KG9wZXJhdGlvbiA9PSAibGluayIpCisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTGluazsK
KyAgICBpZiAob3BlcmF0aW9uID09ICJtb3ZlIikKKyAgICAgICAgcmV0dXJuIChEcmFnT3BlcmF0
aW9uKShEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICBpZiAo
b3BlcmF0aW9uID09ICJjb3B5TGluayIpCisgICAgICAgIHJldHVybiAoRHJhZ09wZXJhdGlvbiko
RHJhZ09wZXJhdGlvbkNvcHkgfCBEcmFnT3BlcmF0aW9uTGluayk7CisgICAgaWYgKG9wZXJhdGlv
biA9PSAiY29weU1vdmUiKQorICAgICAgICByZXR1cm4gKERyYWdPcGVyYXRpb24pKERyYWdPcGVy
YXRpb25Db3B5IHwgRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7Cisg
ICAgaWYgKG9wZXJhdGlvbiA9PSAibGlua01vdmUiKQorICAgICAgICByZXR1cm4gKERyYWdPcGVy
YXRpb24pKERyYWdPcGVyYXRpb25MaW5rIHwgRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3Bl
cmF0aW9uTW92ZSk7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiYWxsIikKKyAgICAgICAgcmV0dXJu
IERyYWdPcGVyYXRpb25FdmVyeTsKKyAgICByZXR1cm4gRHJhZ09wZXJhdGlvblByaXZhdGU7IC8v
IHJlYWxseSBhIG1hcmtlciBmb3IgIm5vIGNvbnZlcnNpb24iCit9CisKK3N0YXRpYyBjb25zdCBj
aGFyKiBJRU9wRnJvbURyYWdPcChEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKK3sKKyAgICBib29s
IGlzR2VuZXJpY01vdmUgPSBvcGVyYXRpb24gJiAoRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFn
T3BlcmF0aW9uTW92ZSk7CisKKyAgICBpZiAoKGlzR2VuZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAm
IERyYWdPcGVyYXRpb25Db3B5KSAmJiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkxpbmspKSB8
fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkV2ZXJ5KQorICAgICAgICByZXR1cm4gImFsbCI7
CisgICAgaWYgKGlzR2VuZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5
KSkKKyAgICAgICAgcmV0dXJuICJjb3B5TW92ZSI7CisgICAgaWYgKGlzR2VuZXJpY01vdmUgJiYg
KG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICAgICAgcmV0dXJuICJsaW5rTW92
ZSI7CisgICAgaWYgKChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uQ29weSkgJiYgKG9wZXJhdGlv
biAmIERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICAgICAgcmV0dXJuICJjb3B5TGluayI7CisgICAg
aWYgKGlzR2VuZXJpY01vdmUpCisgICAgICAgIHJldHVybiAibW92ZSI7CisgICAgaWYgKG9wZXJh
dGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KQorICAgICAgICByZXR1cm4gImNvcHkiOworICAgIGlm
IChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykKKyAgICAgICAgcmV0dXJuICJsaW5rIjsK
KyAgICByZXR1cm4gIm5vbmUiOworfQorCitEcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6c291cmNl
T3BlcmF0aW9uKCkgY29uc3QKK3sKKyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdP
cEZyb21JRU9wKG1fZWZmZWN0QWxsb3dlZCk7CisgICAgQVNTRVJUKG9wZXJhdGlvbiAhPSBEcmFn
T3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgcmV0dXJuIG9wZXJhdGlvbjsKK30KKworRHJhZ09wZXJh
dGlvbiBDbGlwYm9hcmQ6OmRlc3RpbmF0aW9uT3BlcmF0aW9uKCkgY29uc3QKK3sKKyAgICBEcmFn
T3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9wKG1fZHJvcEVmZmVjdCk7CisgICAg
QVNTRVJUKG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uQ29weSB8fCBvcGVyYXRpb24gPT0gRHJh
Z09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25MaW5rIHx8IG9wZXJh
dGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0
aW9uTW92ZSkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25FdmVyeSk7CisgICAgcmV0dXJu
IG9wZXJhdGlvbjsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldFNvdXJjZU9wZXJhdGlvbihEcmFn
T3BlcmF0aW9uIG9wZXJhdGlvbikKK3sKKyAgICBBU1NFUlRfQVJHKG9wZXJhdGlvbiwgb3BlcmF0
aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKKyAgICBtX2VmZmVjdEFsbG93ZWQgPSBJRU9w
RnJvbURyYWdPcChvcGVyYXRpb24pOworfQorCit2b2lkIENsaXBib2FyZDo6c2V0RGVzdGluYXRp
b25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7CisgICAgQVNTRVJUX0FSRyhv
cGVyYXRpb24sIG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uQ29weSB8fCBvcGVyYXRpb24gPT0g
RHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25MaW5rIHx8IG9w
ZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJh
dGlvbk1vdmUgfHwgb3BlcmF0aW9uID09IChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uR2Vu
ZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKSk7CisgICAgbV9kcm9wRWZmZWN0ID0gSUVPcEZyb21E
cmFnT3Aob3BlcmF0aW9uKTsKK30KKworU3RyaW5nIENsaXBib2FyZDo6ZHJvcEVmZmVjdCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZHJvcEVmZmVjdCA9PSAidW5pbml0aWFsaXplZCIgPyBBU0NJ
SUxpdGVyYWwoIm5vbmUiKSA6IG1fZHJvcEVmZmVjdDsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNl
dERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJiBlZmZlY3QpCit7CisgICAgaWYgKCFtX2ZvckRyYWcp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChlZmZlY3QgIT0gIm5vbmUiICYmIGVmZmVjdCAh
PSAiY29weSIgJiYgZWZmZWN0ICE9ICJsaW5rIiAmJiBlZmZlY3QgIT0gIm1vdmUiKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogVGhlIHNwZWMgYWxsb3dzIHRoaXMgaW4gYWxsIGNp
cmN1bXN0YW5jZXMuIFRoZXJlIGlzIHByb2JhYmx5IG5vIHZhbHVlCisgICAgLy8gaW4gaWdub3Jp
bmcgYXR0ZW1wdHMgdG8gY2hhbmdlIGl0LgorICAgIGlmICghY2FuUmVhZFR5cGVzKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZHJvcEVmZmVjdCA9IGVmZmVjdDsKK30KKworU3RyaW5nIENs
aXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWZmZWN0QWxs
b3dlZDsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5n
JiBlZmZlY3QpCit7CisgICAgaWYgKCFtX2ZvckRyYWcpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIElnbm9yZSBhbnkgYXR0ZW1wdHMgdG8gc2V0IGl0IHRvIGFuIHVua25vd24gdmFsdWUuCisg
ICAgaWYgKGRyYWdPcEZyb21JRU9wKGVmZmVjdCkgPT0gRHJhZ09wZXJhdGlvblByaXZhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghY2FuV3JpdGVEYXRhKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZWZmZWN0QWxsb3dlZCA9IGVmZmVjdDsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShEUkFHX1NVUFBPUlQpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXIuY3BwCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRl
ICJEYXRhVHJhbnNmZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2VDbGllbnQuaCIKQEAgLTQ0LDE4ICs0NCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBEcmFnSW1hZ2VMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZEltYWdlQ2xp
ZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmFnSW1hZ2VMb2FkZXIpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEcmFnSW1hZ2VMb2FkZXIo
Q2xpcGJvYXJkKik7CisgICAgZXhwbGljaXQgRHJhZ0ltYWdlTG9hZGVyKERhdGFUcmFuc2Zlciop
OwogICAgIHZvaWQgc3RhcnRMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdl
PiYpOwogICAgIHZvaWQgc3RvcExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1h
Z2U+Jik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJ
bWFnZSosIGNvbnN0IEludFJlY3QqKSBvdmVycmlkZTsKLSAgICBDbGlwYm9hcmQqIG1fY2xpcGJv
YXJkOworICAgIERhdGFUcmFuc2ZlciogbV9kYXRhVHJhbnNmZXI7CiB9OwogCiAjZW5kaWYKIAot
Q2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgUGFzc093
blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRUeXBlIHR5cGUsIGJvb2wgZm9y
RmlsZURyYWcpCitEYXRhVHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3kgcG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlw
ZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9saWN5KHBvbGljeSkKICAgICAsIG1fcGFz
dGVib2FyZChwYXN0ZWJvYXJkKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC03MiwxMiAr
NzIsMTIgQEAgQ2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saQogI2VuZGlm
CiB9CiAKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQorUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKERhdGFUcmFuc2ZlckFjY2Vz
c1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmQocG9s
aWN5LCBwb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUgPyBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2
YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgcG9saWN5ID09IERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeTo6V3JpdGFibGUgPyBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkgOiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkpOwogfQogCi1DbGlwYm9hcmQ6On5D
bGlwYm9hcmQoKQorRGF0YVRyYW5zZmVyOjp+RGF0YVRyYW5zZmVyKCkKIHsKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgIGlmIChtX2RyYWdJbWFnZUxvYWRlciAmJiBtX2RyYWdJbWFnZSkK
QEAgLTg1LDI5ICs4NSwyOSBAQCBDbGlwYm9hcmQ6On5DbGlwYm9hcmQoKQogI2VuZGlmCiB9CiAg
ICAgCi12b2lkIENsaXBib2FyZDo6c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZEFjY2Vzc1BvbGlj
eSBwb2xpY3kpCit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgLy8gT25jZSB0aGUgY2xpcGJvYXJkIGdvZXMg
bnVtYiwgaXQgY2FuIG5ldmVyIGdvIGJhY2suCi0gICAgQVNTRVJUKG1fcG9saWN5ICE9IENsaXBi
b2FyZE51bWIgfHwgcG9saWN5ID09IENsaXBib2FyZE51bWIpOworICAgIC8vIE9uY2UgdGhlIGRh
dGFUcmFuc2ZlciBnb2VzIG51bWIsIGl0IGNhbiBuZXZlciBnbyBiYWNrLgorICAgIEFTU0VSVCht
X3BvbGljeSAhPSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIgfHwgcG9saWN5ID09IERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7CiAgICAgbV9wb2xpY3kgPSBwb2xpY3k7CiB9
CiAKLWJvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkVHlwZXMoKSBjb25zdAorYm9vbCBEYXRhVHJhbnNm
ZXI6OmNhblJlYWRUeXBlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcG9saWN5ID09IENsaXBi
b2FyZFJlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFR5cGVzUmVhZGFibGUgfHwgbV9w
b2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7CisgICAgcmV0dXJuIG1fcG9saWN5ID09IERhdGFU
cmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5OjpUeXBlc1JlYWRhYmxlIHx8IG1fcG9saWN5ID09IERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeTo6V3JpdGFibGU7CiB9CiAKLWJvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkRGF0YSgp
IGNvbnN0Citib29sIERhdGFUcmFuc2Zlcjo6Y2FuUmVhZERhdGEoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3BvbGljeSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9h
cmRXcml0YWJsZTsKKyAgICByZXR1cm4gbV9wb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9s
aWN5OjpSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Oldy
aXRhYmxlOwogfQogCi1ib29sIENsaXBib2FyZDo6Y2FuV3JpdGVEYXRhKCkgY29uc3QKK2Jvb2wg
RGF0YVRyYW5zZmVyOjpjYW5Xcml0ZURhdGEoKSBjb25zdAogewotICAgIHJldHVybiBtX3BvbGlj
eSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKKyAgICByZXR1cm4gbV9wb2xpY3kgPT0gRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZTsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OmNsZWFyRGF0
YShjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIERhdGFUcmFuc2Zlcjo6Y2xlYXJEYXRhKGNvbnN0
IFN0cmluZyYgdHlwZSkKIHsKICAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQogICAgICAgICByZXR1
cm47CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBDbGlwYm9hcmQ6OmNsZWFyRGF0YShjb25zdCBT
dHJpbmcmIAogICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIodHlwZSk7CiB9CiAKLXZvaWQgQ2xpcGJv
YXJkOjpjbGVhckRhdGEoKQordm9pZCBEYXRhVHJhbnNmZXI6OmNsZWFyRGF0YSgpCiB7CiAgICAg
aWYgKCFjYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTIzLDcgKzEyMyw3IEBA
IHZvaWQgQ2xpcGJvYXJkOjpjbGVhckRhdGEoKQogICAgIG1fcGFzdGVib2FyZC0+Y2xlYXIoKTsK
IH0KIAotU3RyaW5nIENsaXBib2FyZDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0
CitTdHJpbmcgRGF0YVRyYW5zZmVyOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QK
IHsKICAgICBpZiAoIWNhblJlYWREYXRhKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKQEAg
LTEzNiw3ICsxMzYsNyBAQCBTdHJpbmcgQ2xpcGJvYXJkOjpnZXREYXRhKGNvbnN0IFN0cmluZyYg
CiAgICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+cmVhZFN0cmluZyh0eXBlKTsKIH0KIAotYm9vbCBD
bGlwYm9hcmQ6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEp
Citib29sIERhdGFUcmFuc2Zlcjo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZGF0YSkKIHsKICAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBDbGlwYm9hcmQ6OnNldERhdGEoY29uc3Qg
U3RyaW5nJiB0eQogICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPndyaXRlU3RyaW5nKHR5cGUsIGRh
dGEpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBDbGlwYm9hcmQ6OnR5cGVzKCkgY29uc3QKK1ZlY3Rv
cjxTdHJpbmc+IERhdGFUcmFuc2Zlcjo6dHlwZXMoKSBjb25zdAogewogICAgIGlmICghY2FuUmVh
ZFR5cGVzKCkpCiAgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwpAQCAtMTU3LDExICsx
NTcsMTEgQEAgVmVjdG9yPFN0cmluZz4gQ2xpcGJvYXJkOjp0eXBlcygpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcGFzdGVib2FyZC0+dHlwZXMoKTsKIH0KIAotUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xp
cGJvYXJkOjpmaWxlcygpIGNvbnN0CitQYXNzUmVmUHRyPEZpbGVMaXN0PiBEYXRhVHJhbnNmZXI6
OmZpbGVzKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2UgY291bGQgY2FjaGUgdGhlIGNvbXB1
dGVkIGZpbGUgbGlzdCBpZiBpdCB3YXMgbmVjZXNzYXJ5IGFuZCBoZWxwZnVsLgogICAgIC8vIEN1
cnJlbnRseSwgZWFjaCBhY2Nlc3MgZ2V0cyBhIG5ldyBjb3B5LCBhbmQgdGh1cyBzZXREYXRhKCkg
bW9kaWZpY2F0aW9ucyB0byB0aGUKLSAgICAvLyBjbGlwYm9hcmQgYXJlIG5vdCByZWZsZWN0ZWQg
aW4gYW55IEZpbGVMaXN0IG9iamVjdHMgdGhlIHBhZ2UgaGFzIGFjY2Vzc2VkIGFuZCBzdG9yZWQu
CisgICAgLy8gZGF0YVRyYW5zZmVyIGFyZSBub3QgcmVmbGVjdGVkIGluIGFueSBGaWxlTGlzdCBv
YmplY3RzIHRoZSBwYWdlIGhhcyBhY2Nlc3NlZCBhbmQgc3RvcmVkLgogCiAgICAgaWYgKCFjYW5S
ZWFkRGF0YSgpKQogICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOwpAQCAtMTgwLDUw
ICsxODAsNTAgQEAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkOjpmaWxlcygpIAogCiAj
aWYgIUVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLVN0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3Qo
KSBjb25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6ZHJvcEVmZmVjdCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9uZSIpOwogfQogCi12b2lkIENsaXBib2FyZDo6c2V0RHJv
cEVmZmVjdChjb25zdCBTdHJpbmcmKQordm9pZCBEYXRhVHJhbnNmZXI6OnNldERyb3BFZmZlY3Qo
Y29uc3QgU3RyaW5nJikKIHsKIH0KIAotU3RyaW5nIENsaXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgp
IGNvbnN0CitTdHJpbmcgRGF0YVRyYW5zZmVyOjplZmZlY3RBbGxvd2VkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1bmluaXRpYWxpemVkIik7CiB9CiAKLXZvaWQgQ2xpcGJv
YXJkOjpzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmluZyYpCit2b2lkIERhdGFUcmFuc2Zlcjo6
c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKQogewogfQogCi12b2lkIENsaXBib2FyZDo6
c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBpbnQsIGludCkKK3ZvaWQgRGF0YVRyYW5zZmVyOjpzZXRE
cmFnSW1hZ2UoRWxlbWVudCosIGludCwgaW50KQogewogfQogCiAjZWxzZQogCi1QYXNzUmVmUHRy
PENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmQoQ2xpcGJvYXJkV3JpdGFibGUsIFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCksIERyYWdBbmREcm9wKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0
YWJsZSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgRHJhZ0FuZERyb3ApKTsK
IH0KIAotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRh
KQorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSwgY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkKHBvbGljeSwgUGFz
dGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEpLCBEcmFnQW5kRHJvcCwgZHJh
Z0RhdGEuY29udGFpbnNGaWxlcygpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJh
bnNmZXIocG9saWN5LCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChkcmFnRGF0YSks
IERyYWdBbmREcm9wLCBkcmFnRGF0YS5jb250YWluc0ZpbGVzKCkpKTsKIH0KIAotYm9vbCBDbGlw
Ym9hcmQ6OmNhblNldERyYWdJbWFnZSgpIGNvbnN0Citib29sIERhdGFUcmFuc2Zlcjo6Y2FuU2V0
RHJhZ0ltYWdlKCkgY29uc3QKIHsKICAgICAvLyBOb3RlIHRoYXQgdGhlIHNwZWMgZG9lc24ndCBh
Y3R1YWxseSBhbGxvdyBkcmFnIGltYWdlIG1vZGlmaWNhdGlvbiBvdXRzaWRlIHRoZSBkcmFnc3Rh
cnQKICAgICAvLyBldmVudC4gVGhpcyBjYXBhYmlsaXR5IGlzIG1haW50YWluZWQgZm9yIGJhY2t3
YXJkcyBjb21wYXRpYmxpdHkgZm9yIHBvcnRzIHRoYXQgaGF2ZQogICAgIC8vIHN1cHBvcnRlZCB0
aGlzIGluIHRoZSBwYXN0LiBPbiBtYW55IHBvcnRzLCBhdHRlbXB0aW5nIHRvIHNldCBhIGRyYWcg
aW1hZ2Ugb3V0c2lkZSB0aGUKICAgICAvLyBkcmFnc3RhcnQgb3BlcmF0aW9uIGlzIGEgbm8tb3Ag
YW55d2F5LgotICAgIHJldHVybiBtX2ZvckRyYWcgJiYgKG1fcG9saWN5ID09IENsaXBib2FyZElt
YWdlV3JpdGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUpOworICAgIHJldHVy
biBtX2ZvckRyYWcgJiYgKG1fcG9saWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6SW1h
Z2VXcml0YWJsZSB8fCBtX3BvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRh
YmxlKTsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50
LCBpbnQgeCwgaW50IHkpCit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQq
IGVsZW1lbnQsIGludCB4LCBpbnQgeSkKIHsKICAgICBpZiAoIWNhblNldERyYWdJbWFnZSgpKQog
ICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBDbGlwYm9hcmQ6OnNldERy
YWdJbWFnZShFbGVtZW50KiBlbAogICAgIHVwZGF0ZURyYWdJbWFnZSgpOwogfQogCi12b2lkIENs
aXBib2FyZDo6dXBkYXRlRHJhZ0ltYWdlKCkKK3ZvaWQgRGF0YVRyYW5zZmVyOjp1cGRhdGVEcmFn
SW1hZ2UoKQogewogICAgIC8vIERvbid0IGFsbG93IHNldHRpbmcgdGhlIGltYWdlIGlmIHdlIGhh
dmVuJ3Qgc3RhcnRlZCBkcmFnZ2luZyB5ZXQ7IHdlJ2xsIHJlbHkgb24gdGhlIGRyYWdnaW5nIGNv
ZGUKICAgICAvLyB0byBpbnN0YWxsIHRoaXMgZHJhZyBpbWFnZSBhcyBwYXJ0IG9mIGdldHRpbmcg
dGhlIGRyYWcga2lja2VkIG9mZi4KQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIENsaXBib2FyZDo6
dXBkYXRlRHJhZ0ltYWdlKCkKIAogI2lmICFQTEFURk9STShDT0NPQSkKIAotRHJhZ0ltYWdlUmVm
IENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKK0Ry
YWdJbWFnZVJlZiBEYXRhVHJhbnNmZXI6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRp
b24pIGNvbnN0CiB7CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2NhdGlvbjsKIApAQCAtMjg1LDgg
KzI4NSw4IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSgKIAogI2Vu
ZGlmCiAKLURyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVyKENsaXBib2FyZCogY2xpcGJv
YXJkKQotICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQorRHJhZ0ltYWdlTG9hZGVyOjpEcmFn
SW1hZ2VMb2FkZXIoRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCisgICAgOiBtX2RhdGFUcmFu
c2ZlcihkYXRhVHJhbnNmZXIpCiB7CiB9CiAKQEAgLTMwMyw3ICszMDMsNyBAQCB2b2lkIERyYWdJ
bWFnZUxvYWRlcjo6c3RvcExvYWRpbmcoQ2FjaGVkCiAKIHZvaWQgRHJhZ0ltYWdlTG9hZGVyOjpp
bWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KikKIHsKLSAgICBtX2NsaXBi
b2FyZC0+dXBkYXRlRHJhZ0ltYWdlKCk7CisgICAgbV9kYXRhVHJhbnNmZXItPnVwZGF0ZURyYWdJ
bWFnZSgpOwogfQogCiBzdGF0aWMgRHJhZ09wZXJhdGlvbiBkcmFnT3BGcm9tSUVPcChjb25zdCBT
dHJpbmcmIG9wZXJhdGlvbikKQEAgLTM1MCwzOCArMzUwLDM4IEBAIHN0YXRpYyBjb25zdCBjaGFy
KiBJRU9wRnJvbURyYWdPcChEcmFnT3AKICAgICByZXR1cm4gIm5vbmUiOwogfQogCi1EcmFnT3Bl
cmF0aW9uIENsaXBib2FyZDo6c291cmNlT3BlcmF0aW9uKCkgY29uc3QKK0RyYWdPcGVyYXRpb24g
RGF0YVRyYW5zZmVyOjpzb3VyY2VPcGVyYXRpb24oKSBjb25zdAogewogICAgIERyYWdPcGVyYXRp
b24gb3BlcmF0aW9uID0gZHJhZ09wRnJvbUlFT3AobV9lZmZlY3RBbGxvd2VkKTsKICAgICBBU1NF
UlQob3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKICAgICByZXR1cm4gb3BlcmF0
aW9uOwogfQogCi1EcmFnT3BlcmF0aW9uIENsaXBib2FyZDo6ZGVzdGluYXRpb25PcGVyYXRpb24o
KSBjb25zdAorRHJhZ09wZXJhdGlvbiBEYXRhVHJhbnNmZXI6OmRlc3RpbmF0aW9uT3BlcmF0aW9u
KCkgY29uc3QKIHsKICAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9w
KG1fZHJvcEVmZmVjdCk7CiAgICAgQVNTRVJUKG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uQ29w
eSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERyYWdP
cGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlv
bkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRp
b25FdmVyeSk7CiAgICAgcmV0dXJuIG9wZXJhdGlvbjsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNl
dFNvdXJjZU9wZXJhdGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKK3ZvaWQgRGF0YVRyYW5z
ZmVyOjpzZXRTb3VyY2VPcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCiB7CiAgICAg
QVNTRVJUX0FSRyhvcGVyYXRpb24sIG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7
CiAgICAgbV9lZmZlY3RBbGxvd2VkID0gSUVPcEZyb21EcmFnT3Aob3BlcmF0aW9uKTsKIH0KIAot
dm9pZCBDbGlwYm9hcmQ6OnNldERlc3RpbmF0aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3Bl
cmF0aW9uKQordm9pZCBEYXRhVHJhbnNmZXI6OnNldERlc3RpbmF0aW9uT3BlcmF0aW9uKERyYWdP
cGVyYXRpb24gb3BlcmF0aW9uKQogewogICAgIEFTU0VSVF9BUkcob3BlcmF0aW9uLCBvcGVyYXRp
b24gPT0gRHJhZ09wZXJhdGlvbkNvcHkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Ob25l
IHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTGluayB8fCBvcGVyYXRpb24gPT0gRHJhZ09w
ZXJhdGlvbkdlbmVyaWMgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Nb3ZlIHx8IG9wZXJh
dGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0
aW9uTW92ZSkpOwogICAgIG1fZHJvcEVmZmVjdCA9IElFT3BGcm9tRHJhZ09wKG9wZXJhdGlvbik7
CiB9CiAKLVN0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3QoKSBjb25zdAorU3RyaW5nIERhdGFU
cmFuc2Zlcjo6ZHJvcEVmZmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZHJvcEVmZmVjdCA9
PSAidW5pbml0aWFsaXplZCIgPyBBU0NJSUxpdGVyYWwoIm5vbmUiKSA6IG1fZHJvcEVmZmVjdDsK
IH0KIAotdm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJiBlZmZlY3Qp
Cit2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmIGVmZmVjdCkK
IHsKICAgICBpZiAoIW1fZm9yRHJhZykKICAgICAgICAgcmV0dXJuOwpAQCAtMzk3LDEyICszOTcs
MTIgQEAgdm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaQogICAgIG1fZHJv
cEVmZmVjdCA9IGVmZmVjdDsKIH0KIAotU3RyaW5nIENsaXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgp
IGNvbnN0CitTdHJpbmcgRGF0YVRyYW5zZmVyOjplZmZlY3RBbGxvd2VkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9lZmZlY3RBbGxvd2VkOwogfQogCi12b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0
QWxsb3dlZChjb25zdCBTdHJpbmcmIGVmZmVjdCkKK3ZvaWQgRGF0YVRyYW5zZmVyOjpzZXRFZmZl
Y3RBbGxvd2VkKGNvbnN0IFN0cmluZyYgZWZmZWN0KQogewogICAgIGlmICghbV9mb3JEcmFnKQog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCShyZXZpc2lv
biAxNjY4NzMpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaDoxNjY4NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bw
b3N0LmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMSBUb2JpYXMgQW50b24gKGFudG9uQHN0dWQu
ZmJpLmZoLWRhcm1zdGFkdC5kZSkKKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vpbmln
IChzYW0ud2VpbmlnQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIENsaXBib2FyZF9oCisjZGVmaW5lIENsaXBib2FyZF9oCisKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgor
I2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisjaW5jbHVk
ZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBD
YWNoZWRJbWFnZTsKKyAgICBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtTGlzdDsKKyAgICBjbGFzcyBE
cmFnRGF0YTsKKyAgICBjbGFzcyBEcmFnSW1hZ2VMb2FkZXI7CisgICAgY2xhc3MgRWxlbWVudDsK
KyAgICBjbGFzcyBGaWxlTGlzdDsKKyAgICBjbGFzcyBQYXN0ZWJvYXJkOworCisgICAgY2xhc3Mg
Q2xpcGJvYXJkIDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpcGJvYXJkPiB7CisgICAgcHVibGljOgor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNyZWF0ZUZvckNvcHlBbmRQYXN0
ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworCisgICAgICAgIH5DbGlwYm9hcmQoKTsKKworICAg
ICAgICBTdHJpbmcgZHJvcEVmZmVjdCgpIGNvbnN0OworICAgICAgICB2b2lkIHNldERyb3BFZmZl
Y3QoY29uc3QgU3RyaW5nJik7CisKKyAgICAgICAgU3RyaW5nIGVmZmVjdEFsbG93ZWQoKSBjb25z
dDsKKyAgICAgICAgdm9pZCBzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmluZyYpOworCisgICAg
ICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisKKyAgICAgICAgUGFzc1JlZlB0cjxG
aWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKKworICAgICAgICB2b2lkIGNsZWFyRGF0YShjb25zdCBT
dHJpbmcmIHR5cGUpOworICAgICAgICB2b2lkIGNsZWFyRGF0YSgpOworCisgICAgICAgIFN0cmlu
ZyBnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CisKKyAgICAgICAgYm9vbCBzZXRE
YXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKworICAgICAgICB2
b2lkIHNldERyYWdJbWFnZShFbGVtZW50KiwgaW50IHgsIGludCB5KTsKKworI2lmIEVOQUJMRShE
QVRBX1RSQU5TRkVSX0lURU1TKQorICAgICAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1M
aXN0PiBpdGVtcygpID0gMDsKKyNlbmRpZgorCisgICAgICAgIHZvaWQgc2V0QWNjZXNzUG9saWN5
KENsaXBib2FyZEFjY2Vzc1BvbGljeSk7CisgICAgICAgIGJvb2wgY2FuUmVhZFR5cGVzKCkgY29u
c3Q7CisgICAgICAgIGJvb2wgY2FuUmVhZERhdGEoKSBjb25zdDsKKyAgICAgICAgYm9vbCBjYW5X
cml0ZURhdGEoKSBjb25zdDsKKworICAgICAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKCkgeyBy
ZXR1cm4gKm1fcGFzdGVib2FyZDsgfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9w
KENsaXBib2FyZEFjY2Vzc1BvbGljeSwgY29uc3QgRHJhZ0RhdGEmKTsKKworICAgICAgICBib29s
IGRyb3BFZmZlY3RJc1VuaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2Ryb3BFZmZlY3Qg
PT0gInVuaW5pdGlhbGl6ZWQiOyB9CisKKyAgICAgICAgRHJhZ09wZXJhdGlvbiBzb3VyY2VPcGVy
YXRpb24oKSBjb25zdDsKKyAgICAgICAgRHJhZ09wZXJhdGlvbiBkZXN0aW5hdGlvbk9wZXJhdGlv
bigpIGNvbnN0OworICAgICAgICB2b2lkIHNldFNvdXJjZU9wZXJhdGlvbihEcmFnT3BlcmF0aW9u
KTsKKyAgICAgICAgdm9pZCBzZXREZXN0aW5hdGlvbk9wZXJhdGlvbihEcmFnT3BlcmF0aW9uKTsK
KworICAgICAgICB2b2lkIHNldERyYWdIYXNTdGFydGVkKCkgeyBtX3Nob3VsZFVwZGF0ZURyYWdJ
bWFnZSA9IHRydWU7IH0KKyAgICAgICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZShJbnRQ
b2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdDsKKyAgICAgICAgdm9pZCB1cGRhdGVEcmFnSW1hZ2Uo
KTsKKyNlbmRpZgorCisgICAgcHJpdmF0ZToKKyAgICAgICAgZW51bSBDbGlwYm9hcmRUeXBlIHsg
Q29weUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OworICAgICAgICBDbGlwYm9hcmQoQ2xpcGJvYXJk
QWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBDbGlwYm9hcmRUeXBlID0gQ29w
eUFuZFBhc3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOworCisjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKKyAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKKyNlbmRpZgor
CisgICAgICAgIENsaXBib2FyZEFjY2Vzc1BvbGljeSBtX3BvbGljeTsKKyAgICAgICAgT3duUHRy
PFBhc3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisg
ICAgICAgIGJvb2wgbV9mb3JEcmFnOworICAgICAgICBib29sIG1fZm9yRmlsZURyYWc7CisgICAg
ICAgIFN0cmluZyBtX2Ryb3BFZmZlY3Q7CisgICAgICAgIFN0cmluZyBtX2VmZmVjdEFsbG93ZWQ7
CisgICAgICAgIGJvb2wgbV9zaG91bGRVcGRhdGVEcmFnSW1hZ2U7CisgICAgICAgIEludFBvaW50
IG1fZHJhZ0xvY2F0aW9uOworICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gbV9kcmFnSW1hZ2U7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBtX2RyYWdJbWFnZUVsZW1l
bnQ7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmFnSW1hZ2VMb2FkZXI+IG1fZHJhZ0ltYWdl
TG9hZGVyOworI2VuZGlmCisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gQ2xpcGJvYXJkX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJKHdvcmtp
bmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjEsMTEgKzIxLDExIEBACiAgKgogICovCiAKLSNpZm5kZWYgQ2xpcGJvYXJkX2gK
LSNkZWZpbmUgQ2xpcGJvYXJkX2gKKyNpZm5kZWYgRGF0YVRyYW5zZmVyX2gKKyNkZWZpbmUgRGF0
YVRyYW5zZmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVk
ZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5LmgiCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2Uu
aCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgpAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBGaWxlTGlzdDsKICAgICBjbGFzcyBQYXN0ZWJvYXJkOwogCi0g
ICAgY2xhc3MgQ2xpcGJvYXJkIDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpcGJvYXJkPiB7CisgICAg
Y2xhc3MgRGF0YVRyYW5zZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVyPiB7CiAg
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZShEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3kpOwogCi0gICAgICAgIH5DbGlwYm9hcmQoKTsKKyAgICAgICAgfkRhdGFUcmFu
c2ZlcigpOwogCiAgICAgICAgIFN0cmluZyBkcm9wRWZmZWN0KCkgY29uc3Q7CiAgICAgICAgIHZv
aWQgc2V0RHJvcEVmZmVjdChjb25zdCBTdHJpbmcmKTsKQEAgLTcxLDcgKzcxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBp
dGVtcygpID0gMDsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0QWNjZXNzUG9saWN5KENsaXBi
b2FyZEFjY2Vzc1BvbGljeSk7CisgICAgICAgIHZvaWQgc2V0QWNjZXNzUG9saWN5KERhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeSk7CiAgICAgICAgIGJvb2wgY2FuUmVhZFR5cGVzKCkgY29uc3Q7CiAg
ICAgICAgIGJvb2wgY2FuUmVhZERhdGEoKSBjb25zdDsKICAgICAgICAgYm9vbCBjYW5Xcml0ZURh
dGEoKSBjb25zdDsKQEAgLTc5LDggKzc5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKCkgeyByZXR1cm4gKm1fcGFzdGVib2FyZDsgfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJv
YXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgY29u
c3QgRHJhZ0RhdGEmKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBj
cmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSwgY29u
c3QgRHJhZ0RhdGEmKTsKIAogICAgICAgICBib29sIGRyb3BFZmZlY3RJc1VuaW5pdGlhbGl6ZWQo
KSBjb25zdCB7IHJldHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6ZWQiOyB9CiAKQEAg
LTk1LDE0ICs5NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIGVudW0gQ2xpcGJvYXJkVHlwZSB7IENvcHlBbmRQYXN0ZSwgRHJhZ0FuZERy
b3AgfTsKLSAgICAgICAgQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgUGFzc093blB0
cjxQYXN0ZWJvYXJkPiwgQ2xpcGJvYXJkVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBmb3JGaWxl
RHJhZyA9IGZhbHNlKTsKKyAgICAgICAgZW51bSBUeXBlIHsgQ29weUFuZFBhc3RlLCBEcmFnQW5k
RHJvcCB9OworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBhc3RlLCBib29sIGZvckZpbGVE
cmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgYm9vbCBj
YW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCi0gICAgICAgIENsaXBib2FyZEFjY2Vz
c1BvbGljeSBtX3BvbGljeTsKKyAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IG1fcG9s
aWN5OwogICAgICAgICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKQEAgLTEyMCw0ICsxMjAsNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIENsaXBib2FyZF9oCisjZW5k
aWYgLy8gRGF0YVRyYW5zZmVyX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaWRs
CShyZXZpc2lvbiAxNjY4NzMpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRs
OjE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAorXSBpbnRl
cmZhY2UgQ2xpcGJvYXJkIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRyb3BFZmZlY3Q7Cisg
ICAgYXR0cmlidXRlIERPTVN0cmluZyBlZmZlY3RBbGxvd2VkOworCisgICAgW0N1c3RvbUdldHRl
cl0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5IHR5cGVzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBGaWxlTGlzdCBmaWxlczsKKworICAgIHZvaWQgY2xlYXJEYXRhKG9wdGlvbmFsIERPTVN0cmlu
ZyB0eXBlKTsKKyAgICBET01TdHJpbmcgZ2V0RGF0YShET01TdHJpbmcgdHlwZSk7CisgICAgYm9v
bGVhbiBzZXREYXRhKERPTVN0cmluZyB0eXBlLCBET01TdHJpbmcgZGF0YSk7CisgICAgdm9pZCBz
ZXREcmFnSW1hZ2UoRWxlbWVudCBpbWFnZSwgbG9uZyB4LCBsb25nIHkpOworCisgICAgW0NvbmRp
dGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhVHJhbnNm
ZXJJdGVtTGlzdCBpdGVtczsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmlk
bAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIFNraXBWVGFibGVWYWxp
ZGF0aW9uLAotXSBpbnRlcmZhY2UgQ2xpcGJvYXJkIHsKK10gaW50ZXJmYWNlIERhdGFUcmFuc2Zl
ciB7CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBkcm9wRWZmZWN0OwogICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2ZlckFjY2Vzc1BvbGljeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaAkocmV2aXNpb24gMTY2ODczKQkoZnJvbSBTb3VyY2Uv
V2ViQ29yZS9kb20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5Lmg6MTY2ODczKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisgCisjaWZuZGVmIENsaXBib2FyZEFjY2Vzc1BvbGljeV9oCisjZGVmaW5lIENsaXBib2FyZEFj
Y2Vzc1BvbGljeV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBDbGlwYm9hcmRBY2Nl
c3NQb2xpY3kgeworICAgIENsaXBib2FyZE51bWIsIENsaXBib2FyZEltYWdlV3JpdGFibGUsIENs
aXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmRUeXBlc1JlYWRhYmxlLCBDbGlwYm9hcmRSZWFkYWJs
ZQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDE0ICsyMiwxNCBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAq
LwotIAotI2lmbmRlZiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3lfaAotI2RlZmluZSBDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3lfaAorCisjaWZuZGVmIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeV9oCisjZGVm
aW5lIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeV9oCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgewotICAgIENsaXBib2FyZE51bWIsIENsaXBib2Fy
ZEltYWdlV3JpdGFibGUsIENsaXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmRUeXBlc1JlYWRhYmxl
LCBDbGlwYm9hcmRSZWFkYWJsZQorZW51bSBjbGFzcyBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kg
eworICAgIE51bWIsIEltYWdlV3JpdGFibGUsIFdyaXRhYmxlLCBUeXBlc1JlYWRhYmxlLCBSZWFk
YWJsZQogfTsKIAogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtTGlzdC5oCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaXBib2FyZDsKIGNsYXNzIEZpbGU7
CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJNYWMubW0JKHJldmlzaW9uIDE2Njg3MykJKGZyb20gU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZE1hYy5tbToxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDbGlwYm9hcmQuaCIKKworI2ltcG9y
dCAiQ2FjaGVkSW1hZ2UuaCIKKyNpbXBvcnQgIkVsZW1lbnQuaCIKKyNpbXBvcnQgIkRyYWdJbWFn
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEZJWE1FOiBOZWVkIHRvIHJlZmFjdG9y
IGFuZCBmaWd1cmUgb3V0IGhvdyB0byBoYW5kbGUgdGhlIGZsaXBwaW5nIGluIGEgbW9yZSBzZW5z
aWJsZSB3YXkgc28gd2UgY2FuCisvLyB1c2UgdGhlIGRlZmF1bHQgQ2xpcGJvYXJkOjpkcmFnSW1h
Z2UgZnJvbSBDbGlwYm9hcmQuY3BwLiBOb3RlIGFsc28gdGhhdCB0aGlzIGhhbmRsZXMgY2FzZXMg
dGhhdAorLy8gQ2xpcGJvYXJkOjpkcmFnSW1hZ2UgaW4gQ2xpcGJvYXJkLmNwcCBkb2VzIG5vdCBo
YW5kbGUgY29ycmVjdGx5LCBzbyBtdXN0IHJlc29sdmUgdGhhdCBhcyB3ZWxsLgorRHJhZ0ltYWdl
UmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QK
K3sKKyAgICBEcmFnSW1hZ2VSZWYgcmVzdWx0ID0gbmlsOworICAgIGlmIChtX2RyYWdJbWFnZUVs
ZW1lbnQpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZHJhZ0ltYWdlRWxlbWVudC0+
ZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgICAgICBJbnRSZWN0IGltYWdlUmVjdDsKKyAg
ICAgICAgICAgIEludFJlY3QgZWxlbWVudFJlY3Q7CisgICAgICAgICAgICByZXN1bHQgPSBjcmVh
dGVEcmFnSW1hZ2VGb3JJbWFnZSgqZnJhbWUsICptX2RyYWdJbWFnZUVsZW1lbnQsIGltYWdlUmVj
dCwgZWxlbWVudFJlY3QpOworICAgICAgICAgICAgLy8gQ2xpZW50IHNwZWNpZmllcyBwb2ludCBy
ZWxhdGl2ZSB0byBlbGVtZW50LCBub3QgdGhlIHdob2xlIGltYWdlLCB3aGljaCBtYXkgaW5jbHVk
ZSBjaGlsZAorICAgICAgICAgICAgLy8gbGF5ZXJzIHNwcmVhZCBvdXQgYWxsIG92ZXIgdGhlIHBs
YWNlLgorICAgICAgICAgICAgbG9jYXRpb24uc2V0WChlbGVtZW50UmVjdC54KCkgLSBpbWFnZVJl
Y3QueCgpICsgbV9kcmFnTG9jYXRpb24ueCgpKTsKKyAgICAgICAgICAgIGxvY2F0aW9uLnNldFko
aW1hZ2VSZWN0LmhlaWdodCgpIC0gKGVsZW1lbnRSZWN0LnkoKSAtIGltYWdlUmVjdC55KCkgKyBt
X2RyYWdMb2NhdGlvbi55KCkpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobV9kcmFnSW1h
Z2UpIHsKKyAgICAgICAgcmVzdWx0ID0gbV9kcmFnSW1hZ2UtPmltYWdlKCktPmdldE5TSW1hZ2Uo
KTsKKyAgICAgICAgCisgICAgICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jYXRpb247CisgICAgICAg
IGxvY2F0aW9uLnNldFkoW3Jlc3VsdCBzaXplXS5oZWlnaHQgLSBsb2NhdGlvbi55KCkpOworICAg
IH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJNYWMubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAj
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkNsaXBib2FyZC5oIgorI2ltcG9ydCAiRGF0YVRy
YW5zZmVyLmgiCiAKICNpbXBvcnQgIkNhY2hlZEltYWdlLmgiCiAjaW1wb3J0ICJFbGVtZW50Lmgi
CkBAIC0zMyw5ICszMyw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBOZWVk
IHRvIHJlZmFjdG9yIGFuZCBmaWd1cmUgb3V0IGhvdyB0byBoYW5kbGUgdGhlIGZsaXBwaW5nIGlu
IGEgbW9yZSBzZW5zaWJsZSB3YXkgc28gd2UgY2FuCi0vLyB1c2UgdGhlIGRlZmF1bHQgQ2xpcGJv
YXJkOjpkcmFnSW1hZ2UgZnJvbSBDbGlwYm9hcmQuY3BwLiBOb3RlIGFsc28gdGhhdCB0aGlzIGhh
bmRsZXMgY2FzZXMgdGhhdAotLy8gQ2xpcGJvYXJkOjpkcmFnSW1hZ2UgaW4gQ2xpcGJvYXJkLmNw
cCBkb2VzIG5vdCBoYW5kbGUgY29ycmVjdGx5LCBzbyBtdXN0IHJlc29sdmUgdGhhdCBhcyB3ZWxs
LgotRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2Nh
dGlvbikgY29uc3QKKy8vIHVzZSB0aGUgZGVmYXVsdCBEYXRhVHJhbnNmZXI6OmRyYWdJbWFnZSBm
cm9tIERhdGFUcmFuc2Zlci5jcHAuIE5vdGUgYWxzbyB0aGF0IHRoaXMgaGFuZGxlcyBjYXNlcyB0
aGF0CisvLyBEYXRhVHJhbnNmZXI6OmRyYWdJbWFnZSBpbiBEYXRhVHJhbnNmZXIuY3BwIGRvZXMg
bm90IGhhbmRsZSBjb3JyZWN0bHksIHNvIG11c3QgcmVzb2x2ZSB0aGF0IGFzIHdlbGwuCitEcmFn
SW1hZ2VSZWYgRGF0YVRyYW5zZmVyOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9u
KSBjb25zdAogewogICAgIERyYWdJbWFnZVJlZiByZXN1bHQgPSBuaWw7CiAgICAgaWYgKG1fZHJh
Z0ltYWdlRWxlbWVudCkgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgJKHJldmlzaW9uIDE2Njg3MykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2xpcGJvYXJkOworY2xhc3MgRGF0
YVRyYW5zZmVyOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBIVE1MSUZyYW1lRWxlbWVudDsK
IApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGxlZ2FjeVJldHVyblZhbHVl
KCkgY29uc3QgeyByZXR1cm4gIWRlZmF1bHRQcmV2ZW50ZWQoKTsgfQogICAgIHZvaWQgc2V0TGVn
YWN5UmV0dXJuVmFsdWUoYm9vbCByZXR1cm5WYWx1ZSkgeyBzZXREZWZhdWx0UHJldmVudGVkKCFy
ZXR1cm5WYWx1ZSk7IH0KIAotICAgIENsaXBib2FyZCogY2xpcGJvYXJkRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIGlzQ2xpcGJvYXJkRXZlbnQoKSA/IGNsaXBib2FyZCgpIDogMDsgfQorICAgIERhdGFU
cmFuc2ZlciogY2xpcGJvYXJkRGF0YSgpIGNvbnN0IHsgcmV0dXJuIGlzQ2xpcGJvYXJkRXZlbnQo
KSA/IGludGVybmFsRGF0YVRyYW5zZmVyKCkgOiAwOyB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Q7CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBwdWJs
aWM6CiAgICAgRXZlbnQqIHVuZGVybHlpbmdFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5kZXJs
eWluZ0V2ZW50LmdldCgpOyB9CiAgICAgdm9pZCBzZXRVbmRlcmx5aW5nRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4pOwogCi0gICAgdmlydHVhbCBDbGlwYm9hcmQqIGNsaXBib2FyZCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIERhdGFUcmFuc2ZlciogaW50ZXJuYWxEYXRhVHJhbnNm
ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICBib29sIGlzQmVpbmdEaXNwYXRjaGVkKCkg
Y29uc3QgeyByZXR1cm4gZXZlbnRQaGFzZSgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAko
cmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQAogICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgIGNhbmNlbEJ1YmJsZTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDbGlwYm9hcmQgICAgICAgIGNsaXBib2FyZERhdGE7CisgICAgW0N1c3RvbV0gcmVhZG9ubHkg
YXR0cmlidXRlIERhdGFUcmFuc2ZlciAgICAgICAgY2xpcGJvYXJkRGF0YTsKICNlbmRpZgogCiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkocmV2aXNpb24gMTY2ODczKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3
ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
Ci0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCkBAIC05MiwxNCArOTIsMTQgQEAgUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdAogICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKICAg
ICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXks
IHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwKLSAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxh
dGVkVGFyZ2V0LCBQYXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkLCBib29sIGlzU2ltdWxh
dGVkKQorICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIsIGJvb2wgaXNTaW11bGF0ZWQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJs
ZSwgdGltZXN0YW1wLCB2aWV3LAogICAgICAgICBkZXRhaWwsIHNjcmVlblgsIHNjcmVlblksIHBh
Z2VYLCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBtb3ZlbWVudFgs
IG1vdmVtZW50WSwKICNlbmRpZgotICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBt
ZXRhS2V5LCBidXR0b24sIHJlbGF0ZWRUYXJnZXQsIGNsaXBib2FyZCwgaXNTaW11bGF0ZWQpKTsK
KyAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgYnV0dG9uLCByZWxh
dGVkVGFyZ2V0LCBkYXRhVHJhbnNmZXIsIGlzU2ltdWxhdGVkKSk7CiB9CiAKIE1vdXNlRXZlbnQ6
Ok1vdXNlRXZlbnQoKQpAQCAtMTE1LDcgKzExNSw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW4KICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksCiAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgUGFzc1JlZlB0cjxFdmVudFRh
cmdldD4gcmVsYXRlZFRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IGNsaXBib2FyZCwgYm9vbCBpc1NpbXVsYXRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciwgYm9vbCBpc1NpbXVs
YXRlZCkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5j
ZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsIGRldGFpbCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVu
WSksCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChwYWdlWCwgcGFnZVkpLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC0xMjUsNyArMTI1LDcgQEAgTW91c2VFdmVudDo6TW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbgogICAgICwgbV9idXR0b24oYnV0dG9uID09ICh1bnNp
Z25lZCBzaG9ydCktMSA/IDAgOiBidXR0b24pCiAgICAgLCBtX2J1dHRvbkRvd24oYnV0dG9uICE9
ICh1bnNpZ25lZCBzaG9ydCktMSkKICAgICAsIG1fcmVsYXRlZFRhcmdldChyZWxhdGVkVGFyZ2V0
KQotICAgICwgbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQorICAgICwgbV9kYXRhVHJhbnNmZXIoZGF0
YVRyYW5zZmVyKQogewogfQogCkBAIC0xMzksNyArMTM5LDcgQEAgTW91c2VFdmVudDo6TW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbgogICAgICwgbV9idXR0b24oaW5pdGlhbGl6ZXIuYnV0dG9u
ID09ICh1bnNpZ25lZCBzaG9ydCktMSA/IDAgOiBpbml0aWFsaXplci5idXR0b24pCiAgICAgLCBt
X2J1dHRvbkRvd24oaW5pdGlhbGl6ZXIuYnV0dG9uICE9ICh1bnNpZ25lZCBzaG9ydCktMSkKICAg
ICAsIG1fcmVsYXRlZFRhcmdldChpbml0aWFsaXplci5yZWxhdGVkVGFyZ2V0KQotICAgICwgbV9j
bGlwYm9hcmQoMCAvKiBjbGlwYm9hcmQgKi8pCisgICAgLCBtX2RhdGFUcmFuc2ZlcigwIC8qIGRh
dGFUcmFuc2ZlciAqLykKIHsKICAgICBpbml0Q29vcmRpbmF0ZXMoSW50UG9pbnQoaW5pdGlhbGl6
ZXIuY2xpZW50WCwgaW5pdGlhbGl6ZXIuY2xpZW50WSkpOwogfQpAQCAtMTcwLDcgKzE3MCw3IEBA
IHZvaWQgTW91c2VFdmVudDo6aW5pdE1vdXNlRXZlbnQoY29uc3QgQXQKICAgICBpbml0Q29vcmRp
bmF0ZXMoSW50UG9pbnQoY2xpZW50WCwgY2xpZW50WSkpOwogCiAgICAgLy8gRklYTUU6IG1faXNT
aW11bGF0ZWQgaXMgbm90IHNldCB0byBmYWxzZSBoZXJlLgotICAgIC8vIEZJWE1FOiBtX2NsaXBi
b2FyZCBpcyBub3Qgc2V0IHRvIDAgaGVyZS4KKyAgICAvLyBGSVhNRTogbV9kYXRhVHJhbnNmZXIg
aXMgbm90IHNldCB0byAwIGhlcmUuCiB9CiAKIEV2ZW50SW50ZXJmYWNlIE1vdXNlRXZlbnQ6OmV2
ZW50SW50ZXJmYWNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkocmV2aXNp
b24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENs
aXBib2FyZDsKK2NsYXNzIERhdGFUcmFuc2ZlcjsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsK
IAogc3RydWN0IE1vdXNlRXZlbnRJbml0IDogcHVibGljIFVJRXZlbnRJbml0IHsKQEAgLTY3LDcg
KzY3LDcgQEAgcHVibGljOgogICAgICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAog
I2VuZGlmCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXks
IGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAotICAgICAgICBQYXNzUmVmUHRy
PEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBQYXNzUmVmUHRyPENsaXBib2FyZD4sIGJvb2wg
aXNTaW11bGF0ZWQgPSBmYWxzZSk7CisgICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJl
bGF0ZWRUYXJnZXQsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiwgYm9vbCBpc1NpbXVsYXRlZCA9
IGZhbHNlKTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBpbnQgZGV0YWlsLCBQYXNzUmVmUHRyPE5vZGU+IHJlbGF0
ZWRUYXJnZXQpOwogCkBAIC04NywxMiArODcsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBt
X3JlbGF0ZWRUYXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJlbGF0ZWRUYXJnZXQoUGFzc1Jl
ZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkgeyBtX3JlbGF0ZWRUYXJnZXQgPSByZWxh
dGVkVGFyZ2V0OyB9CiAKLSAgICBDbGlwYm9hcmQqIGNsaXBib2FyZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY2xpcGJvYXJkLmdldCgpOyB9CiAKICAgICBOb2RlKiB0b0VsZW1lbnQoKSBj
b25zdDsKICAgICBOb2RlKiBmcm9tRWxlbWVudCgpIGNvbnN0OwogCi0gICAgQ2xpcGJvYXJkKiBk
YXRhVHJhbnNmZXIoKSBjb25zdCB7IHJldHVybiBpc0RyYWdFdmVudCgpID8gbV9jbGlwYm9hcmQu
Z2V0KCkgOiAwOyB9CisgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgbWVyZ2Vk
IGlmIG1fZGF0YVRyYW5zZmVyIGlzIG9ubHkgaW5pdGlhbGl6ZWQgZm9yIGRyYWcgZXZlbnRzLgor
ICAgIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKCkgY29uc3QgeyByZXR1cm4gaXNEcmFnRXZl
bnQoKSA/IG1fZGF0YVRyYW5zZmVyLmdldCgpIDogMDsgfQorICAgIHZpcnR1YWwgRGF0YVRyYW5z
ZmVyKiBpbnRlcm5hbERhdGFUcmFuc2ZlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGF0
YVRyYW5zZmVyLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTEwOSw3ICsxMTAsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKICAgICAgICAg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1
bnNpZ25lZCBzaG9ydCBidXR0b24sCi0gICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJl
bGF0ZWRUYXJnZXQsIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgYm9vbCBpc1NpbXVsYXRlZCk7Cisg
ICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVyPiwgYm9vbCBpc1NpbXVsYXRlZCk7CiAKICAgICBNb3VzZUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91c2VFdmVudEluaXQmKTsKIApAQCAtMTE5LDcg
KzEyMCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV9idXR0b247CiAgICAgYm9v
bCBtX2J1dHRvbkRvd247CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3JlbGF0ZWRUYXJnZXQ7
Ci0gICAgUmVmUHRyPENsaXBib2FyZD4gbV9jbGlwYm9hcmQ7CisgICAgUmVmUHRyPERhdGFUcmFu
c2Zlcj4gbV9kYXRhVHJhbnNmZXI7CiB9OwogCiBjbGFzcyBTaW11bGF0ZWRNb3VzZUV2ZW50IDog
cHVibGljIE1vdXNlRXZlbnQgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmlkbAkocmV2
aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUg
ICAgICAgICAgICAgdG9FbGVtZW50OwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENsaXBib2Fy
ZCAgICAgICAgZGF0YVRyYW5zZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhVHJhbnNm
ZXIgICAgIGRhdGFUcmFuc2ZlcjsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9XaGVl
bEV2ZW50LmNwcAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1doZWVs
RXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
CisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMzLDEwIEBACiAjaW5jbHVkZSAiQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAj
aW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIu
aCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGljdGF0
aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCkBAIC0zMDIs
MTcgKzMwMiwxNyBAQCBib29sIEVkaXRvcjo6Y2FuRWRpdFJpY2hseSgpIGNvbnN0CiAKIGJvb2wg
RWRpdG9yOjpjYW5ESFRNTEN1dCgpCiB7Ci0gICAgcmV0dXJuICFtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZpZWxkKCkgJiYgIWRpc3BhdGNoQ1BQRXZlbnQoZXZl
bnROYW1lcygpLmJlZm9yZWN1dEV2ZW50LCBDbGlwYm9hcmROdW1iKTsKKyAgICByZXR1cm4gIW1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNJblBhc3N3b3JkRmllbGQoKSAmJiAhZGlz
cGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuYmVmb3JlY3V0RXZlbnQsIERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeTo6TnVtYik7CiB9CiAKIGJvb2wgRWRpdG9yOjpjYW5ESFRNTENvcHkoKQogewot
ICAgIHJldHVybiAhbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRG
aWVsZCgpICYmICFkaXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5iZWZvcmVjb3B5RXZlbnQs
IENsaXBib2FyZE51bWIpOworICAgIHJldHVybiAhbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKS5pc0luUGFzc3dvcmRGaWVsZCgpICYmICFkaXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMo
KS5iZWZvcmVjb3B5RXZlbnQsIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7CiB9CiAK
IGJvb2wgRWRpdG9yOjpjYW5ESFRNTFBhc3RlKCkKIHsKLSAgICByZXR1cm4gIWRpc3BhdGNoQ1BQ
RXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZXBhc3RlRXZlbnQsIENsaXBib2FyZE51bWIpOworICAg
IHJldHVybiAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuYmVmb3JlcGFzdGVFdmVudCwg
RGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsKIH0KIAogYm9vbCBFZGl0b3I6OmNhbkN1
dCgpIGNvbnN0CkBAIC03MzQsNyArNzM0LDcgQEAgYm9vbCBFZGl0b3I6OnRyeURIVE1MQ29weSgp
CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNJblBhc3N3b3JkRmll
bGQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuICFkaXNwYXRjaENQUEV2
ZW50KGV2ZW50TmFtZXMoKS5jb3B5RXZlbnQsIENsaXBib2FyZFdyaXRhYmxlKTsKKyAgICByZXR1
cm4gIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLmNvcHlFdmVudCwgRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5OjpXcml0YWJsZSk7CiB9CiAKIGJvb2wgRWRpdG9yOjp0cnlESFRNTEN1dCgp
CkBAIC03NDIsMTIgKzc0MiwxMiBAQCBib29sIEVkaXRvcjo6dHJ5REhUTUxDdXQoKQogICAgIGlm
IChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZpZWxkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gIWRpc3BhdGNoQ1BQRXZlbnQo
ZXZlbnROYW1lcygpLmN1dEV2ZW50LCBDbGlwYm9hcmRXcml0YWJsZSk7CisgICAgcmV0dXJuICFk
aXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5jdXRFdmVudCwgRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5OjpXcml0YWJsZSk7CiB9CiAKIGJvb2wgRWRpdG9yOjp0cnlESFRNTFBhc3RlKCkKIHsK
LSAgICByZXR1cm4gIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLnBhc3RlRXZlbnQsIENs
aXBib2FyZFJlYWRhYmxlKTsKKyAgICByZXR1cm4gIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1l
cygpLnBhc3RlRXZlbnQsIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUpOwogfQog
CiBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFJhbmdl
KiByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTkxNSwyNSArOTE1
LDI1IEBAIHZvaWQgRWRpdG9yOjplbnN1cmVMYXN0RWRpdENvbW1hbmRIYXNDdXIKIAogLy8gUmV0
dXJucyB3aGV0aGVyIGNhbGxlciBzaG91bGQgY29udGludWUgd2l0aCAidGhlIGRlZmF1bHQgcHJv
Y2Vzc2luZyIsIHdoaWNoIGlzIHRoZSBzYW1lIGFzIAogLy8gdGhlIGV2ZW50IGhhbmRsZXIgTk9U
IHNldHRpbmcgdGhlIHJldHVybiB2YWx1ZSB0byBmYWxzZQotYm9vbCBFZGl0b3I6OmRpc3BhdGNo
Q1BQRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENsaXBib2FyZEFjY2Vzc1Bv
bGljeSBwb2xpY3kpCitib29sIEVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSkKIHsKICAg
ICBOb2RlKiB0YXJnZXQgPSBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCk7CiAgICAgaWYg
KCF0YXJnZXQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgUmVmUHRyPENsaXBib2FyZD4g
Y2xpcGJvYXJkID0gQ2xpcGJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUocG9saWN5KTsKKyAg
ICBSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZShwb2xpY3kpOwogCi0gICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IENs
aXBib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCBjbGlwYm9hcmQpOwor
ICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBDbGlwYm9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgZGF0YVRyYW5zZmVyKTsKICAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQo
ZXZlbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGJvb2wgbm9EZWZhdWx0UHJvY2Vzc2luZyA9
IGV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci0gICAgaWYgKG5vRGVmYXVsdFByb2Nlc3Npbmcg
JiYgcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlKSB7CisgICAgaWYgKG5vRGVmYXVsdFByb2Nl
c3NpbmcgJiYgcG9saWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUpIHsK
ICAgICAgICAgT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JDb3B5QW5kUGFzdGUoKTsKICAgICAgICAgcGFzdGVib2FyZC0+Y2xlYXIoKTsKLSAgICAg
ICAgcGFzdGVib2FyZC0+d3JpdGVQYXN0ZWJvYXJkKGNsaXBib2FyZC0+cGFzdGVib2FyZCgpKTsK
KyAgICAgICAgcGFzdGVib2FyZC0+d3JpdGVQYXN0ZWJvYXJkKGRhdGFUcmFuc2Zlci0+cGFzdGVi
b2FyZCgpKTsKICAgICB9CiAKLSAgICAvLyBpbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGZvciBz
ZWN1cml0eQotICAgIGNsaXBib2FyZC0+c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZE51bWIpOwor
ICAgIC8vIGludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5CisgICAgZGF0
YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1i
KTsKICAgICAKICAgICByZXR1cm4gIW5vRGVmYXVsdFByb2Nlc3Npbmc7CiB9CkBAIC0xMzEzLDcg
KzEzMTMsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3RpCiAgICAg
fQogCiAgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLnN0YXJ0KCkpKQotICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5
QW5kUGFzdGUoKS0+d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIGNh
blNtYXJ0Q29weU9yRGVsZXRlKCkgPyBQYXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0
ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxhY2UpOworICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5z
ZmVyKCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCkgPyBQYXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxh
Y2UgOiBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxhY2UpOwogICAgIGVsc2UgewogICAgICAg
ICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBpZiAo
YWN0aW9uID09IENvcHlBY3Rpb24pCkBAIC0xMzMwLDcgKzEzMzAsNyBAQCB2b2lkIEVkaXRvcjo6
cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3RpCiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0
Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVjdGlvbigqc2VsZWN0aW9uLCBjYW5TbWFydENvcHlP
ckRlbGV0ZSgpLCBtX2ZyYW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkKTsKKyAg
ICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVj
dGlvbigqc2VsZWN0aW9uLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBtX2ZyYW1lLCBJbmNsdWRl
SW1hZ2VBbHRUZXh0Rm9yRGF0YVRyYW5zZmVyKTsKICNlbmRpZgogICAgICAgICB9CiAgICAgfQpA
QCAtMjk1Nyw3ICsyOTU3LDcgQEAgU3RyaW5nIEVkaXRvcjo6c2VsZWN0ZWRUZXh0KCkgY29uc3QK
ICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0KFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CiB9
CiAKLVN0cmluZyBFZGl0b3I6OnNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpIGNvbnN0CitTdHJp
bmcgRWRpdG9yOjpzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIGlm
IChtX2ZyYW1lLnNldHRpbmdzKCkuc2VsZWN0aW9uSW5jbHVkZXNBbHRJbWFnZVRleHQoKSkKICAg
ICAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dChUZXh0SXRlcmF0b3JFbWl0c0ltYWdlQWx0VGV4dCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDgg
QEAKICNpZm5kZWYgRWRpdG9yX2gKICNkZWZpbmUgRWRpdG9yX2gKIAotI2luY2x1ZGUgIkNsaXBi
b2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRGF0YVRy
YW5zZmVyQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKQEAg
LTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyOwogY2xhc3MgQXJjaGl2ZVJlc291cmNlOwotY2xhc3MgQ2xpcGJvYXJkOwor
Y2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgQ29tcG9zaXRlRWRpdENvbW1hbmQ7CiBjbGFzcyBE
ZWxldGVCdXR0b25Db250cm9sbGVyOwogY2xhc3MgRWRpdENvbW1hbmQ7CkBAIC0xNzUsNyArMTc1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CiAjZW5k
aWYKICAgICAKLSAgICBib29sIGRpc3BhdGNoQ1BQRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwg
Q2xpcGJvYXJkQWNjZXNzUG9saWN5KTsKKyAgICBib29sIGRpc3BhdGNoQ1BQRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiwgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5KTsKICAgICAKICAgICB2b2lk
IGFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNw
ZWNpZmllZCk7CiAgICAgdm9pZCBhcHBseVBhcmFncmFwaFN0eWxlKFN0eWxlUHJvcGVydGllcyos
IEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBA
IHB1YmxpYzoKICAgICBOb2RlKiBmaW5kRXZlbnRUYXJnZXRGcm9tKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbikgY29uc3Q7CiAKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29u
c3Q7Ci0gICAgU3RyaW5nIHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpIGNvbnN0OworICAgIFN0
cmluZyBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSBjb25zdDsKICAgICBib29sIGZpbmRT
dHJpbmcoY29uc3QgU3RyaW5nJiwgRmluZE9wdGlvbnMpOwogCiAgICAgUGFzc1JlZlB0cjxSYW5n
ZT4gcmFuZ2VPZlN0cmluZyhjb25zdCBTdHJpbmcmLCBSYW5nZSosIEZpbmRPcHRpb25zKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0JKHJldmlzaW9uIDE2Njg3
MykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAKICNpbmNsdWRl
ICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCIKICNpbmNsdWRlICJET01SYW5nZUludGVybmFsLmgiCisjaW5jbHVkZSAiRGF0YVRy
YW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCkBAIC0zMTEsNyArMzExLDcg
QEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhSW5SVAogCiBTdHJpbmcgRWRp
dG9yOjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4dCgpCiB7Ci0g
ICAgU3RyaW5nIHRleHQgPSBzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKTsKKyAgICBTdHJpbmcg
dGV4dCA9IHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpOwogICAgIHRleHQucmVwbGFjZShu
b0JyZWFrU3BhY2UsICcgJyk7CiAgICAgcmV0dXJuIHRleHQ7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDkg
KzI3LDkgQEAKICNpbXBvcnQgIkVkaXRvci5oIgogCiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgotI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCiAjaW1wb3J0ICJDb2xvck1hYy5oIgogI2lt
cG9ydCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgorI2ltcG9ydCAiRGF0YVRyYW5zZmVyLmgiCiAjaW1w
b3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5oIgogI2lt
cG9ydCAiRWRpdG9yLmgiCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBFZGl0b3I6OnRha2VGaW5k
U3RyaW5nRnJvbVNlbGVjdGlvbgogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHR5cGVz
LmFwcGVuZChTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSk7CiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5kUGJvYXJk
KTsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFN0
cmluZ0ZvclR5cGUobV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHNlbGVj
dGVkVGV4dEZvckNsaXBib2FyZCgpKSwgTlNTdHJpbmdQYm9hcmRUeXBlLCBOU0ZpbmRQYm9hcmQp
OworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3Ry
aW5nRm9yVHlwZShtX2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0
ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkpLCBOU1N0cmluZ1Bib2FyZFR5cGUsIE5TRmluZFBib2Fy
ZCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKQEAgLTI2NSw4ICsyNjUsOCBAQCB2b2lkIEVkaXRvcjo6
cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkCiAgICAgICAgIHBhc3RlQXNQbGFpblRleHRXaXRo
UGFzdGVib2FyZChwYXN0ZWJvYXJkKTsKIH0KIAotLy8gRklYTUU6IE1ha2VzIG5vIHNlbnNlIHRo
YXQgc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkIGFsd2F5cyBpbmNsdWRlcyBhbHQgdGV4dCwgYnV0
IHN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQgZG9lcyBub3QuCi0vLyBUaGlzIHdhcyBsZWZ0
IGluIGEgYmFkIHN0YXRlIHdoZW4gc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkIHdhcyBhZGRlZC4g
TmVlZCB0byBsb29rIG92ZXIgY2xpZW50cyBhbmQgZml4IHRoaXMuCisvLyBGSVhNRTogTWFrZXMg
bm8gc2Vuc2UgdGhhdCBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgYWx3YXlzIGluY2x1ZGVz
IGFsdCB0ZXh0LCBidXQgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCBkb2VzIG5vdC4KKy8v
IFRoaXMgd2FzIGxlZnQgaW4gYSBiYWQgc3RhdGUgd2hlbiBzZWxlY3RlZFRleHRGb3JEYXRhVHJh
bnNmZXIgd2FzIGFkZGVkLiBOZWVkIHRvIGxvb2sgb3ZlciBjbGllbnRzIGFuZCBmaXggdGhpcy4K
IFN0cmluZyBFZGl0b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKQogewogICAgIGlm
ICghY2FuQ29weSgpKQpAQCAtMjgwLDcgKzI4MCw3IEBAIFN0cmluZyBFZGl0b3I6OnN0cmluZ1Nl
bGVjdGlvbkZvclBhc3RlYm8KIHsKICAgICBpZiAoIWNhbkNvcHkoKSkKICAgICAgICAgcmV0dXJu
ICIiOwotICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCk7CisgICAg
U3RyaW5nIHRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKICAgICB0ZXh0LnJl
cGxhY2Uobm9CcmVha1NwYWNlLCAnICcpOwogICAgIHJldHVybiB0ZXh0OwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzIsMTAg
KzU3MiwxMCBAQCBwdWJsaWM6CiAgICAgRW1wdHlEcmFnQ2xpZW50KCkgeyB9CiAgICAgdmlydHVh
bCB+RW1wdHlEcmFnQ2xpZW50KCkge30KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFn
RGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnRGF0YSYpIG92ZXJy
aWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJh
Z1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9pbnQmLCBDbGlwYm9hcmQmKSBvdmVycmlkZSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VB
Y3Rpb24sIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJikgb3ZlcnJpZGUgeyB9CiAgICAg
dmlydHVhbCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoRHJhZ0RhdGEm
KSBvdmVycmlkZSB7IHJldHVybiBEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lOyB9CiAgICAgdmly
dHVhbCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3Qg
SW50UG9pbnQmKSBvdmVycmlkZSB7IHJldHVybiBEcmFnU291cmNlQWN0aW9uTm9uZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29sKSBvdmVycmlkZSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBj
b25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkgb3ZlcnJpZGUgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGUgeyB9
CiB9OwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDbGllbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAotY2xhc3MgQ2xpcGJvYXJkOworY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xh
c3MgRHJhZ0RhdGE7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC00NCwxMSArNDQs
MTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlv
bihEcmFnRGVzdGluYXRpb25BY3Rpb24sIERyYWdEYXRhJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50
UG9pbnQmLCBDbGlwYm9hcmQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJh
Z1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFu
c2ZlciYpID0gMDsKICAgICB2aXJ0dWFsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNr
Rm9yRHJhZyhEcmFnRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIERyYWdTb3VyY2VBY3Rpb24gZHJh
Z1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcm9vdFZpZXdQb2ludCkg
PSAwOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25z
dCBJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIENs
aXBib2FyZCYsIEZyYW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VP
cmlnaW4sIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBi
b29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ0VuZGVkKCkg
eyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksOCBAQAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUg
IkNsaXBib2FyZC5oIgotI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5j
bHVkZSAiRHJhZ0FjdGlvbnMuaCIKQEAgLTE4NSwxMSArMTg0LDExIEBAIERyYWdTZXNzaW9uIERy
YWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCgKIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0
ZWQoRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIGlmIChSZWZQdHI8RnJhbWVWaWV3PiB2ID0g
bV9wYWdlLm1haW5GcmFtZSgpLnZpZXcoKSkgewotICAgICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3kgcG9saWN5ID0gKCFtX2RvY3VtZW50VW5kZXJNb3VzZSB8fCBtX2RvY3VtZW50VW5kZXJNb3Vz
ZS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNMb2NhbCgpKSA/IENsaXBib2FyZFJlYWRhYmxlIDogQ2xp
cGJvYXJkVHlwZXNSZWFkYWJsZTsKLSAgICAgICAgUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJk
ID0gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKLSAg
ICAgICAgY2xpcGJvYXJkLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3Vy
Y2VPcGVyYXRpb25NYXNrKCkpOwotICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGNsaXBi
b2FyZC5nZXQoKSk7Ci0gICAgICAgIGNsaXBib2FyZC0+c2V0QWNjZXNzUG9saWN5KENsaXBib2Fy
ZE51bWIpOyAgICAvLyBpbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGZvciBzZWN1cml0eQorICAg
ICAgICBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5ID0gKCFtX2RvY3VtZW50VW5kZXJN
b3VzZSB8fCBtX2RvY3VtZW50VW5kZXJNb3VzZS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNMb2NhbCgp
KSA/IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgOiBEYXRhVHJhbnNmZXJBY2Nl
c3NQb2xpY3k6OlR5cGVzUmVhZGFibGU7CisgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRh
dGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBk
cmFnRGF0YSk7CisgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdE
YXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKKyAgICAgICAgbV9wYWdlLm1haW5G
cmFtZSgpLmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIuZ2V0KCkpOworICAgICAgICBkYXRhVHJhbnNmZXItPnNl
dEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlk
YXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICB9CiAgICAgbW91c2VNb3Zl
ZEludG9Eb2N1bWVudCgwKTsKICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkK
QEAgLTIxMSwxMCArMjEwLDEwIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnKERy
YWdEYXQKICAgICAgICAgYm9vbCBwcmV2ZW50ZWREZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgIGlm
IChtYWluRnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgLy8gU2VuZGluZyBhbiBldmVudCBj
YW4gcmVzdWx0IGluIHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgdmlldyBhbmQgcGFydC4KLSAgICAg
ICAgICAgIFJlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCA9IENsaXBib2FyZDo6Y3JlYXRlRm9y
RHJhZ0FuZERyb3AoQ2xpcGJvYXJkUmVhZGFibGUsIGRyYWdEYXRhKTsKLSAgICAgICAgICAgIGNs
aXBib2FyZC0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0
aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2
ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRh
KSwgY2xpcGJvYXJkLmdldCgpKTsKLSAgICAgICAgICAgIGNsaXBib2FyZC0+c2V0QWNjZXNzUG9s
aWN5KENsaXBib2FyZE51bWIpOyAvLyBJbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGZvciBzZWN1
cml0eQorICAgICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0
YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6
OlJlYWRhYmxlLCBkcmFnRGF0YSk7CisgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJj
ZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7CisgICAg
ICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS5wZXJm
b3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5n
ZXQoKSk7CisgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJh
bnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJl
IGZvciBzZWN1cml0eS4KICAgICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkg
ewogICAgICAgICAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSAwOwpAQCAtNTkyLDI2ICs1OTEs
MjYgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKERyYWdEYQogICAgIGlmICgh
dmlld1Byb3RlY3RvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5IHBvbGljeSA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5zZWN1cml0eU9yaWdpbigp
LT5pc0xvY2FsKCkgPyBDbGlwYm9hcmRSZWFkYWJsZSA6IENsaXBib2FyZFR5cGVzUmVhZGFibGU7
Ci0gICAgUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkID0gQ2xpcGJvYXJkOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKKyAgICBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3kgcG9saWN5ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnNlY3VyaXR5T3JpZ2luKCktPmlzTG9j
YWwoKSA/IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgOiBEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OlR5cGVzUmVhZGFibGU7CisgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0
YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRy
YWdEYXRhKTsKICAgICBEcmFnT3BlcmF0aW9uIHNyY09wTWFzayA9IGRyYWdEYXRhLmRyYWdnaW5n
U291cmNlT3BlcmF0aW9uTWFzaygpOwotICAgIGNsaXBib2FyZC0+c2V0U291cmNlT3BlcmF0aW9u
KHNyY09wTWFzayk7CisgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oc3JjT3BN
YXNrKTsKIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudCA9IGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpOwotICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
QW5kRHJvcChldmVudCwgY2xpcGJvYXJkLmdldCgpKSkgewotICAgICAgICBjbGlwYm9hcmQtPnNl
dEFjY2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsgICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQg
aGVyZSBmb3Igc2VjdXJpdHkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBk
YXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAgICAgICAgZGF0
YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1i
KTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBvcGVyYXRpb24gPSBjbGlwYm9hcmQtPmRlc3Rp
bmF0aW9uT3BlcmF0aW9uKCk7Ci0gICAgaWYgKGNsaXBib2FyZC0+ZHJvcEVmZmVjdElzVW5pbml0
aWFsaXplZCgpKQorICAgIG9wZXJhdGlvbiA9IGRhdGFUcmFuc2Zlci0+ZGVzdGluYXRpb25PcGVy
YXRpb24oKTsKKyAgICBpZiAoZGF0YVRyYW5zZmVyLT5kcm9wRWZmZWN0SXNVbmluaXRpYWxpemVk
KCkpCiAgICAgICAgIG9wZXJhdGlvbiA9IGRlZmF1bHRPcGVyYXRpb25Gb3JEcmFnKHNyY09wTWFz
ayk7CiAgICAgZWxzZSBpZiAoIShzcmNPcE1hc2sgJiBvcGVyYXRpb24pKSB7CiAgICAgICAgIC8v
IFRoZSBlbGVtZW50IHBpY2tlZCBhbiBvcGVyYXRpb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBi
eSB0aGUgc291cmNlCiAgICAgICAgIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwogICAg
IH0KIAotICAgIGNsaXBib2FyZC0+c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZE51bWIpOyAgICAv
LyBpbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGZvciBzZWN1cml0eQorICAgIGRhdGFUcmFuc2Zl
ci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIElu
dmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC03MzMsMTEgKzczMiwxMSBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERy
YWcoRnJhbWUmIHNyCiAgICAgSW50UG9pbnQgZHJhZ0xvYygwLCAwKTsKICAgICBJbnRQb2ludCBk
cmFnSW1hZ2VPZmZzZXQoMCwgMCk7CiAKLSAgICBBU1NFUlQoc3RhdGUuY2xpcGJvYXJkKTsKKyAg
ICBBU1NFUlQoc3RhdGUuZGF0YVRyYW5zZmVyKTsKIAotICAgIENsaXBib2FyZCYgY2xpcGJvYXJk
ID0gKnN0YXRlLmNsaXBib2FyZDsKKyAgICBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciA9ICpz
dGF0ZS5kYXRhVHJhbnNmZXI7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlv
bkRIVE1MKQotICAgICAgICBkcmFnSW1hZ2UgPSBjbGlwYm9hcmQuY3JlYXRlRHJhZ0ltYWdlKGRy
YWdJbWFnZU9mZnNldCk7CisgICAgICAgIGRyYWdJbWFnZSA9IGRhdGFUcmFuc2Zlci5jcmVhdGVE
cmFnSW1hZ2UoZHJhZ0ltYWdlT2Zmc2V0KTsKICAgICBpZiAoc3RhdGUudHlwZSA9PSBEcmFnU291
cmNlQWN0aW9uU2VsZWN0aW9uIHx8ICFpbWFnZVVSTC5pc0VtcHR5KCkgfHwgIWxpbmtVUkwuaXNF
bXB0eSgpKQogICAgICAgICAvLyBTZWxlY3Rpb24sIGltYWdlLCBhbmQgbGluayBkcmFncyByZWNl
aXZlIGEgZGVmYXVsdCBzZXQgb2YgYWxsb3dlZCBkcmFnIG9wZXJhdGlvbnMgdGhhdAogICAgICAg
ICAvLyBmb2xsb3dzIGZyb206CkBAIC03NTgsNyArNzU3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxl
cjo6c3RhcnREcmFnKEZyYW1lJiBzcgogCiAgICAgSW1hZ2UqIGltYWdlID0gZ2V0SW1hZ2UoZWxl
bWVudCk7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbikg
ewotICAgICAgICBpZiAoIWNsaXBib2FyZC5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CisgICAg
ICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGVudGlyZSBibG9jayBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRo
ZSBjb2RlIGluIEVkaXRvcjo6Y29weSwgYW5kIHRoZSBjb2RlIHNob3VsZCBiZSBzaGFyZWQuCiAK
ICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uUmFuZ2UgPSBzcmMuc2VsZWN0aW9u
KCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKQEAgLTc2Nyw1MSArNzY2LDUyIEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3IKICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53
aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoc2VsZWN0aW9uUmFuZ2UuZ2V0KCkpOwogCiAg
ICAgICAgICAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKHNyYy5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKS5zdGFydCgpKSkKLSAgICAgICAgICAgICAgICBjbGlwYm9hcmQucGFzdGVib2Fy
ZCgpLndyaXRlUGxhaW5UZXh0KHNyYy5lZGl0b3IoKS5zZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQo
KSwgUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsKKyAgICAgICAgICAgICAgICBkYXRh
VHJhbnNmZXIucGFzdGVib2FyZCgpLndyaXRlUGxhaW5UZXh0KHNyYy5lZGl0b3IoKS5zZWxlY3Rl
ZFRleHRGb3JEYXRhVHJhbnNmZXIoKSwgUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsK
ICAgICAgICAgICAgIGVsc2UgewogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShFRkwp
Ci0gICAgICAgICAgICAgICAgc3JjLmVkaXRvcigpLndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KGNsaXBib2FyZC5wYXN0ZWJvYXJkKCkpOworICAgICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53
cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpKTsKICNl
bHNlCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IENvbnZlcnQgYWxsIG90aGVyIHBsYXRmb3Jt
cyB0byBtYXRjaCBNYWMgYW5kIGRlbGV0ZSB0aGlzLgotICAgICAgICAgICAgICAgIGNsaXBib2Fy
ZC5wYXN0ZWJvYXJkKCkud3JpdGVTZWxlY3Rpb24oKnNlbGVjdGlvblJhbmdlLCBzcmMuZWRpdG9y
KCkuY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgc3JjLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xp
cGJvYXJkKTsKKyAgICAgICAgICAgICAgICBkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLndyaXRl
U2VsZWN0aW9uKCpzZWxlY3Rpb25SYW5nZSwgc3JjLmVkaXRvcigpLmNhblNtYXJ0Q29weU9yRGVs
ZXRlKCksIHNyYywgSW5jbHVkZUltYWdlQWx0VGV4dEZvckRhdGFUcmFuc2Zlcik7CiAjZW5kaWYK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgc3JjLmVkaXRvcigpLmRpZFdyaXRlU2VsZWN0
aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgICAgIH0KLSAgICAgICAgbV9jbGllbnQud2lsbFBlcmZv
cm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24sIGRyYWdPcmlnaW4s
IGNsaXBib2FyZCk7CisgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlv
bihEcmFnU291cmNlQWN0aW9uU2VsZWN0aW9uLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwog
ICAgICAgICBpZiAoIWRyYWdJbWFnZSkgewogICAgICAgICAgICAgZHJhZ0ltYWdlID0gZGlzc29s
dmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihzcmMpLCBE
cmFnSW1hZ2VBbHBoYSk7CiAgICAgICAgICAgICBkcmFnTG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlv
bkRyYWcoc3JjKTsKICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9IEludFBvaW50KGRyYWdPcmln
aW4ueCgpIC0gZHJhZ0xvYy54KCksIGRyYWdPcmlnaW4ueSgpIC0gZHJhZ0xvYy55KCkpOwogICAg
ICAgICB9Ci0gICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmln
aW4sIGNsaXBib2FyZCwgc3JjLCBmYWxzZSk7CisgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1h
Z2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAgICAg
fSBlbHNlIGlmICghaW1hZ2VVUkwuaXNFbXB0eSgpICYmIGltYWdlICYmICFpbWFnZS0+aXNOdWxs
KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSkpIHsKICAg
ICAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIHN0YXJ0aW5nIGEgZHJhZyBmb3IgYW4gaW1hZ2UgdGhh
dCBjYW4ndCBwcm92aWRlIGFuIGV4dGVuc2lvbi4KICAgICAgICAgLy8gVGhpcyBpcyBhbiBlYXJs
eSBkZXRlY3Rpb24gZm9yIHByb2JsZW1zIGVuY291bnRlcmVkIGxhdGVyIHVwb24gZHJvcC4KICAg
ICAgICAgQVNTRVJUKCFpbWFnZS0+ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0VtcHR5KCkpOwotICAg
ICAgICBpZiAoIWNsaXBib2FyZC5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CisgICAgICAgIGlm
ICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKICAgICAgICAgICAgIG1f
ZHJhZ2dpbmdJbWFnZVVSTCA9IGltYWdlVVJMOwogICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXND
b250ZW50UmljaGx5RWRpdGFibGUoKSkKICAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50KGVs
ZW1lbnQpOwotICAgICAgICAgICAgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNsaXBib2FyZCwg
ZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0eSgpID8gbGlua1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0
UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CisgICAgICAgICAgICBkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UoZGF0YVRyYW5zZmVyLCBlbGVtZW50LCAhbGlua1VSTC5pc0VtcHR5KCkgPyBsaW5r
VVJMIDogaW1hZ2VVUkwsIGhpdFRlc3RSZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFn
U291cmNlQWN0aW9uSW1hZ2UsIGRyYWdPcmlnaW4sIGNsaXBib2FyZCk7CisgICAgICAgIG1fY2xp
ZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uSW1hZ2UsIGRy
YWdPcmlnaW4sIGRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAgaWYgKCFkcmFnSW1hZ2UpIHsKICAg
ICAgICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKTsK
ICAgICAgICAgICAgIGltYWdlUmVjdC5zZXRMb2NhdGlvbihtX3BhZ2UubWFpbkZyYW1lKCkudmll
dygpLT5yb290Vmlld1RvQ29udGVudHMoc3JjLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KGlt
YWdlUmVjdC5sb2NhdGlvbigpKSkpOwotICAgICAgICAgICAgZG9JbWFnZURyYWcoZWxlbWVudCwg
ZHJhZ09yaWdpbiwgaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKSwgY2xpcGJvYXJkLCBzcmMsIG1f
ZHJhZ09mZnNldCk7CisgICAgICAgICAgICBkb0ltYWdlRHJhZyhlbGVtZW50LCBkcmFnT3JpZ2lu
LCBoaXRUZXN0UmVzdWx0LmltYWdlUmVjdCgpLCBkYXRhVHJhbnNmZXIsIHNyYywgbV9kcmFnT2Zm
c2V0KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIERIVE1MIGRlZmluZWQgZHJh
ZyBpbWFnZQotICAgICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJh
Z09yaWdpbiwgY2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKKyAgICAgICAgICAgIGRvU3lzdGVtRHJh
ZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxz
ZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFsaW5rVVJMLmlzRW1wdHkoKSAmJiAobV9k
cmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkxpbmspKSB7Ci0gICAgICAgIGlmICgh
Y2xpcGJvYXJkLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpCi0gICAgICAgICAgICAvLyBTaW1wbGlm
eSB3aGl0ZXNwYWNlIHNvIHRoZSB0aXRsZSBwdXQgb24gdGhlIGNsaXBib2FyZCByZXNlbWJsZXMg
d2hhdCB0aGUgdXNlciBzZWVzCisgICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQo
KS5oYXNEYXRhKCkpIHsKKyAgICAgICAgICAgIC8vIFNpbXBsaWZ5IHdoaXRlc3BhY2Ugc28gdGhl
IHRpdGxlIHB1dCBvbiB0aGUgZGF0YVRyYW5zZmVyIHJlc2VtYmxlcyB3aGF0IHRoZSB1c2VyIHNl
ZXMKICAgICAgICAgICAgIC8vIG9uIHRoZSB3ZWIgcGFnZS4gVGhpcyBpbmNsdWRlcyByZXBsYWNp
bmcgbmV3bGluZXMgd2l0aCBzcGFjZXMuCi0gICAgICAgICAgICBzcmMuZWRpdG9yKCkuY29weVVS
TChsaW5rVVJMLCBoaXRUZXN0UmVzdWx0LnRleHRDb250ZW50KCkuc2ltcGxpZnlXaGl0ZVNwYWNl
KCksIGNsaXBib2FyZC5wYXN0ZWJvYXJkKCkpOworICAgICAgICAgICAgc3JjLmVkaXRvcigpLmNv
cHlVUkwobGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpLnNpbXBsaWZ5V2hpdGVT
cGFjZSgpLCBkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNvdXJjZVNlbGVjdGlvbiA9IHNyYy5zZWxlY3Rpb24o
KS5zZWxlY3Rpb24oKTsKICAgICAgICAgaWYgKHNvdXJjZVNlbGVjdGlvbi5pc0NhcmV0KCkgJiYg
c291cmNlU2VsZWN0aW9uLmlzQ29udGVudEVkaXRhYmxlKCkpIHsKQEAgLTgyNCw3ICs4MjQsNyBA
QCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICAg
ICAgc3JjLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rp
b25Gcm9tQ29udGVudHNPZk5vZGUobm9kZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9jbGll
bnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25MaW5rLCBkcmFn
T3JpZ2luLCBjbGlwYm9hcmQpOworICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3Vy
Y2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbkxpbmssIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlcik7
CiAgICAgICAgIGlmICghZHJhZ0ltYWdlKSB7CiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBjcmVh
dGVEcmFnSW1hZ2VGb3JMaW5rKGxpbmtVUkwsIGhpdFRlc3RSZXN1bHQudGV4dENvbnRlbnQoKSwg
c3JjLnNldHRpbmdzKCkuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgICAgICAgICBJbnRTaXpl
IHNpemUgPSBkcmFnSW1hZ2VTaXplKGRyYWdJbWFnZSk7CkBAIC04MzMsMTIgKzgzMywxMiBAQCBi
b29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICAvLyBM
YXRlciBjb2RlIGV4cGVjdHMgdGhlIGRyYWcgaW1hZ2UgdG8gYmUgc2NhbGVkIGJ5IGRldmljZSdz
IHNjYWxlIGZhY3Rvci4KICAgICAgICAgICAgIGRyYWdJbWFnZSA9IHNjYWxlRHJhZ0ltYWdlKGRy
YWdJbWFnZSwgRmxvYXRTaXplKG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpOwogICAgICAgICB9Ci0gICAgICAgIGRvU3lzdGVtRHJhZyhkcmFn
SW1hZ2UsIGRyYWdMb2MsIG1vdXNlRHJhZ2dlZFBvaW50LCBjbGlwYm9hcmQsIHNyYywgdHJ1ZSk7
CisgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIG1vdXNlRHJhZ2dlZFBv
aW50LCBkYXRhVHJhbnNmZXIsIHNyYywgdHJ1ZSk7CiAgICAgfSBlbHNlIGlmIChzdGF0ZS50eXBl
ID09IERyYWdTb3VyY2VBY3Rpb25ESFRNTCkgewogICAgICAgICBpZiAoZHJhZ0ltYWdlKSB7CiAg
ICAgICAgICAgICBBU1NFUlQobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkRI
VE1MKTsKLSAgICAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihE
cmFnU291cmNlQWN0aW9uREhUTUwsIGRyYWdPcmlnaW4sIGNsaXBib2FyZCk7Ci0gICAgICAgICAg
ICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQs
IHNyYywgZmFsc2UpOworICAgICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKERyYWdTb3VyY2VBY3Rpb25ESFRNTCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsK
KyAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4s
IGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
c3RhcnRlZERyYWcgPSBmYWxzZTsKICAgICB9IGVsc2UgewpAQCAtODUyLDcgKzg1Miw3IEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3IKICAgICByZXR1cm4gc3RhcnRl
ZERyYWc7CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBjb25zdCBJbnRSZWN0JiBsYXlvdXRS
ZWN0LCBDbGlwYm9hcmQmIGNsaXBib2FyZCwgRnJhbWUmIGZyYW1lLCBJbnRQb2ludCYgZHJhZ0lt
YWdlT2Zmc2V0KQordm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IEludFJlY3QmIGxheW91dFJl
Y3QsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIEludFBvaW50JiBk
cmFnSW1hZ2VPZmZzZXQpCiB7CiAgICAgSW50UG9pbnQgbW91c2VEb3duUG9pbnQgPSBkcmFnT3Jp
Z2luOwogICAgIERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UgPSBudWxscHRyOwpAQCAtODk1LDEyICs4
OTUsMTIgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudAogICAgIH0K
IAogICAgIGRyYWdJbWFnZU9mZnNldCA9IG1vdXNlRG93blBvaW50ICsgc2NhbGVkT3JpZ2luOwot
ICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdJbWFnZU9mZnNldCwgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkLCBmcmFtZSwgZmFsc2UpOworICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRy
YWdJbWFnZU9mZnNldCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyLCBmcmFtZSwgZmFsc2UpOwog
CiAgICAgZGVsZXRlRHJhZ0ltYWdlKGRyYWdJbWFnZSk7CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFn
TG9jLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIENsaXBib2FyZCYgY2xpcGJvYXJkLCBGcmFt
ZSYgZnJhbWUsIGJvb2wgZm9yTGluaykKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJh
ZyhEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25zdCBJbnRQ
b2ludCYgZXZlbnRQb3MsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUs
IGJvb2wgZm9yTGluaykKIHsKICAgICBtX2RpZEluaXRpYXRlRHJhZyA9IHRydWU7CiAgICAgbV9k
cmFnSW5pdGlhdG9yID0gZnJhbWUuZG9jdW1lbnQoKTsKQEAgLTkwOCw3ICs5MDgsNyBAQCB2b2lk
IERyYWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWcoRHJhZ0ltCiAgICAgUmVmPE1haW5GcmFtZT4g
ZnJhbWVQcm90ZWN0b3IobV9wYWdlLm1haW5GcmFtZSgpKTsKICAgICBSZWZQdHI8RnJhbWVWaWV3
PiB2aWV3UHJvdGVjdG9yID0gZnJhbWVQcm90ZWN0b3ItPnZpZXcoKTsKICAgICBtX2NsaWVudC5z
dGFydERyYWcoaW1hZ2UsIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52
aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhkcmFnTG9jKSksCi0gICAgICAgIHZpZXdQcm90ZWN0
b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290Vmlldyhl
dmVudFBvcykpLCBjbGlwYm9hcmQsIGZyYW1lUHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKKyAg
ICAgICAgdmlld1Byb3RlY3Rvci0+cm9vdFZpZXdUb0NvbnRlbnRzKGZyYW1lLnZpZXcoKS0+Y29u
dGVudHNUb1Jvb3RWaWV3KGV2ZW50UG9zKSksIGRhdGFUcmFuc2ZlciwgZnJhbWVQcm90ZWN0b3Iu
Z2V0KCksIGZvckxpbmspOwogICAgIC8vIERyYWdDbGllbnQ6OnN0YXJ0RHJhZyBjYW4gY2F1c2Ug
b3VyIFBhZ2UgdG8gZGlzcGVhciwgZGVhbGxvY2F0aW5nIHx0aGlzfC4KICAgICBpZiAoIWZyYW1l
UHJvdGVjdG9yLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDbGlwYm9hcmQ7CisgICAgY2xhc3MgRGF0
YVRyYW5zZmVyOwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIERyYWdDbGllbnQ7CiAg
ICAgY2xhc3MgRHJhZ0RhdGE7CkBAIC0xMDYsMTAgKzEwNiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdm9pZCBtb3VzZU1vdmVkSW50b0RvY3VtZW50KERvY3VtZW50Kik7CiAK
LSAgICAgICAgdm9pZCBkb0ltYWdlRHJhZyhFbGVtZW50JiwgY29uc3QgSW50UG9pbnQmLCBjb25z
dCBJbnRSZWN0JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBJbnRQb2ludCYpOwotICAgICAgICB2b2lk
IGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9p
bnQmLCBDbGlwYm9hcmQmLCBGcmFtZSYsIGJvb2wgZm9yTGluayk7CisgICAgICAgIHZvaWQgZG9J
bWFnZURyYWcoRWxlbWVudCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIERhdGFU
cmFuc2ZlciYsIEZyYW1lJiwgSW50UG9pbnQmKTsKKyAgICAgICAgdm9pZCBkb1N5c3RlbURyYWco
RHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5z
ZmVyJiwgRnJhbWUmLCBib29sIGZvckxpbmspOwogICAgICAgICB2b2lkIGNsZWFudXBBZnRlclN5
c3RlbURyYWcoKTsKLSAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJv
YXJkJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAgICAg
ICB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImLCBFbGVtZW50Jiwg
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAKICAgICAgICAgUGFnZSYgbV9wYWdl
OwogICAgICAgICBEcmFnQ2xpZW50JiBtX2NsaWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ1N0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU3Rh
dGUuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU3RhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRlZiBEcmFnU3RhdGVfaAog
I2RlZmluZSBEcmFnU3RhdGVfaAogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IERyYWdTdGF0ZSB7CiAgICAgUmVmUHRy
PEVsZW1lbnQ+IHNvdXJjZTsgLy8gRWxlbWVudCB0aGF0IG1heSBiZSBhIGRyYWcgc291cmNlLCBm
b3IgdGhlIGN1cnJlbnQgbW91c2UgZ2VzdHVyZS4KICAgICBib29sIHNob3VsZERpc3BhdGNoRXZl
bnRzOwogICAgIERyYWdTb3VyY2VBY3Rpb24gdHlwZTsKLSAgICBSZWZQdHI8Q2xpcGJvYXJkPiBj
bGlwYm9hcmQ7IC8vIFVzZWQgb24gb25seSB0aGUgc291cmNlIHNpZGUgb2YgZHJhZ2dpbmcuCisg
ICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyOyAvLyBVc2VkIG9uIG9ubHkgdGhl
IHNvdXJjZSBzaWRlIG9mIGRyYWdnaW5nLgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gMTY2ODczKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDEyLDcgKzIwMTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlUGFzdGVHbG9iYWxT
ZWxlCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1ib29sIEV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRy
YWdUYXJnZXQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIENsaXBib2FyZCogY2xp
cGJvYXJkKQorYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiBkcmFnVGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKIHsKICAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKIApAQCAtMjAyOCw3ICsyMDI4LDcgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbgogICAgICAgICBldmVudC5tb3Zl
bWVudERlbHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLAogI2VuZGlmCiAgICAg
ICAgIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2
ZW50Lm1ldGFLZXkoKSwKLSAgICAgICAgMCwgMCwgY2xpcGJvYXJkKTsKKyAgICAgICAgMCwgMCwg
ZGF0YVRyYW5zZmVyKTsKIAogICAgIGRyYWdUYXJnZXQuZGlzcGF0Y2hFdmVudChtZS5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIG1lLT5kZWZhdWx0UHJldmVudGVkKCk7CkBA
IC0yMDcyLDkgKzIwNzIsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnZlcnREcmFnT3BlcmF0aW9uVG9E
cm9wCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzRmlsZU9mVHlwZShDbGlwYm9h
cmQmIGNsaXBib2FyZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGlubGluZSBib29sIGhh
c0ZpbGVPZlR5cGUoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IGZpbGVMaXN0ID0gY2xpcGJvYXJkLmZpbGVzKCk7
CisgICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlTGlzdCA9IGRhdGFUcmFuc2Zlci5maWxlcygpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWxlTGlzdC0+bGVuZ3RoKCk7IGkrKykgewog
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmlsZUxpc3QtPml0ZW0oaSktPnR5cGUoKSwg
dHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIwODIsMjMgKzIwODIsMjMgQEAg
c3RhdGljIGlubGluZSBib29sIGhhc0ZpbGVPZlR5cGUoQ2xpcGJvYQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGhhc1N0cmluZ09mVHlwZShDbGlwYm9hcmQmIGNs
aXBib2FyZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGlubGluZSBib29sIGhhc1N0cmlu
Z09mVHlwZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgY29uc3QgU3RyaW5nJiB0eXBlKQog
ewotICAgIHJldHVybiAhdHlwZS5pc051bGwoKSAmJiBjbGlwYm9hcmQudHlwZXMoKS5jb250YWlu
cyh0eXBlKTsKKyAgICByZXR1cm4gIXR5cGUuaXNOdWxsKCkgJiYgZGF0YVRyYW5zZmVyLnR5cGVz
KCkuY29udGFpbnModHlwZSk7CiB9CiAKLXN0YXRpYyBib29sIGhhc0Ryb3Bab25lVHlwZShDbGlw
Ym9hcmQmIGNsaXBib2FyZCwgY29uc3QgU3RyaW5nJiBrZXl3b3JkKQorc3RhdGljIGJvb2wgaGFz
RHJvcFpvbmVUeXBlKERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBjb25zdCBTdHJpbmcmIGtl
eXdvcmQpCiB7CiAgICAgaWYgKGtleXdvcmQuc3RhcnRzV2l0aCgiZmlsZToiKSkKLSAgICAgICAg
cmV0dXJuIGhhc0ZpbGVPZlR5cGUoY2xpcGJvYXJkLCBrZXl3b3JkLnN1YnN0cmluZyg1KSk7Cisg
ICAgICAgIHJldHVybiBoYXNGaWxlT2ZUeXBlKGRhdGFUcmFuc2Zlciwga2V5d29yZC5zdWJzdHJp
bmcoNSkpOwogCiAgICAgaWYgKGtleXdvcmQuc3RhcnRzV2l0aCgic3RyaW5nOiIpKQotICAgICAg
ICByZXR1cm4gaGFzU3RyaW5nT2ZUeXBlKGNsaXBib2FyZCwga2V5d29yZC5zdWJzdHJpbmcoNykp
OworICAgICAgICByZXR1cm4gaGFzU3RyaW5nT2ZUeXBlKGRhdGFUcmFuc2Zlciwga2V5d29yZC5z
dWJzdHJpbmcoNykpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBmaW5k
RHJvcFpvbmUoTm9kZSogdGFyZ2V0LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKK3N0YXRpYyBib29s
IGZpbmREcm9wWm9uZShOb2RlKiB0YXJnZXQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQog
ewogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0YXJnZXQtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxl
bWVudCh0YXJnZXQpIDogdGFyZ2V0LT5wYXJlbnRFbGVtZW50KCk7CiAgICAgZm9yICg7IGVsZW1l
bnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkpIHsKQEAgLTIxMjEsMjAgKzIx
MjEsMjAgQEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgQwogICAgICAg
ICAgICAgICAgIGlmIChkcmFnT3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Ob25lKQogICAgICAg
ICAgICAgICAgICAgICBkcmFnT3BlcmF0aW9uID0gb3A7CiAgICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gbWF0Y2hlZCB8fCBoYXNEcm9wWm9uZVR5cGUoKmNsaXBi
b2FyZCwga2V5d29yZHNbaV0uc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIG1hdGNoZWQgPSBt
YXRjaGVkIHx8IGhhc0Ryb3Bab25lVHlwZSgqZGF0YVRyYW5zZmVyLCBrZXl3b3Jkc1tpXS5zdHJp
bmcoKSk7CiAKICAgICAgICAgICAgIGlmIChtYXRjaGVkICYmIGRyYWdPcGVyYXRpb24gIT0gRHJh
Z09wZXJhdGlvbk5vbmUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKG1hdGNoZWQpIHsKLSAgICAgICAgICAgIGNsaXBib2FyZC0+c2V0RHJvcEVmZmVjdChj
b252ZXJ0RHJhZ09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRpb24oZHJhZ09wZXJhdGlvbikpOwor
ICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXREcm9wRWZmZWN0KGNvbnZlcnREcmFnT3BlcmF0
aW9uVG9Ecm9wWm9uZU9wZXJhdGlvbihkcmFnT3BlcmF0aW9uKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCi1i
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQpCitib29sIEV2ZW50SGFuZGxlcjo6dXBk
YXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5z
ZmVyKiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgYm9vbCBhY2NlcHQgPSBmYWxzZTsKIApAQCAtMjE2
NCwyMyArMjE2NCwyMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29u
CiAgICAgICAgIEZyYW1lKiB0YXJnZXRGcmFtZTsKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUo
bmV3VGFyZ2V0LmdldCgpLCB0YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRG
cmFtZSkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVy
KCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAg
YWNjZXB0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2
ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgICAgICB9IGVsc2UgaWYgKG5ld1RhcmdldCkgewogICAg
ICAgICAgICAgLy8gQXMgcGVyIHNlY3Rpb24gNy45LjQgb2YgdGhlIEhUTUwgNSBzcGVjLiwgd2Ug
bXVzdCBhbHdheXMgZmlyZSBhIGRyYWcgZXZlbnQgYmVmb3JlIGZpcmluZyBhIGRyYWdlbnRlciwg
ZHJhZ2xlYXZlLCBvciBkcmFnb3ZlciBldmVudC4KICAgICAgICAgICAgIGlmIChkcmFnU3RhdGUo
KS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpIHsKICAgICAgICAg
ICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxz
IGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBk
aXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOworICAg
ICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdlbnRl
ckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlm
ICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJn
ZXQuZ2V0KCksIGNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Ba
b25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfQogCiAgICAgICAg
IGlmICh0YXJnZXRJc0ZyYW1lKG1fZHJhZ1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAg
ICAgICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gdGFy
Z2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBjbGlwYm9h
cmQpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIo
KS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNl
IGlmIChtX2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOwor
ICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50
LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKIAogICAgICAgICBpZiAobmV3
VGFyZ2V0KSB7CiAgICAgICAgICAgICAvLyBXZSBkbyBub3QgZXhwbGljaXRseSBjYWxsIGRpc3Bh
dGNoRHJhZ0V2ZW50IGhlcmUgYmVjYXVzZSBpdCBjb3VsZCB1bHRpbWF0ZWx5IHJlc3VsdCBpbiB0
aGUgYXBwZWFyYW5jZSB0aGF0CkBAIC0yMTkxLDE2ICsyMTkxLDE2IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb24KICAgICAgICAgRnJhbWUqIHRhcmdldEZyYW1lOwog
ICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZShuZXdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkg
ewogICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1lKQotICAgICAgICAgICAgICAgIGFjY2VwdCA9
IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgY2xp
cGJvYXJkKTsKKyAgICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0g
ZWxzZSBpZiAobmV3VGFyZ2V0KSB7CiAgICAgICAgICAgICAvLyBOb3RlLCB3aGVuIGRlYWxpbmcg
d2l0aCBzdWItZnJhbWVzLCB3ZSBtYXkgbmVlZCB0byBmaXJlIG9ubHkgYSBkcmFnb3ZlciBldmVu
dCBhcyBhIGRyYWcgZXZlbnQgbWF5IGhhdmUgYmVlbiBmaXJlZCBlYXJsaWVyLgogICAgICAgICAg
ICAgaWYgKCFtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCAmJiBkcmFnU3RhdGUoKS5zb3Vy
Y2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpIHsKICAgICAgICAgICAgICAg
ICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1
bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRj
aERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCku
ZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAg
ICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwg
Km5ld1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBpZiAoIWFjY2Vw
dCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgp
LCBjbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdU
YXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBtX3Nob3VsZE9ubHlGaXJl
RHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwOCwyOSArMjIw
OCwyOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uCiAgICAgcmV0
dXJuIGFjY2VwdDsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIENsaXBib2FyZCogY2xpcGJvYXJkKQordm9p
ZCBFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogewogICAgIEZyYW1lKiB0YXJn
ZXRGcmFtZTsKICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdl
dEZyYW1lKSkgewogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICB0YXJnZXRG
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZCk7
CisgICAgICAgICAgICB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERy
b3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgfSBlbHNlIGlmIChtX2RyYWdUYXJnZXQpIHsK
ICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUoKS5zaG91bGREaXNw
YXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMo
KS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1l
cygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgY2xpcGJvYXJkKTsKKyAg
ICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9k
cmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9CiAgICAgY2xlYXJEcmFnU3Rh
dGUoKTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBDbGlwYm9hcmQqIGNsaXBib2FyZCkKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgRnJhbWUqIHRhcmdldEZy
YW1lOwogICAgIGJvb2wgcHJldmVudGVkRGVmYXVsdCA9IGZhbHNlOwogICAgIGlmICh0YXJnZXRJ
c0ZyYW1lKG1fZHJhZ1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAgICAgICAgIGlmICh0
YXJnZXRGcmFtZSkKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+
ZXZlbnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAg
ICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS5w
ZXJmb3JtRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgfSBlbHNlIGlmICht
X2RyYWdUYXJnZXQpCi0gICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgY2xpcGJvYXJk
KTsKKyAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFt
ZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAg
IGNsZWFyRHJhZ1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0z
MTY1LDEyICszMTY1LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2Vl
ZGUKICAgICByZXR1cm4gYWJzKGRlbHRhLndpZHRoKCkpID49IHRocmVzaG9sZCB8fCBhYnMoZGVs
dGEuaGVpZ2h0KCkpID49IHRocmVzaG9sZDsKIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpm
cmVlQ2xpcGJvYXJkKCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmcmVlRGF0YVRyYW5zZmVyKCkKIHsK
LSAgICBpZiAoIWRyYWdTdGF0ZSgpLmNsaXBib2FyZCkKKyAgICBpZiAoIWRyYWdTdGF0ZSgpLmRh
dGFUcmFuc2ZlcikKICAgICAgICAgcmV0dXJuOwotICAgIGRyYWdTdGF0ZSgpLmNsaXBib2FyZC0+
c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZE51bWIpOwotICAgIGRyYWdTdGF0ZSgpLmNsaXBib2Fy
ZCA9IDA7CisgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsKKyAgICBkcmFnU3RhdGUoKS5kYXRhVHJhbnNm
ZXIgPSAwOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZHJhZ1NvdXJjZUVuZGVkQXQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCkBAIC0z
MTgwLDExICszMTgwLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChj
b24KICAgICBwcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0LCBldmVudCk7CiAKICAgICBpZiAoZHJh
Z1N0YXRlKCkuc291cmNlICYmIGRyYWdTdGF0ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzKSB7Ci0g
ICAgICAgIGRyYWdTdGF0ZSgpLmNsaXBib2FyZC0+c2V0RGVzdGluYXRpb25PcGVyYXRpb24ob3Bl
cmF0aW9uKTsKKyAgICAgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXREZXN0aW5hdGlv
bk9wZXJhdGlvbihvcGVyYXRpb24pOwogICAgICAgICAvLyBGb3Igbm93IHdlIGRvbid0IGNhcmUg
aWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlz
IG5vIGRlZmF1bHQgYmVoYXZpb3IuCiAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50
TmFtZXMoKS5kcmFnZW5kRXZlbnQsIGV2ZW50KTsKICAgICB9Ci0gICAgZnJlZUNsaXBib2FyZCgp
OworICAgIGZyZWVEYXRhVHJhbnNmZXIoKTsKICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAwOwog
ICAgIC8vIEluIGNhc2UgdGhlIGRyYWcgd2FzIGVuZGVkIGR1ZSB0byBhbiBlc2NhcGUga2V5IHBy
ZXNzIHdlIG5lZWQgdG8gZW5zdXJlCiAgICAgLy8gdGhhdCBjb25zZWN1dGl2ZSBtb3VzZW1vdmUg
ZXZlbnRzIGRvbid0IHJlaW5pdGlhdGUgdGhlIGRyYWcgYW5kIGRyb3AuCkBAIC0zMjAxLDcgKzMy
MDEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFCiAvLyBSZXR1
cm4gdmFsdWUgaW5kaWNhdGVzIGlmIHdlIHNob3VsZCBjb250aW51ZSAiZGVmYXVsdCBwcm9jZXNz
aW5nIiwgaS5lLiwgd2hldGhlciBldmVudCBoYW5kbGVyIGNhbmNlbGVkLgogYm9vbCBFdmVudEhh
bmRsZXI6OmRpc3BhdGNoRHJhZ1NyY0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogewotICAgIHJldHVybiAhZGlzcGF0
Y2hEcmFnRXZlbnQoZXZlbnRUeXBlLCAqZHJhZ1N0YXRlKCkuc291cmNlLCBldmVudCwgZHJhZ1N0
YXRlKCkuY2xpcGJvYXJkLmdldCgpKTsKKyAgICByZXR1cm4gIWRpc3BhdGNoRHJhZ0V2ZW50KGV2
ZW50VHlwZSwgKmRyYWdTdGF0ZSgpLnNvdXJjZSwgZXZlbnQsIGRyYWdTdGF0ZSgpLmRhdGFUcmFu
c2Zlci5nZXQoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBFeGFjdGx5T25lQml0U2V0KERyYWdT
b3VyY2VBY3Rpb24gbikKQEAgLTMyOTAsMTAgKzMyOTAsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZURyYWcoY29uc3QgTW91cwogICAgIAogICAgIERyYWdPcGVyYXRpb24gc3JjT3AgPSBE
cmFnT3BlcmF0aW9uTm9uZTsgICAgICAKICAgICAKLSAgICAvLyBUaGlzIGRvZXMgd29yayBvbmx5
IGlmIHdlIG1pc3NlZCBhIGRyYWdFbmQuIERvIGl0IGFueXdheSwganVzdCB0byBtYWtlIHN1cmUg
dGhlIG9sZCBjbGlwYm9hcmQgZ2V0cyBudW1iZWQuCi0gICAgZnJlZUNsaXBib2FyZCgpOworICAg
IC8vIFRoaXMgZG9lcyB3b3JrIG9ubHkgaWYgd2UgbWlzc2VkIGEgZHJhZ0VuZC4gRG8gaXQgYW55
d2F5LCBqdXN0IHRvIG1ha2Ugc3VyZSB0aGUgb2xkIGRhdGFUcmFuc2ZlciBnZXRzIG51bWJlZC4K
KyAgICBmcmVlRGF0YVRyYW5zZmVyKCk7CiAKLSAgICBkcmFnU3RhdGUoKS5jbGlwYm9hcmQgPSBj
cmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpOworICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2ZlciA9
IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCk7CiAgICAgCiAgICAgaWYgKGRyYWdTdGF0ZSgp
LnNob3VsZERpc3BhdGNoRXZlbnRzKSB7CiAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUg
aXMgYSBET00gYmFzZWQgZHJhZy4gSWYgaXQgaXMsIGdldCB0aGUgRE9NIHNwZWNpZmllZCBkcmFn
IGltYWdlIGFuZCBvZmZzZXQuCkBAIC0zMzAyLDcgKzMzMDIsNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMuCiAgICAgICAgICAgICAgICAg
RmxvYXRQb2ludCBhYnNQb3MgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKCk7CiAgICAgICAg
ICAgICAgICAgSW50U2l6ZSBkZWx0YSA9IG1fbW91c2VEb3duUG9zIC0gcm91bmRlZEludFBvaW50
KGFic1Bvcyk7Ci0gICAgICAgICAgICAgICAgZHJhZ1N0YXRlKCkuY2xpcGJvYXJkLT5zZXREcmFn
SW1hZ2UoZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpLCBkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWln
aHQoKSk7CisgICAgICAgICAgICAgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXREcmFn
SW1hZ2UoZHJhZ1N0YXRlKCkuc291cmNlLmdldCgpLCBkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWln
aHQoKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFRoZSByZW5k
ZXJlciBoYXMgZGlzYXBwZWFyZWQsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgb25TdGFydERyYWcg
aGFuZGxlciBoYXMgaGlkZGVuCiAgICAgICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgaW4gc29t
ZSB3YXkuICBJbiB0aGlzIGNhc2Ugd2UganVzdCBraWxsIHRoZSBkcmFnLgpAQCAtMzMxNCwxOCAr
MzMxNCwxOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzCiAgICAg
ICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnRO
YW1lcygpLmRyYWdzdGFydEV2ZW50LCBtX21vdXNlRG93bikKICAgICAgICAgICAgICYmICFtX2Zy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZpZWxkKCk7CiAgICAgICAg
IAotICAgICAgICAvLyBJbnZhbGlkYXRlIGNsaXBib2FyZCBoZXJlIGFnYWluc3QgYW55bW9yZSBw
YXN0ZWJvYXJkIHdyaXRpbmcgZm9yIHNlY3VyaXR5LiAgVGhlIGRyYWcKKyAgICAgICAgLy8gSW52
YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBhZ2FpbnN0IGFueW1vcmUgcGFzdGVib2FyZCB3cml0
aW5nIGZvciBzZWN1cml0eS4gVGhlIGRyYWcKICAgICAgICAgLy8gaW1hZ2UgY2FuIHN0aWxsIGJl
IGNoYW5nZWQgYXMgd2UgZHJhZywgYnV0IG5vdCB0aGUgcGFzdGVib2FyZCBkYXRhLgotICAgICAg
ICBkcmFnU3RhdGUoKS5jbGlwYm9hcmQtPnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRJbWFnZVdy
aXRhYmxlKTsKKyAgICAgICAgZHJhZ1N0YXRlKCkuZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xp
Y3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpJbWFnZVdyaXRhYmxlKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtX21vdXNlRG93bk1heVN0YXJ0RHJhZykgewogICAgICAgICAgICAgLy8gR2F0
aGVyIHZhbHVlcyBmcm9tIERIVE1MIGVsZW1lbnQsIGlmIGl0IHNldCBhbnkuCi0gICAgICAgICAg
ICBzcmNPcCA9IGRyYWdTdGF0ZSgpLmNsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKCk7CisgICAg
ICAgICAgICBzcmNPcCA9IGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c291cmNlT3BlcmF0aW9u
KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFl1Y2ssIGEgZHJhZ2dlZEltYWdlOm1v
dmVUbzogbWVzc2FnZSBjYW4gYmUgZmlyZWQgYXMgYSByZXN1bHQgb2Yga2lja2luZyBvZmYgdGhl
CiAgICAgICAgICAgICAvLyBkcmFnIHdpdGggZHJhZ0ltYWdlISBCZWNhdXNlIG9mIHRoYXQgZHVt
YiByZWVudHJhbmN5LCB3ZSBtYXkgdGhpbmsgd2UndmUgbm90CiAgICAgICAgICAgICAvLyBzdGFy
dGVkIHRoZSBkcmFnIHdoZW4gdGhhdCBoYXBwZW5zLiBTbyB3ZSBoYXZlIHRvIGFzc3VtZSBpdCdz
IHN0YXJ0ZWQgYmVmb3JlIHdlIGtpY2sgaXQgb2ZmLgotICAgICAgICAgICAgZHJhZ1N0YXRlKCku
Y2xpcGJvYXJkLT5zZXREcmFnSGFzU3RhcnRlZCgpOworICAgICAgICAgICAgZHJhZ1N0YXRlKCku
ZGF0YVRyYW5zZmVyLT5zZXREcmFnSGFzU3RhcnRlZCgpOwogICAgICAgICB9CiAgICAgfQogICAg
IApAQCAtMzM0OCw3ICszMzQ4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcoY29u
c3QgTW91cwogY2xlYW51cERyYWc6CiAgICAgaWYgKCFtX21vdXNlRG93bk1heVN0YXJ0RHJhZykg
ewogICAgICAgICAvLyBTb21ldGhpbmcgZmFpbGVkIHRvIHN0YXJ0IHRoZSBkcmFnLCBjbGVhbiB1
cC4KLSAgICAgICAgZnJlZUNsaXBib2FyZCgpOworICAgICAgICBmcmVlRGF0YVRyYW5zZmVyKCk7
CiAgICAgICAgIGRyYWdTdGF0ZSgpLnNvdXJjZSA9IDA7CiAgICAgfQogICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw4IEBA
IGNsYXNzIE5TVmlldzsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0b3Njcm9sbENv
bnRyb2xsZXI7Ci1jbGFzcyBDbGlwYm9hcmQ7CiBjbGFzcyBDb250YWluZXJOb2RlOworY2xhc3Mg
RGF0YVRyYW5zZmVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZl
bnQ7CkBAIC0xNTksOSArMTU5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FwdHVyaW5nTW91
c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOyAvLyBBIGNhbGxlciBpcyByZXNw
b25zaWJsZSBmb3IgcmVzZXR0aW5nIGNhcHR1cmluZyBlbGVtZW50IHRvIDAuCiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgQ2xpcGJvYXJkKik7Ci0gICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBDbGlwYm9hcmQqKTsKLSAgICBib29sIHBlcmZvcm1E
cmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBDbGlwYm9hcmQqKTsKKyAgICBi
b29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFu
c2ZlciopOworICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgRGF0YVRyYW5zZmVyKik7CisgICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAgICAgdm9pZCB1cGRhdGVEcmFn
U3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudCk7
CiAjZW5kaWYKIApAQCAtMzA1LDcgKzMwNSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIERyYWdT
dGF0ZSYgZHJhZ1N0YXRlKCk7CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBUZXh0RHJhZ0RlbGF5
OwogICAgIAotICAgIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVEcmFnZ2luZ0NsaXBib2Fy
ZCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0Rh
dGFUcmFuc2ZlcigpIGNvbnN0OwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKICAg
ICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25z
dDsKQEAgLTM2NSw5ICszNjUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBkaXNwYXRjaE1vdXNl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwgYm9vbCBj
YW5jZWxhYmxlLCBpbnQgY2xpY2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9v
bCBzZXRVbmRlcik7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIGRpc3BhdGNo
RHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiB0YXJnZXQs
IGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIENsaXBib2FyZCopOworICAgIGJvb2wgZGlzcGF0
Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIHRhcmdl
dCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKLSAgICB2b2lk
IGZyZWVDbGlwYm9hcmQoKTsKKyAgICB2b2lkIGZyZWVEYXRhVHJhbnNmZXIoKTsKIAogICAgIGJv
b2wgaGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgQ2hlY2tE
cmFnSHlzdGVyZXNpcyk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2
ZW50SGFuZGxlckVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9lZmwv
RXZlbnRIYW5kbGVyRWZsLmNwcAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCi0j
aW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKQEAgLTk3LDkgKzk3LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NX
aGVlbEV2ZW50VG9XaWRnZQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29u
c3QKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
RGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpOworICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0Nv
bnRyb2xsZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0Ry
YWdDb250cm9sbGVyR3RrLmNwcAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIK
IAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2lu
Y2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCkBAIC02OSw5ICs2OSw5IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5
c3RlbUQKIHsKIH0KIAotdm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKENsaXBib2FyZCYgY2xpcGJvYXJkLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRX
cml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgY2xpcGJvYXJk
LnBhc3RlYm9hcmQoKS53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwgbGFiZWwpOworICAgIGRhdGFU
cmFuc2Zlci5wYXN0ZWJvYXJkKCkud3JpdGVJbWFnZShlbGVtZW50LCB1cmwsIGxhYmVsKTsKIH0K
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3Bw
CShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRs
ZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmQu
aCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAj
aW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTk3LDkg
Kzk3LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZQogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRs
ZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKK1Bhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgIHJldHVy
biBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CiAjZW5kaWYKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0JKHJldmlz
aW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogCi0jaW1wb3J0ICJDbGlwYm9hcmQuaCIKKyNpbXBvcnQgIkRhdGFUcmFuc2Zlci5o
IgogI2ltcG9ydCAiRHJhZ0NsaWVudC5oIgogI2ltcG9ydCAiRHJhZ0RhdGEuaCIKICNpbXBvcnQg
IkVsZW1lbnQuaCIKQEAgLTgyLDkgKzgyLDkgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51
cEFmdGVyU3lzdGVtRAogICAgICAgICBkcmFnRW5kZWQoKTsKIH0KIAotdm9pZCBEcmFnQ29udHJv
bGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKENsaXBib2FyZCYgY2xpcGJvYXJkLCBFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3ZvaWQg
RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlciwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgbGFiZWwpCiB7Ci0gICAgbV9jbGllbnQuZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNsaXBi
b2FyZC5wYXN0ZWJvYXJkKCkubmFtZSgpLCBlbGVtZW50LCB1cmwsIGxhYmVsLCBlbGVtZW50LmRv
Y3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9jbGllbnQuZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KGRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpLCBlbGVtZW50LCB1cmwsIGxhYmVsLCBl
bGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0JKHJldmlz
aW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJsb2NrRXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgot
I2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkZvY3VzQ29udHJvbGxlci5oIgpAQCAtNjgwLDEzICs2ODAsMTMgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjbwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAot
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9h
cmQoKSBjb25zdAorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZv
cmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8v
IGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3Qg
ZHJhZy4KICAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNy
ZWF0ZShOU0RyYWdQYm9hcmQpOwogICAgIHBhc3RlYm9hcmQtPmNsZWFyKCk7Ci0gICAgcmV0dXJu
IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICByZXR1cm4gRGF0YVRyYW5z
ZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDE2Njg3
MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRl
ICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjksOSArNjksOSBAQCB2b2lk
IERyYWdDb250cm9sbGVyOjpjbGVhbnVwQWZ0ZXJTeXN0ZW1ECiB7CiB9CiAKLXZvaWQgRHJhZ0Nv
bnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQmIGNsaXBib2FyZCwg
RWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCit2
b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIGxhYmVsKQogewotICAgIFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQgPSBjbGlwYm9hcmQu
cGFzdGVib2FyZCgpOworICAgIFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQgPSBkYXRhVHJhbnNmZXIu
cGFzdGVib2FyZCgpOwogCiAgICAgLy8gRklYTUU6IERvIHdlIHJlYWxseSBuZWVkIHRoaXMgY2hl
Y2s/CiAgICAgaWYgKCFwYXN0ZWJvYXJkLndyaXRhYmxlRGF0YU9iamVjdCgpKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCShyZXZpc2lvbiAxNjY4
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAK
ICNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKICNpbmNsdWRlICJD
dXJzb3IuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50
LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CkBAIC05MiwxMiArOTIsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmll
dyhjbwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKK1Bhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKIHsKICNpZiBPUyhXSU5DRSkKICAgICByZXR1cm4gMDsKICNlbHNlCi0gICAgcmV0
dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICByZXR1cm4gRGF0YVRy
YW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogI2VuZGlmCiB9CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHJldmlzaW9uIDE2Njg3MykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NyArNjIsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIFJhbmdlOwogY2xhc3MgU2hhcmVkQnVmZmVy
OwogCi1lbnVtIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCB7IERlZmF1
bHRTZWxlY3RlZFRleHRUeXBlLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkIH07Citl
bnVtIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRT
ZWxlY3RlZFRleHRUeXBlLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yRGF0YVRyYW5zZmVyIH07CiAK
IC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGgg
dGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3AuCiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50KEZyYW1lJiwgUmFuZ2UmLCBib29sIGFsbG93
UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9s
YXRpb24uCiAgICAgdm9pZCB3cml0ZUltYWdlKEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIHRpdGxlKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KLSAgICB2b2lkIHdy
aXRlU2VsZWN0aW9uKFJhbmdlJiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmLCBT
aG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgPSBEZWZhdWx0U2VsZWN0ZWRU
ZXh0VHlwZSk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCisgICAgdm9pZCB3cml0ZVNl
bGVjdGlvbihSYW5nZSYsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiwgU2hvdWxk
U2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyID0gRGVmYXVsdFNlbGVjdGVkVGV4
dFR5cGUpOyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uLgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShHVEspCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9h
cmRHdGsuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCwxMCArMTU4LDEwIEBA
IGJvb2wgUGFzdGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW4KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UmIHNlbGVjdGVk
UmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiBmcmFtZSwgU2hvdWxkU2Vy
aWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkIHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UmIHNl
bGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lJiBmcmFtZSwgU2hv
dWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyIHNob3VsZFNlcmlhbGl6ZVNl
bGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcikKIHsKICAgICBtX2RhdGFPYmplY3QtPmNsZWFyQWxs
KCk7Ci0gICAgbV9kYXRhT2JqZWN0LT5zZXRUZXh0KHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCA9PSBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkID8gZnJhbWUu
ZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCkgOiBmcmFtZS5lZGl0b3IoKS5zZWxl
Y3RlZFRleHQoKSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXRUZXh0KHNob3VsZFNlcmlhbGl6ZVNl
bGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciA9PSBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yRGF0YVRy
YW5zZmVyID8gZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkgOiBm
cmFtZS5lZGl0b3IoKS5zZWxlY3RlZFRleHQoKSk7CiAgICAgbV9kYXRhT2JqZWN0LT5zZXRNYXJr
dXAoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2Us
IGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKSk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQko
cmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbXBvcnQgIlBhc3Rl
Ym9hcmQuaCIKIAogI2ltcG9ydCAiQ2FjaGVkSW1hZ2UuaCIKLSNpbXBvcnQgIkNsaXBib2FyZC5o
IgogI2ltcG9ydCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiRG9jdW1lbnQuaCIKICNp
bXBvcnQgIkRvY3VtZW50RnJhZ21lbnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAJKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDM4LDcgKzQzOCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVSYW5nZVRvRGF0YU9iamVjdCgK
ICAgICBpZiAobWVkaXVtLmhHbG9iYWwgJiYgRkFJTEVEKG1fd3JpdGFibGVEYXRhT2JqZWN0LT5T
ZXREYXRhKGh0bWxGb3JtYXQoKSwgJm1lZGl1bSwgVFJVRSkpKQogICAgICAgICA6Okdsb2JhbEZy
ZWUobWVkaXVtLmhHbG9iYWwpOwogCi0gICAgU3RyaW5nIHN0ciA9IGZyYW1lLmVkaXRvcigpLnNl
bGVjdGVkVGV4dEZvckNsaXBib2FyZCgpOworICAgIFN0cmluZyBzdHIgPSBmcmFtZS5lZGl0b3Io
KS5zZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKICAgICByZXBsYWNlTmV3bGluZXNXaXRo
V2luZG93c1N0eWxlTmV3bGluZXMoc3RyKTsKICAgICByZXBsYWNlTkJTUFdpdGhTcGFjZShzdHIp
OwogICAgIG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShzdHIpOwpAQCAtNDUwLDcg
KzQ1MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVSYW5nZVRvRGF0YU9iamVjdCgKICAgICAg
ICAgbV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoc21hcnRQYXN0ZUZvcm1hdCgpLCAmbWVk
aXVtLCBUUlVFKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSYg
c2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmIGZyYW1lLCBT
aG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgc2hvdWxkU2VyaWFsaXplU2Vs
ZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihS
YW5nZSYgc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUmIGZy
YW1lLCBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgc2hvdWxkU2Vy
aWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKQogewogICAgIGNsZWFyKCk7CiAKQEAg
LTQ2Niw3ICs0NjYsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlJiBz
CiAgICAgfQogICAgIAogICAgIC8vIFB1dCBwbGFpbiBzdHJpbmcgb24gdGhlIHBhc3RlYm9hcmQu
IENGX1VOSUNPREVURVhUIGNvdmVycyBDRl9URVhUIGFzIHdlbGwKLSAgICBTdHJpbmcgc3RyID0g
c2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID09IEluY2x1ZGVJbWFnZUFs
dFRleHRGb3JDbGlwYm9hcmQgPyBmcmFtZS5lZGl0b3IoKS5zZWxlY3RlZFRleHRGb3JDbGlwYm9h
cmQoKSA6IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dCgpOworICAgIFN0cmluZyBzdHIgPSBz
aG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgPT0gSW5jbHVkZUltYWdl
QWx0VGV4dEZvckRhdGFUcmFuc2ZlciA/IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dEZvckRh
dGFUcmFuc2ZlcigpIDogZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0KCk7CiAgICAgcmVwbGFj
ZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CiAgICAgcmVwbGFjZU5CU1BX
aXRoU3BhY2Uoc3RyKTsKICAgICBpZiAoOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNjY5MzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNC0wOCAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJkIHRvIERh
dGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKIDIwMTQtMDQtMDggIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBhIGJ1bmRsZSBm
b3JtIGRlbGVnYXRlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRleHREaWRDaGFuZ2VJblRleHRG
aWVsZApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBl
cmZvcm1EcmFnRGVzdGkKICAgICAgICAgbV9wYWdlLT5tYXlQZXJmb3JtVXBsb2FkRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uKCk7IC8vIFVwbG9hZCBjYW4gaGFwcGVuIGZyb20gYSBkcm9wIGV2ZW50IGhh
bmRsZXIsIHNvIHdlIHNob3VsZCBwcmVwYXJlIGVhcmx5LgogfQogCi12b2lkIFdlYkRyYWdDbGll
bnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJ
bnRQb2ludCYsIENsaXBib2FyZCYpCit2b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJh
Z1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFu
c2ZlciYpCiB7CiB9CiAKQEAgLTU3LDcgKzU3LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFn
Q2xpZW50OjpkcmFnU291cgogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
R1RLKQotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJ
bnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29sKQordm9p
ZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQogewogfQogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDExICs0MywxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdEZXN0
aW5hdGlvbkFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3Jl
OjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkRh
dGFUcmFuc2ZlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25N
YXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZXZlbnRQb3MsIFdlYkNvcmU6OkNsaXBib2FyZCYsIFdlYkNvcmU6OkZyYW1lJiwg
Ym9vbCBsaW5rRHJhZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRE
cmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJ
bWFnZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpE
YXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3Zl
cnJpZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFu
ZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVs
ZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFt
ZSopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCShyZXZp
c2lvbiAxNjY4NzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmUKICAgICByZXR1cm4gYml0
bWFwLnJlbGVhc2UoKTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoUmV0YWlu
UHRyPE5TSW1hZ2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBvaW50
JiwgQ2xpcGJvYXJkJiwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQordm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZyYW1lLCBi
b29sIGxpbmtEcmFnKQogewogICAgIEludFNpemUgYml0bWFwU2l6ZShbaW1hZ2Ugc2l6ZV0pOwog
ICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IGNvbnZlcnRJbWFnZVRvQml0bWFw
KGltYWdlLmdldCgpLCBiaXRtYXBTaXplKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE2NjkzNCkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDE0LTA0LTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDbGlwYm9hcmQgdG8gRGF0YVRyYW5zZmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEzNzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UERGVmlld1BsYWNlaG9sZGVyLm1tOgorCiAyMDE0LTA0LTAyICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSB0aGUgbGVnYWN5IHN0
cmluZyBkcmF3aW5nIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERG
Vmlld1BsYWNlaG9sZGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZp
ZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCShyZXZpc2lvbiAxNjY4NzMpCisrKyBTb3VyY2Uv
V2ViS2l0L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYu
aD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KICNpbXBvcnQgPFVJ
S2l0L1VJS2l0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NsaXBib2FyZC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9EYXRhVHJhbnNmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9ybVN0YXRl
Lmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjY5MzQpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0w
NC0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgQ2xpcGJvYXJkIHRvIERhdGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYkRy
YWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbik6CisgICAgICAgIChXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKwog
MjAxNC0wNC0wOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdCBwYXJ0IG9mIFtDb2NvYV0gQWRkIFdLRm9ybURlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCShyZXZpc2lvbiAx
NjY4NzMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDExICszMywxMSBAQCBjbGFzcyBXZWJEcmFnQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkRyCiBwdWJsaWM6CiAgICAgV2ViRHJhZ0NsaWVudChXZWJWaWV3
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdl
YkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6
OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xp
cGJvYXJkJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJj
ZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdE
YXRhJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdT
b3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1Bv
aW50KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJ
bWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBldmVudFBvcywgV2ViQ29yZTo6Q2xpcGJvYXJkJiwgV2ViQ29yZTo6RnJhbWUm
LCBib29sIGxpbmtEcmFnKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdl
YkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBvcywgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwg
V2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFnKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUs
IFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBX
ZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZp
ZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQubW0JKHJldmlzaW9uIDE2Njg3MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcg
QEAKICNpbXBvcnQgIldlYlVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYlVJRGVsZWdhdGVQcml2
YXRlLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNvcmUvQ2xp
cGJvYXJkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9EcmFnRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRWRpdG9yQ2xpZW50Lmg+CkBAIC04NCwxMiArODQsMTIgQEAgV2ViQ29yZTo6RHJhZ1Nv
dXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OgogICAgIHJldHVybiAoRHJhZ1NvdXJjZUFjdGlvbilb
W21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZHJhZ1Nv
dXJjZUFjdGlvbk1hc2tGb3JQb2ludDp2aWV3UG9pbnRdOwogfQogCi12b2lkIFdlYkRyYWdDbGll
bnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9u
IGFjdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1vdXNlRG93blBvaW50LCBXZWJDb3Jl
OjpDbGlwYm9hcmQmIGNsaXBib2FyZCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1E
cmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWN0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgbW91c2VEb3duUG9pbnQsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYg
ZGF0YVRyYW5zZmVyKQogewotICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3
ZWJWaWV3Om1fd2ViVmlldyB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3Vy
Y2VBY3Rpb24pYWN0aW9uIGZyb21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpb
TlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpjbGlwYm9hcmQucGFzdGVib2FyZCgpLm5h
bWUoKV1dOworICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1f
d2ViVmlldyB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VBY3Rpb24p
YWN0aW9uIGZyb21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQYXN0ZWJv
YXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKV1d
OwogfQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0lt
YWdlLCBjb25zdCBJbnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgQ2xpcGJv
YXJkJiBjbGlwYm9hcmQsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKK3ZvaWQgV2ViRHJh
Z0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50
JiBhdCwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2Zl
ciwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQogewogICAgIFJldGFpblB0cjxXZWJIVE1M
Vmlldz4gaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKVtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBk
b2N1bWVudFZpZXddOwogICAgIGlmICghW2h0bWxWaWV3LmdldCgpIGlzS2luZE9mQ2xhc3M6W1dl
YkhUTUxWaWV3IGNsYXNzXV0pCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50
OjpzdGFydERyYWcoRHJhZ0ltYWdlUgogICAgIFJldGFpblB0cjxXZWJIVE1MVmlldz4gdG9wVmll
d1Byb3RlY3RvciA9IHRvcEhUTUxWaWV3OwogICAgIAogICAgIFt0b3BIVE1MVmlldyBfc3RvcEF1
dG9zY3JvbGxUaW1lcl07Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVi
b2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6Y2xpcGJvYXJkLnBhc3RlYm9hcmQoKS5uYW1lKCldOwor
ICAgIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdp
dGhOYW1lOmRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpXTsKIAogICAgIE5TSW1hZ2Ug
KmRyYWdOU0ltYWdlID0gZHJhZ0ltYWdlLmdldCgpOwogICAgIFdlYkhUTUxWaWV3ICpzb3VyY2VI
VE1MVmlldyA9IGh0bWxWaWV3LmdldCgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQREZWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUERGVmlldy5tbQkocmV2aXNpb24gMTY2ODczKQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBACiAjaW1w
b3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFBE
RktpdC9QREZLaXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ2xpcGJvYXJkLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0Zvcm1TdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTY2OTQzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDQtMDggIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENsaXBib2FyZCB0byBEYXRhVHJh
bnNmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vZG9tLWNvbnN0cnVjdG9ycy5odG1sOgorICAgICAgICAqIGpzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGstd2sxL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay13azIvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLW1vdW50YWlubGlvbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2lu
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorCiAy
MDE0LTA0LTA4ICBNb3J0ZW4gU3RlbnNob3JuZSAgPG1zdGVuc2hvQG9wZXJhLmNvbT4KIAogICAg
ICAgICBbTmV3IE11bHRpY29sdW1uXSBDaGlsZCB0b3AgbWFyZ2luIHNvbWV0aW1lcyBpZ25vcmVk
IGZvciBjb2x1bW4gYmFsYW5jaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2ODczKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTcxLDcgKzcxLDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgnSFRNTFRpdGxlRWxlbWVu
dCcpIGlzIAogUEFTUyBUcnlBbGxvY2F0ZSgnSFRNTFVMaXN0RWxlbWVudCcpIGlzICdleGNlcHRp
b24nCiBQQVNTIFRyeUFsbG9jYXRlKCdIVE1MRWxlbWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNT
IFRyeUFsbG9jYXRlKCdDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnKSBpcyAnZXhjZXB0aW9uJwot
UEFTUyBUcnlBbGxvY2F0ZSgnQ2xpcGJvYXJkJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0NvdW50ZXInKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTQ2hh
cnNldFJ1bGUnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTRm9udEZhY2VS
dWxlJykgaXMgJ2V4Y2VwdGlvbicKQEAgLTg2LDYgKzg1LDcgQEAgUEFTUyBUcnlBbGxvY2F0ZSgn
Q1NTU3R5bGVSdWxlJykgaXMgJ2V4YwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTU3R5bGVTaGVldCcp
IGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDU1NWYWx1ZScpIGlzICdleGNlcHRp
b24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDU1NWYWx1ZUxpc3QnKSBpcyAnZXhjZXB0aW9uJworUEFT
UyBUcnlBbGxvY2F0ZSgnRGF0YVRyYW5zZmVyJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0RPTUltcGxlbWVudGF0aW9uJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2Nh
dGUoJ0hUTUxDb2xsZWN0aW9uJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ01l
ZGlhTGlzdCcpIGlzICdleGNlcHRpb24nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20t
Y29uc3RydWN0b3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9t
LWNvbnN0cnVjdG9ycy5odG1sCShyZXZpc2lvbiAxNjY4NzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDYg
QEAgdmFyIG9iamVjdHNfZXhjZXB0aW9uID0gWwogICAgICdIVE1MVUxpc3RFbGVtZW50JywKICAg
ICAnSFRNTEVsZW1lbnQnLAogICAgICdDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnLAotICAgICdD
bGlwYm9hcmQnLAogICAgICdDb3VudGVyJywKICAgICAnQ1NTQ2hhcnNldFJ1bGUnLAogICAgICdD
U1NGb250RmFjZVJ1bGUnLApAQCAtOTYsNiArOTUsNyBAQCB2YXIgb2JqZWN0c19leGNlcHRpb24g
PSBbCiAgICAgJ0NTU1N0eWxlU2hlZXQnLAogICAgICdDU1NWYWx1ZScsCiAgICAgJ0NTU1ZhbHVl
TGlzdCcsCisgICAgJ0RhdGFUcmFuc2ZlcicsCiAgICAgJ0RPTUltcGxlbWVudGF0aW9uJywKICAg
ICAnSFRNTENvbGxlY3Rpb24nLAogICAgICdNZWRpYUxpc3QnLApJbmRleDogTGF5b3V0VGVzdHMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Njg3MykKKysrIExheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xODgsMTEgKzE4OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGll
bnRSZWN0TGlzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuZW51bWVy
YWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0NsaWVudFJlY3RMaXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS52YWx1ZSBpcyBDbGlw
Ym9hcmQKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlw
Ym9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbGlwYm9hcmQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2
ZW50JykudmFsdWUgaXMgQ2xvc2VFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCkBAIC0yNjMsNiArMjU4LDExIEBA
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRGF0YUN1ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuY29uZmlndXJhYmxlIGlzIHRydWUK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNm
ZXInKS52YWx1ZSBpcyBEYXRhVHJhbnNmZXIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMg
ZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRh
VHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RGF0YVRyYW5zZmVyJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS52YWx1ZSBpcyBEZWxheU5vZGUK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Njg3MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTg4LDExICsxODgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnQ2xpZW50UmVjdExpc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlz
dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykudmFs
dWUgaXMgQ2xpcGJvYXJkCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnQ2xpcGJvYXJkJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmNvbmZpZ3Vy
YWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnQ2xvc2VFdmVudCcpLnZhbHVlIGlzIENsb3NlRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnQ2xvc2VFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpAQCAtMjYzLDYg
KzI1OCwxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmNvbmZpZ3VyYWJs
ZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RGF0YVRyYW5zZmVyJykudmFsdWUgaXMgRGF0YVRyYW5zZmVyCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRGF0YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJyku
ZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykudmFsdWUgaXMg
RGVsYXlOb2RlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RGVsYXlOb2RlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2sxL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azEvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Njg3MykKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay13azEvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5MywxMSArMTkzLDYgQEAgUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnQ2xpZW50UmVjdExpc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3QnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0NsaXBib2FyZCcpLnZhbHVlIGlzIENsaXBib2FyZAotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0NsaXBib2FyZCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmVudW1lcmFi
bGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdDbGlwYm9hcmQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZlbnQnKS52YWx1ZSBpcyBDbG9zZUV2ZW50
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVu
dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKQEAgLTI2OCw2ICsyNjMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0RhdGFDdWUnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuZW51bWVyYWJs
ZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0RhdGFDdWUnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLnZhbHVlIGlzIERhdGFUcmFuc2Zl
cgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFu
c2ZlcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0RlbGF5Tm9kZScpLnZhbHVlIGlzIERlbGF5Tm9kZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Rl
bGF5Tm9kZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrLXdrMi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2sy
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxNjY4NzMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xOTMsMTEgKzE5Myw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRS
ZWN0TGlzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuZW51bWVyYWJs
ZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0NsaWVudFJlY3RMaXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS52YWx1ZSBpcyBDbGlwYm9h
cmQKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9h
cmQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdDbGlwYm9hcmQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuY29uZmlndXJhYmxlIGlzIHRydWUK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50
JykudmFsdWUgaXMgQ2xvc2VFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCkBAIC0yNjgsNiArMjYzLDExIEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRGF0YUN1ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXIn
KS52YWx1ZSBpcyBEYXRhVHJhbnNmZXIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJh
bnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0
YVRyYW5zZmVyJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS52YWx1ZSBpcyBEZWxheU5vZGUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tb3VudGFpbmxpb24vanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2ODczKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDEx
ICsxODgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3Qn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlzdCcpLmVudW1lcmFibGUgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRS
ZWN0TGlzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykudmFsdWUgaXMgQ2xpcGJvYXJkCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJv
YXJkJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLnZhbHVl
IGlzIENsb3NlRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpAQCAtMjYzLDYgKzI1OCwxMSBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFD
dWUnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykudmFsdWUg
aXMgRGF0YVRyYW5zZmVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRGF0YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuZW51bWVyYWJsZSBpcyBmYWxzZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2Zl
cicpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykudmFsdWUgaXMgRGVsYXlOb2RlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNjY4NzMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTE4OCwxMSArMTg4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVu
dFJlY3RMaXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3QnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnQ2xpZW50UmVjdExpc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLnZhbHVlIGlzIENsaXBi
b2FyZAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBi
b2FyZCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0NsaXBib2FyZCcpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZl
bnQnKS52YWx1ZSBpcyBDbG9zZUV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKQEAgLTI2Myw2ICsyNTgsMTEgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdEYXRhQ3VlJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2Zl
cicpLnZhbHVlIGlzIERhdGFUcmFuc2ZlcgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFU
cmFuc2ZlcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmVudW1lcmFibGUg
aXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdE
YXRhVHJhbnNmZXInKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScpLnZhbHVlIGlzIERlbGF5Tm9kZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScp
Lmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2ODczKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzMsMTEgKzEzMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbGllbnRSZWN0TGlzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0
JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS52YWx1
ZSBpcyBDbGlwYm9hcmQKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuY29uZmlndXJh
YmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdDbG9zZUV2ZW50JykudmFsdWUgaXMgQ2xvc2VFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCkBAIC0yMDMsNiAr
MTk4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuY29uZmlndXJhYmxl
IGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdE
YXRhVHJhbnNmZXInKS52YWx1ZSBpcyBEYXRhVHJhbnNmZXIKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEb2N1bWVudCcpLnZhbHVlIGlzIERv
Y3VtZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRG9j
dW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEb2N1bWVudCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228880</attachid>
            <date>2014-04-08 13:45:09 -0700</date>
            <delta_ts>2014-04-08 14:59:02 -0700</delta_ts>
            <desc>updated to ToT</desc>
            <filename>DataTransfer.txt</filename>
            <type>text/plain</type>
            <size>228928</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MSBAQAorMjAxNC0wNC0wOCAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJk
IHRvIERhdGFUcmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyB0aGUgbmFtZSB1c2VkIGluIEhUTUw1LCBhbmQgaXQncyBtdWNoIGJl
dHRlciB0aGFuIHRoZSBjb25mdXNpbmcgQ2xpcGJvYXJkIG9uZS4KKworICAgICAgICBSZW5hbWVk
IHJlbGF0ZWQgZW51bXMgdG9vLCBhbmQgbWFkZSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgYW4g
ZW51bSBjbGFzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDbGlwYm9hcmRD
dXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVy
Q3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlw
Ym9hcmRDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNEYXRhVHJhbnNmZXI6OnR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2xpcGJvYXJkOjp0eXBlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAgICogZG9tL0NsaXBi
b2FyZC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaXBib2FyZC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkRXZlbnQ6OkNsaXBib2FyZEV2ZW50
KToKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkRXZlbnQ6
OmNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0NsaXBib2FyZE1hYy5tbTogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9EYXRh
VHJhbnNmZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNw
cC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6fkRhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhVHJhbnNmZXI6OnNldEFjY2Vzc1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXI6OmNhblJlYWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXI6OmNhblJlYWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2FuV3Jp
dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2xlYXJEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Z2V0RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXI6OnNldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
Ojp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6ZHJvcEVmZmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXI6OnNldERyb3BFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjplZmZlY3RBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6
c2V0RWZmZWN0QWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OnNldERy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y2FuU2V0RHJhZ0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6dXBkYXRlRHJhZ0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y3JlYXRlRHJhZ0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdJbWFnZUxvYWRlcjo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlcjo6c291cmNlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFU
cmFuc2Zlcjo6ZGVzdGluYXRpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjpzZXRTb3VyY2VPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6OkNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6On5DbGlwYm9hcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpz
ZXRBY2Nlc3NQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpj
YW5SZWFkVHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjYW5S
ZWFkRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNhbldyaXRl
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNsZWFyRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmdldERhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpzZXREYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6dHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkOjpmaWxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmQ6OmRyb3BFZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpz
ZXREcm9wRWZmZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6ZWZm
ZWN0QWxsb3dlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnNldEVm
ZmVjdEFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpzZXRE
cmFnSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNh
blNldERyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnVw
ZGF0ZURyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNy
ZWF0ZURyYWdJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnNv
dXJjZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmRl
c3RpbmF0aW9uT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2Fy
ZDo6c2V0U291cmNlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZDo6c2V0RGVzdGluYXRpb25PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9E
YXRhVHJhbnNmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5o
LgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmlkbC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaDoKKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVyTWFjLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpjcmVhdGVE
cmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2Up
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnQ6OmNsaXBib2FyZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OmludGVybmFsRGF0
YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpjbGlwYm9hcmQpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9FdmVudC5pZGw6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVu
dDo6aW5pdE1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpNb3VzZUV2ZW50OjpkYXRhVHJhbnNmZXIpOgorICAgICAgICAqIGRvbS9Nb3Vz
ZUV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5ESFRNTEN1dCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhbkRIVE1MQ29weSk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmNhbkRIVE1MUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0
cnlESFRNTENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cnlESFRNTEN1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnRyeURIVE1MUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KToKKyAgICAg
ICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9EcmFnQ2xpZW50Lmg6Cisg
ICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZHJhZ0V4aXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6cGVyZm9ybURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRyeURI
VE1MRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKToKKyAgICAgICAgKiBwYWdl
L0RyYWdDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9EcmFnU3RhdGUuaDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmRpc3BhdGNoRHJhZ0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0ZpbGVPZlR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6aGFzU3RyaW5nT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Omhh
c0Ryb3Bab25lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRHJvcFpvbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZnJlZURhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6ZGlzcGF0Y2hEcmFnU3JjRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZnJlZUNs
aXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBwYWdl
L2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdl
L21hYy9EcmFnQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJh
Z2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVh
dGVEcmFnZ2luZ0NsaXBib2FyZCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS93aW4vRHJhZ0Nv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdhdGFU
cmFuc2Zlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
Q2xpcGJvYXJkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUmFuZ2VUb0RhdGFPYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorCiAyMDE0
LTA0LTA4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFj
XSBBbHdheXMgZG8gYSBmdWxsIEdDIHdoZW4gc2ltdWxhdGluZyBtZW1vcnkgcHJlc3N1cmUuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM0NCw3ICszNDQsNiBAQCBzZXQo
V2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vQ2hpbGROb2RlLmlkbAogICAgIGRvbS9DbGllbnRS
ZWN0LmlkbAogICAgIGRvbS9DbGllbnRSZWN0TGlzdC5pZGwKLSAgICBkb20vQ2xpcGJvYXJkLmlk
bAogICAgIGRvbS9Db21tZW50LmlkbAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbAogICAg
IGRvbS9DdXN0b21FdmVudC5pZGwKQEAgLTM1NCw2ICszNTMsNyBAQCBzZXQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5pZGwKICAgICBkb20vRE9NU3Ry
aW5nTGlzdC5pZGwKICAgICBkb20vRE9NU3RyaW5nTWFwLmlkbAorICAgIGRvbS9EYXRhVHJhbnNm
ZXIuaWRsCiAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCiAgICAgZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0LmlkbAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKQEAgLTExMjcsNyAr
MTEyNyw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vQ2xhc3NOb2RlTGlzdC5jcHAK
ICAgICBkb20vQ2xpZW50UmVjdC5jcHAKICAgICBkb20vQ2xpZW50UmVjdExpc3QuY3BwCi0gICAg
ZG9tL0NsaXBib2FyZC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9tL0Nv
bGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9Db21tZW50LmNwcApAQCAtMTE0MSw2ICsx
MTQwLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKICAgICBkb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vRE9NU3RyaW5n
TGlzdC5jcHAKKyAgICBkb20vRGF0YVRyYW5zZmVyLmNwcAogICAgIGRvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcAogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAogICAgIGRvbS9EZWNvZGVk
RGF0YURvY3VtZW50UGFyc2VyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAko
cmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw2IEBACiAjaW5jbHVkZSAiSlNDaGFyYWN0ZXJEYXRh
LmNwcCIKICNpbmNsdWRlICJKU0NsaWVudFJlY3QuY3BwIgogI2luY2x1ZGUgIkpTQ2xpZW50UmVj
dExpc3QuY3BwIgotI2luY2x1ZGUgIkpTQ2xpcGJvYXJkLmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSAiSlNEYXRhYmFz
ZS5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0Rh
dGFiYXNlU3luYy5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXIuY3BwIgogI2luY2x1ZGUg
IkpTRGF0YVRyYW5zZmVySXRlbS5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtTGlz
dC5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsy
NTEsNiBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGls
ZE5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vQ2xpZW50UmVjdExpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGlw
Ym9hcmQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Db21tZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9kb20vQ29tcG9zaXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0N1c3Rv
bUV2ZW50LmlkbCBcCkBAIC0yNjAsNiArMjU5LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9ET01TdHJpbmdMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRE9NU3RyaW5n
TWFwLmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVyLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGV2aWNlTW90aW9u
RXZlbnQuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjY5NTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzgsNyAr
NzgsNyBAQCBfX1pON1dlYkNvcmUxMEZvbnRHbHlwaHMxNXJlbGVhc2VGb250RGF0CiBfX1pON1dl
YkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktO
U185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJB
dG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRm
b3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQotX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50
NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9N
V2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBi
b2FyZEVFRWIKK19fWk43V2ViQ29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWlj
U3RyaW5nRWJiZE5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVf
SU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzEyRGF0YVRyYW5zZmVyRUVFYgogX19aTjdXZWJD
b3JlMTBQYXN0ZWJvYXJkMTR3cml0ZVBsYWluVGV4dEVSS04zV1RGNlN0cmluZ0VOUzBfMThTbWFy
dFJlcGxhY2VPcHRpb25FCiBfX1pON1dlYkNvcmUxMFBhc3RlYm9hcmQyMWNyZWF0ZUZvckNvcHlB
bmRQYXN0ZUV2CiBfX1pON1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgpAQCAtMTg5
LDYgKzE4OSw3IEBAIF9fWk43V2ViQ29yZTExbWVtb3J5Q2FjaGVFdgogX19aTjdXZWJDb3JlMTFz
dGFydE9mTGluZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQogX19aTjdXZWJDb3JlMTFzdGFydE9m
V29yZEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5TXzlFV29yZFNpZGVFCiBfX1pON1dlYkNvcmUx
MXdyaXRlVG9GaWxlRWlQS2NpCitfX1pON1dlYkNvcmUxMkRhdGFUcmFuc2ZlckQxRXYKIF9fWk43
V2ViQ29yZTEyRWRpdGluZ1N0eWxlRDFFdgogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMG1v
dXNlTW92ZWRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRI
YW5kbGVyMTRzY3JvbGxPdmVyZmxvd0VOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdy
YW51bGFyaXR5RVBOU180Tm9kZUUKQEAgLTEzMDcsNyArMTMwOCw2IEBAIF9fWk43V2ViQ29yZThv
cGVuRmlsZUVSS04zV1RGNlN0cmluZ0VOU18KIF9fWk43V2ViQ29yZTh0b1N0cmluZ0VSS04zV1RG
NlZlY3RvcklOU18xMVByb3h5U2VydmVyRUxtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9f
Wk43V2ViQ29yZTh0b1VJbnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMElu
dGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTh0b1VJbnQ2NEVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbkUKLV9fWk43V2ViQ29yZTlDbGlwYm9hcmREMUV2CiBfX1pON1dlYkNvcmU5RE9NV2luZG93
MzBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHNFdgogX19aTjdXZWJDb3JlOURPTVdpbmRv
dzM2ZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzRXYKIF9fWk43V2ViQ29yZTlG
bG9hdFJlY3Q1c2NhbGVFZmYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dl
YkNvcmUueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvV2ViQ29yZS54Y2NvbmZpZwkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYg
KzExMiw2IEBAIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfUHJvZHUKIEpBVkFT
Q1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19lbmdpbmVlcmluZyA9ICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKIEVYQ0xVREVE
X1NPVVJDRV9GSUxFX05BTUVTID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU18kKFBMQVRG
T1JNX05BTUUpKTsKLUVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zID0gKi50aWZm
ICpDdXJzb3IucG5nIEFjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gQVhPYmplY3RDYWNoZU1hYy5t
bSBDbGlwYm9hcmRNYWMubW0gQ29sb3JNYWMubW0gQ3Vyc29yLmNwcCBDdXJzb3JNYWMubW0gRWRp
dG9yTWFjLm1tIEV2ZW50SGFuZGxlck1hYy5tbSBFdmVudExvb3BNYWMubW0gR2VvbG9jYXRpb25T
ZXJ2aWNlTWFjLm1tIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIEljb25EYXRhYmFzZS5j
cHAgSWNvbk1hYy5tbSBLaWxsUmluZ01hYy5tbSBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
bW0gTUlNRVR5cGVSZWdpc3RyeU1hYy5tbSBNZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBOU1Nj
cm9sbGVySW1wRGV0YWlscy5tbSBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgUGFzdGVib2Fy
ZE1hYy5tbSBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBQbGF0Zm9ybU1vdXNlRXZlbnRNYWMu
bW0gUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tIFBsYXRmb3JtU2NyZWVuTWFjLm1tIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAgUnVu
TG9vcE1hYy5tbSBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYy5tbSBTY3JvbGxWaWV3TWFjLm1tIFNjcm9sbGJhclRoZW1lTWFjLm1tIFNoYXJl
ZFRpbWVyTWFjLm1tIFNvdW5kTWFjLm1tIFN5c3RlbVRpbWVNYWMuY3BwIFRoZW1lTWFjLm1tIFRo
cmVhZENoZWNrLm1tIFVzZXJBZ2VudE1hYy5tbSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIFdlYkNvcmVVUkxSZXNwb25zZS5tbSBX
ZWJDb3JlVmlldy5tIFdlYkZvbnRDYWNoZS5tbSBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Lm1tIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gV2ViV2luZG93QW5p
bWF0aW9uLm1tIFdpZGdldE1hYy5tbSBtYWMvTGF5ZXJQb29sLm1tIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5jcHA7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9ICoudGlm
ZiAqQ3Vyc29yLnBuZyBBY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIEFYT2JqZWN0Q2FjaGVNYWMu
bW0gQ29sb3JNYWMubW0gQ3Vyc29yLmNwcCBDdXJzb3JNYWMubW0gRGF0YVRyYW5zZmVyTWFjLm1t
IEVkaXRvck1hYy5tbSBFdmVudEhhbmRsZXJNYWMubW0gRXZlbnRMb29wTWFjLm1tIEdlb2xvY2F0
aW9uU2VydmljZU1hYy5tbSBHcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcCBJY29uRGF0YWJh
c2UuY3BwIEljb25NYWMubW0gS2lsbFJpbmdNYWMubW0gTG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0Lm1tIE1JTUVUeXBlUmVnaXN0cnlNYWMubW0gTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0g
TlNTY3JvbGxlckltcERldGFpbHMubW0gTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwIFBhc3Rl
Ym9hcmRNYWMubW0gUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gUGxhdGZvcm1Nb3VzZUV2ZW50
TWFjLm1tIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBQbGF0Zm9ybVNjcmVlbk1hYy5tbSBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3Bw
IFJ1bkxvb3BNYWMubW0gU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVNYWMubW0gU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVNYWMubW0gU2Nyb2xsVmlld01hYy5tbSBTY3JvbGxiYXJUaGVtZU1hYy5tbSBT
aGFyZWRUaW1lck1hYy5tbSBTb3VuZE1hYy5tbSBTeXN0ZW1UaW1lTWFjLmNwcCBUaGVtZU1hYy5t
bSBUaHJlYWRDaGVjay5tbSBVc2VyQWdlbnRNYWMubW0gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBXZWJDb3JlVVJMUmVzcG9uc2Uu
bW0gV2ViQ29yZVZpZXcubSBXZWJGb250Q2FjaGUubW0gV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIFdlYldpbmRv
d0FuaW1hdGlvbi5tbSBXaWRnZXRNYWMubW0gbWFjL0xheWVyUG9vbC5tbSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuY3BwOwogRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lc2ltdWxh
dG9yID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyk7CiBFWENMVURFRF9T
T1VSQ0VfRklMRV9OQU1FU19tYWNvc3ggPSAqSU9TLmggKklPUy5jcHAgKklPUy5tbSBKU1RvdWNo
KiBKU0dlc3R1cmUqIERPTUdlc3R1cmUqIERPTVRvdWNoKiBLaWxsUmluZ05vbmUuY3BwIFdBS0Fw
cEtpdFN0dWJzLmggV0FLQ2xpcFZpZXcuaCBXQUtSZXNwb25kZXIuaCBXQUtTY3JvbGxWaWV3Lmgg
V0FLVmlldy5oIFdBS1ZpZXdQcml2YXRlLmggV0FLV2luZG93LmggV0tDb250ZW50T2JzZXJ2YXRp
b24uaCBXS0dyYXBoaWNzLmggV0tUeXBlcy5oIFdLVXRpbGl0aWVzLmggV0tWaWV3LmggV0tWaWV3
UHJpdmF0ZS5oIFdlYkNvcmVUaHJlYWQuaCBXZWJDb3JlVGhyZWFkTWVzc2FnZS5oIFdlYkNvcmVU
aHJlYWRSdW4uaCBXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlLmg7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2
Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTk5NSwyMCArOTk1LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDbGlwYm9hcmQu
Y3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTM0NSw2ICsxMzMxLDIwIEBACiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRGF0YVRyYW5zZmVyLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjM3Nyw3ICsxMjM3
Nyw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENs
aXBib2FyZC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENsaXBib2FyZEV2
ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTIzOTEsNyArMTIzOTEsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9hcmRFdmVudC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0MDUsNyArMTI0MDUsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb2xsZWN0aW9u
SW5kZXhDYWNoZS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbW1lbnQu
Y3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBA
IC0xMjQxOSw3ICsxMjQxOSw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXENvbW1lbnQuY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRv
bVxDb21wb3NpdGlvbkV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0MzMsNyArMTI0MzMsNyBAQAogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb21wb3NpdGlvbkV2ZW50LmNwcCI+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ29udGFpbmVyTm9kZS5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTEyNDQ3LDcgKzEy
NDQ3LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21c
Q29udGFpbmVyTm9kZS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTI0NjEsNyArMTI0NjEsNyBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXEN1c3RvbUV2ZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTI0NzUsNyArMTI0NzUsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGRvbVxDdXN0b21FdmVudC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZG9tXERhdGFzZXRET01TdHJpbmdNYXAuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xMjQ4OSw3ICsxMjQ4OSw3IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFzZXRET01TdHJpbmdNYXAu
Y3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxEYXRhVHJhbnNmZXIuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA1
NCw3ICsxNjA1NCw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNDbGlwYm9hcmRDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCI+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYwNjgs
NyArMTYwNjgsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGJpbmRpbmdzXGpzXEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCI+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0NTU1J1bGVDdXN0b20uY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjA4Miw3ICsx
NjA4Miw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNDU1NSdWxlQ3VzdG9tLmNwcCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCI+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYwOTYsNyArMTYwOTYsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
Q1NTUnVsZUxpc3RDdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAiPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2MTEwLDcgKzE2MTEwLDcgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xK
U0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGJpbmRpbmdzXGpzXEpTQ1NTVmFsdWVDdXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjEyNCw3ICsxNjEyNCw3IEBACiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlND
U1NWYWx1ZUN1c3RvbS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTYxMzgsNyArMTYxMzgsNyBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAiPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIj4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjE1Miw3
ICsxNjE1Miw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIj4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTgxMTMsNyAr
MTgxMTMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ2hhcmFjdGVyRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpZW50UmVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUp
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ2xpZW50UmVjdExpc3QuaCIgLz4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaXBib2Fy
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTQ29tbWFuZExpbmVBUElIb3N0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb21tZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb21wb3NpdGlvbkV2ZW50LmgiIC8+CkBA
IC0xODEzOCw2ICsxODEzNyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNDdXN0b21FdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YWJhc2UuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFiYXNlU3luYy5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0
YVRyYW5zZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5oIiAvPgpAQCAtMjAyMzIsOCArMjAyMzIsNiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZG9tXENsYXNzTm9kZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRvbVxDbGllbnRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxkb21cQ2xpZW50UmVjdExpc3QuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxDbGlwYm9hcmQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9h
cmRBY2Nlc3NQb2xpY3kuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlw
Ym9hcmRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENvbGxlY3Rp
b25JbmRleENhY2hlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ29tbWVu
dC5oIiAvPgpAQCAtMjAyNDMsNiArMjAyNDEsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZG9tXENyb3NzVGhyZWFkVGFzay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXEN1c3RvbUV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0
YXNldERPTVN0cmluZ01hcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERh
dGFUcmFuc2Zlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERh
dGFUcmFuc2Zlckl0ZW0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMzA1NCw5ICszMDU0LDYgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDbGllbnRSZWN0TGlzdC5jcHAiPgogICAgICAgPEZpbHRl
cj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRvbVxDbGlwYm9hcmQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+Ci0gICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cQ2xpcGJvYXJkRXZl
bnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0zMDc4LDYgKzMwNzUsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFz
ZXRET01TdHJpbmdNYXAuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVyLmNw
cCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00MjYzLDkgKzQyNjMsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNDREFUQVNlY3Rpb25D
dXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ2xpcGJv
YXJkQ3VzdG9tLmNwcCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0Nv
bW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDI4Nyw2ICs0Mjg0LDkgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0RhdGFUcmFuc2ZlckN1
c3RvbS5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNTIyNCw5ICs1MjI0LDYgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NsaWVudFJlY3RM
aXN0LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNDbGlwYm9hcmQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRl
cj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNTI5OSw2ICs1Mjk2
LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0RhdGFiYXNlU3luYy5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVyLmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRT
b3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0x
MDAwMywxMiArMTAwMDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENsaWVu
dFJlY3RMaXN0LmgiPgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGlwYm9hcmQuaCI+Ci0gICAgICA8
RmlsdGVyPmRvbTwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZG9tXENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIj4KLSAgICAgIDxGaWx0ZXI+ZG9t
PC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
b21cQ2xpcGJvYXJkRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTAwMzMsNiArMTAwMjcsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRvbVxEYXRhc2V0RE9NU3RyaW5nTWFwLmgiPgogICAgICAgPEZpbHRlcj5kb208L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxE
YXRhVHJhbnNmZXIuaCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeS5oIj4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5oIj4KICAgICAg
IDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMzAzOCw5ICsxMzAz
OCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNDbGllbnRSZWN0TGlzdC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0NsaXBib2FyZC5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIj4KICAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEzMTEz
LDYgKzEzMTEwLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0RhdGFiYXNlU3luYy5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlci5oIj4KKyAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJl
KVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0uaCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3MTUsNyArMTcxNSw3IEBACiAJ
CTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjM0ODA5MjBFRUY1MEQ0MDBBQzFC
NDEgLyogSW1hZ2VTb3VyY2VDRy5oICovOyB9OwogCQk0QjZGQTZGNDBDMzlFNDhDMDAwODcwMTEg
LyogU21hcnRSZXBsYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEI2RkE2RjcwQzM5
RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBTbWFy
dFJlcGxhY2VDRi5jcHAgKi87IH07Ci0JCTRCOEFGNEFBMEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
QjhBRjRBQTBCMUNFMDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjhBRjRBOTBCMUNF
MDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEJBRTk1QjEwQjJGQTlDRTAwQUVE
OEEwIC8qIEVkaXRvckRlbGV0ZUFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEJBRTk1QjAwQjJGQTlDRTAwQUVEOEEwIC8qIEVkaXRvckRlbGV0
ZUFjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTRFMTk1OTIxMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkxRjBBMzlE
QUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuY3BwICovOyB9OwogCQk0RTE5NTkyMjBB
MzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBN
ZWRpYUZlYXR1cmVOYW1lcy5oICovOyB9OwpAQCAtMjQ5Myw3ICsyNDkzLDcgQEAKIAkJODREMEM0
MDYxMTE1RjFFQTAwMThBQTM0IC8qIEFmZmluZVRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODREMEM0MDUxMTE1RjFFQTAwMThBQTM0IC8q
IEFmZmluZVRyYW5zZm9ybS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1MDMxQjNDMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAz
MUIyNjBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovOyB9OwogCQk4
NTAzMUIzRDBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjI3MEE0NEVGQzcwMEY5
OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oICovOyB9OwotCQk4NTAzMUIzRTBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODUwMzFCM0UwQTQ0
RUZDNzAwRjk5MkUwIC8qIERhdGFUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCMjgwQTQ0RUZDNzAwRjk5MkUwIC8qIERhdGFUcmFu
c2Zlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg1MDMxQjNGMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIyOTBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwICovOyB9OwogCQk4NTAzMUI0MDBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDMxQjJBMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVu
dC5oICovOyB9OwogCQk4NTAzMUI0MTBBNDRFRkM3MDBGOTkyRTAgLyogRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCMkIwQTQ0RUZD
NzAwRjk5MkUwIC8qIEV2ZW50LmNwcCAqLzsgfTsKQEAgLTMyNzQsNyArMzI3NCw3IEBACiAJCTkz
RjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMkIyNEYwNTZCRjE1RjAw
RDJCNzcxIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgKi87IH07CiAJCTkzRjE5QUY4MDgyNDVF
NTkwMDFFOUFCQyAvKiBQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCRTkxRkM4QzA2MTMzNjY2MDA1RTM3OTAgLyogUG9zaXRpb24uY3Bw
ICovOyB9OwogCQk5M0YxOUFGRDA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGNkEz
RDUwNjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCAqLzsgfTsKLQkJOTNG
MTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIENsaXBib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAv
KiBDbGlwYm9hcmRNYWMubW0gKi87IH07CisJCTkzRjE5QUZGMDgyNDVFNTkwMDFFOUFCQyAvKiBE
YXRhVHJhbnNmZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogRGF0YVRyYW5zZmVyTWFjLm1tICov
OyB9OwogCQk5M0YxOUIwMzA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYy
NDkwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCAqLzsgfTsKIAkJ
OTNGMTlCMDQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYyNEIwNkQxOEE3RTAwNEE2
RkEzIC8qIFhTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlB
QkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9j
ZXNzb3JMaWJ4c2x0LmNwcCAqLzsgfTsKQEAgLTM3NzcsNyArMzc3Nyw3IEBACiAJCUE3N0UxRkVG
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAv
KiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAqLzsgfTsKIAkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3Q0I2
IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVy
LmggKi87IH07CiAJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZB
NjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwotCQlBNzg0OTQx
QjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlw
Ym9hcmQuY3BwICovOyB9OworCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5z
ZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBEYXRhVHJhbnNmZXIuY3BwICovOyB9OwogCQlBNzhF
NTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFE
OUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzhFNTI3MDEzNDZCRDE3
MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJT
aGFkb3dFbGVtZW50LmggKi87IH07CiAJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CkBA
IC01MTk1LDkgKzUxOTUsOSBAQAogCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGlj
YWxQb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0EyNTcxNDEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hl
LmggKi87IH07CiAJCUJDQTJCMDYxMTA1MDQ3NjAwMDQzQkQxQyAvKiBVc2VyU2NyaXB0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0EyQjA2MDEwNTA0
NzVGMDA0M0JEMUMgLyogVXNlclNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDQTJCMDhCMTA1MDVCQ0QwMDQzQkQxQyAvKiBVc2VyU2Ny
aXB0VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQTJCMDhBMTA1MDVCQ0QwMDQzQkQxQyAvKiBVc2VyU2NyaXB0VHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0E4M0U0RjBEN0NFMUU5
MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJk
LmNwcCAqLzsgfTsKLQkJQkNBODNFNTAwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4M0U0RTBE
N0NFMUU5MDAzNDIxQTggLyogSlNDbGlwYm9hcmQuaCAqLzsgfTsKLQkJQkNBODNFNTIwRDdDRTIw
NTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTgzRTUxMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0Ns
aXBib2FyZEN1c3RvbS5jcHAgKi87IH07CisJCUJDQTgzRTRGMEQ3Q0UxRTkwMDM0MjFBOCAvKiBK
U0RhdGFUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICov
OyB9OworCQlCQ0E4M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTgzRTRFMEQ3Q0Ux
RTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oICovOyB9OworCQlCQ0E4M0U1MjBEN0NFMjA1
MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNBODQ2RDYwREM2N0EzNTAwMjZDMzA5
IC8qIFJlbmRlclJlcGxpY2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3Bw
ICovOyB9OwogCQlCQ0E4NDZENzBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODQ2RDUwREM2
N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuaCAqLzsgfTsKIAkJQkNBOEM4MUUxMUUzRDM2
OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBOEM4MUMxMUUzRDM2OTAwODEyRkI3IC8qIEJh
Y2tGb3J3YXJkQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03OTU5LDcgKzc5NTksNyBAQAogCQkyRDhGRUJEQjE0M0UzRUY3MDA3
MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTQ3Jvc3NmYWRlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEOTA2NjA1MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBi
b2FyZE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENsaXBib2FyZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAv
KiBEYXRhVHJhbnNmZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyRDlBMjQ2QTE1QjlC
QkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRE9NU2VjdXJpdHlQb2xpY3kuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRDlBMjQ2QjE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xp
Y3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU2VjdXJpdHlQb2xpY3ku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5QTI0NzAxNUI5QzI5NTAwRDM0NTI3
IC8qIERPTURPTVNlY3VyaXR5UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTURPTVNlY3VyaXR5UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04Njg2LDcgKzg2ODYsNyBAQAogCQk0QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VT
b3VyY2VDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZUNH
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCNkZBNkYyMEMzOUU0OEMwMDA4NzAx
MSAvKiBTbWFydFJlcGxhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU21h
cnRSZXBsYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCNkZBNkY2MEMzOUU0
QTEwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2VDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTbWFydFJlcGxhY2VDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZEFjY2Vzc1BvbGlj
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QjhBRjRBOTBCMUNFMDJCMDA2ODc2
OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEJBRTk1QjAwQjJGQTlDRTAwQUVEOEEwIC8qIEVkaXRvckRlbGV0ZUFjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0b3JEZWxldGVBY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEUxOTU5MUYwQTM5REFCQTAwMjIwRkU1
IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYUZlYXR1cmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFGZWF0dXJlTmFtZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1MzgsNyArOTUzOCw3IEBACiAJCTg0RDBDNDA1MTEx
NUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQWZmaW5lVHJhbnNmb3JtLmg7IHBhdGggPSB0cmFuc2Zvcm1zL0FmZmluZVRy
YW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTAzMUIyNjBBNDRFRkM3
MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJlZm9yZVVubG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODUwMzFCMjcwQTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9yZVVubG9hZEV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVVbmxvYWRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAg
LyogQ2xpcGJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwYm9h
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUwMzFCMjgwQTQ0RUZDNzAwRjk5
MkUwIC8qIERhdGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjI5MEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZEV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjJCMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MzUsNyArMTA4MzUsNyBAQAogCQlBNzdF
MUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29w
ZUFkb3B0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJlZVNjb3BlQWRv
cHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzgxQzZBNjEzODI4QjVEMDAx
MkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5zZmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEg
LyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1ldGVyU2hhZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3OEU1MjZFMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxD
aGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNDc3LDEwICsxMjQ3
NywxMCBAQAogCQlCQ0EyQjA4QTEwNTA1QkNEMDA0M0JEMUMgLyogVXNlclNjcmlwdFR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJTY3JpcHRUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2No
ZWR1bGVkQWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
aGVkdWxlZEFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTM3OEJC
MEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQTgzRTM2MEQ3Q0RDNEUwMDM0MjFBOCAvKiBDbGlwYm9hcmQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENsaXBib2FyZC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDQTgzRTREMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0NsaXBib2FyZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0NsaXBib2Fy
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaXBib2FyZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlND
bGlwYm9hcmRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNDbGlwYm9hcmRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E4
M0UzNjBEN0NEQzRFMDAzNDIxQTggLyogRGF0YVRyYW5zZmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEYXRhVHJhbnNmZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
Q0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhVHJhbnNmZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQ0E4M0U0RTBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJh
bnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhVHJhbnNmZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4
IC8qIEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVwbGljYS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTg0NkQ1MERDNjdBMzUwMDI2QzMwOSAvKiBS
ZW5kZXJSZXBsaWNhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJl
cGxpY2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBOEM4MUMxMUUzRDM2OTAw
ODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4OTQyLDEyICsxODk0MiwxMiBAQAogCQkJCTkzRjlCNzlGMEJBNjAzMjYwMDg1
NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovLAogCQkJCTY1REYzMURGMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0NoYXJhY3RlckRhdGEuY3BwICovLAogCQkJCTY1REYzMUUwMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0NoYXJhY3RlckRhdGEuaCAqLywKLQkJCQlCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTgg
LyogSlNDbGlwYm9hcmQuY3BwICovLAotCQkJCUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBK
U0NsaXBib2FyZC5oICovLAogCQkJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1l
bnQuY3BwICovLAogCQkJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAq
LywKIAkJCQlGRTZGRDQ4QjBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGluYXRlcy5jcHAgKi8s
CiAJCQkJRkU2RkQ0OEMwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuaCAqLywKKwkJ
CQlCQ0E4M0U0RDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuY3BwICovLAorCQkJ
CUJDQTgzRTRFMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2Zlci5oICovLAogCQkJCTMx
RkIxQTYzMTIwQTVEM0YwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcCAqLywKIAkJ
CQkzMUZCMUE2NDEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZpY2VNb3Rpb25FdmVudC5oICovLAog
CQkJCTU5QTg2MDA1MTE5REFGN0YwMERFRjFFRiAvKiBKU0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLApAQCAtMjA1MTksNyArMjA1MTksNiBAQAogCQkJCTQ5RUVEMTRCMTA1MTk3MTkwMDA5
OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJNDlF
RUQxNEQxMDUxOTcxQTAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAgKi8sCiAJCQkJOTNCQTU5QjEwRjJBQTVGRTAwOEU4RTk5IC8qIEpTQ0RBVEFTZWN0aW9uQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNDbGlwYm9hcmRD
dXN0b20uY3BwICovLAogCQkJCUE1ODRGRTM3MTg2NERBQzEwMDg0M0IxMCAvKiBKU0NvbW1hbmRM
aW5lQVBJSG9zdEN1c3RvbS5jcHAgKi8sCiAJCQkJMjA5QjQ1NkExNjc5NkE3RTAwRTU0RTRFIC8q
IEpTQ3J5cHRvQ3VzdG9tLmNwcCAqLywKIAkJCQlFMTU3QThFNjE4MTg0QzY3MDA5RjgyMUQgLyog
SlNDcnlwdG9LZXlDdXN0b20uY3BwICovLApAQCAtMjA1MzAsNiArMjA1MjksNyBAQAogCQkJCUJD
NTgyNUYyMEMwQjg5MzgwMDUzRjFCNSAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
ICovLAogCQkJCUFENzI2RkVBMTZEOUY0MEIwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uaCAqLywKIAkJCQlCQzIwRkI3RTBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1
ZUN1c3RvbS5jcHAgKi8sCisJCQkJQkNBODNFNTEwRDdDRTIwNTAwMzQyMUE4IC8qIEpTRGF0YVRy
YW5zZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIxMjBB
NUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTU5
MEUxQjRBMTFFNEVGNzAwMDY5Rjc4NCAvKiBKU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20u
Y3BwICovLApAQCAtMjIxMzgsMTMgKzIyMTM4LDggQEAKIAkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBD
RDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovLAogCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENE
MkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0TGlzdC5pZGwgKi8sCi0JCQkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdB
IC8qIENsaXBib2FyZC5jcHAgKi8sCi0JCQkJODUwMzFCMjgwQTQ0RUZDNzAwRjk5MkUwIC8qIENs
aXBib2FyZC5oICovLAotCQkJCUJDQTgzRTM2MEQ3Q0RDNEUwMDM0MjFBOCAvKiBDbGlwYm9hcmQu
aWRsICovLAotCQkJCTRCOEFGNEE5MEIxQ0UwMkIwMDY4NzY5MCAvKiBDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaCAqLywKIAkJCQk4NTAzMUIyOTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwICovLAogCQkJCTg1MDMxQjJBMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVu
dC5oICovLAotCQkJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0g
Ki8sCiAJCQkJRTQyNUE0OTkxODI5MkI4NDAwMjBDRkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hl
LmggKi8sCiAJCQkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcCAqLywKIAkJCQk2NTUwQjY5NzA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAg
Ki8sCkBAIC0yMjE2Myw2ICsyMjE1OCwxMSBAQAogCQkJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBB
NyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8q
IEN1c3RvbUV2ZW50LmggKi8sCiAJCQkJNjJDRDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmlkbCAqLywKKwkJCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogRGF0YVRyYW5z
ZmVyLmNwcCAqLywKKwkJCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVy
LmggKi8sCisJCQkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFUcmFuc2Zlci5pZGwg
Ki8sCisJCQkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIERhdGFUcmFuc2Zlck1hYy5tbSAq
LywKKwkJCQk0QjhBRjRBOTBCMUNFMDJCMDA2ODc2OTAgLyogRGF0YVRyYW5zZmVyQWNjZXNzUG9s
aWN5LmggKi8sCiAJCQkJQkM2NDY0MUIxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJp
bmdNYXAuY3BwICovLAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaCAqLywKQEAgLTIzMTIxLDggKzIzMTIxLDggQEAKIAkJCQlCQzkwNEI3NzBEMTA5
OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1
N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJODUwMzFCM0UwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNEI4QUY0QUEwQjFDRTAyQjAwNjg3NjkwIC8qIENsaXBib2FyZEFjY2Vzc1BvbGlj
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODUwMzFCM0UwQTQ0RUZDNzAwRjk5MkUwIC8qIERhdGFU
cmFuc2Zlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEI4QUY0QUEwQjFDRTAyQjAwNjg3NjkwIC8q
IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAw
QTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
QjkyREY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QUFCRDEzMTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI0MjcyLDcgKzI0MjcyLDcgQEAKIAkJCQk2NURGMzFGNDA5RDFDQzYwMDAw
QkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU4ODBG
M0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Mw
NjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQkNBODNFNTAwRDdDRTFFOTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQ0E4M0U1MDBEN0NFMUU5MDAzNDIxQTggLyogSlNEYXRhVHJhbnNmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc4Myw5ICsyNjc4Myw5
IEBACiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3
QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc4NDk0MUIwQjVGRTUwNzAw
MUUyMzdBIC8qIERhdGFUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBB
NDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
OTNGMTlBRkYwODI0NUU1OTAwMUU5QUJDIC8qIENsaXBib2FyZE1hYy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTkzRjE5QUZGMDgyNDVFNTkwMDFFOUFCQyAvKiBEYXRhVHJhbnNmZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMxRjEgLyogQ2xvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RFQTc2MzQxNDYwQjU2RjAwOEIzMUYxIC8qIENsb2NrR2VuZXJp
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2NjBCMDUzODE0MDAyQ0U2NEYgLyogQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzY3NCw4ICsyNzY3NCw4IEBACiAJCQkJNjVERjMx
RjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQTgzRTRGMEQ3Q0UxRTkwMDM0MjFBOCAvKiBKU0Ns
aXBib2FyZC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0E4M0U1MjBEN0NFMjA1MDAzNDIxQTgg
LyogSlNDbGlwYm9hcmRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNBODNFNEYwRDdD
RTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJD
QTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1h
bmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTg0RkUzODE4NjREQUMxMDA4
NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAKICNp
bmNsdWRlICJKU0NhbGxiYWNrRGF0YS5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNDbGlwYm9hcmRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
Q29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NyeXB0b0N1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCIKQEAg
LTYyLDYgKzYxLDcgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNET01XaW5kb3dTaGVsbC5jcHAiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmNwcCIKKyNp
bmNsdWRlICJKU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RpY3Rpb25hcnkuY3BwIgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2xpcGJvYXJkQ3VzdG9tLmNwcAkocmV2
aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkpTQ2xpcGJvYXJkLmgiCi0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLQot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1KU1ZhbHVlIEpT
Q2xpcGJvYXJkOjp0eXBlcyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgVmVjdG9yPFN0
cmluZz4gdHlwZXMgPSBpbXBsKCkudHlwZXMoKTsKLSAgICByZXR1cm4gdHlwZXMuaXNFbXB0eSgp
ID8ganNOdWxsKCkgOiBqc0FycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0eXBlcyk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDE2Njg3MykJKGZy
b20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20uY3BwOjE2Njg3
MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVRyYW5zZmVyQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU0NsaXBib2FyZC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNWYWx1ZSBKU0NsaXBib2Fy
ZDo6dHlwZXMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIFZlY3RvcjxTdHJpbmc+IHR5
cGVzID0gaW1wbCgpLnR5cGVzKCk7CisgICAgcmV0dXJuIHR5cGVzLmlzRW1wdHkoKSA/IGpzTnVs
bCgpIDoganNBcnJheShleGVjLCBnbG9iYWxPYmplY3QoKSwgdHlwZXMpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFU
cmFuc2ZlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEYXRhVHJhbnNmZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDE1ICsyNywxNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJKU0NsaXBib2FyZC5oIgorI2luY2x1ZGUgIkpTRGF0YVRyYW5zZmVyLmgiCiAKLSNpbmNsdWRl
ICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIEpTQ2xpcGJvYXJkOjp0
eXBlcyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CitKU1ZhbHVlIEpTRGF0YVRyYW5zZmVyOjp0eXBl
cyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBp
bXBsKCkudHlwZXMoKTsKICAgICByZXR1cm4gdHlwZXMuaXNFbXB0eSgpID8ganNOdWxsKCkgOiBq
c0FycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0eXBlcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMTY2OTU3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDEyICsyOSwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpT
RXZlbnQuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zl
ci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIZWFkZXJzLmgiCiAjaW5j
bHVkZSAiRXZlbnRJbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1
ZGUgIkpTQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcAko
cmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNp
bmNsdWRlICJDYWNoZWRJbWFnZUNsaWVudC5oIgotI2luY2x1ZGUgIkRyYWdEYXRhLmgiCi0jaW5j
bHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVkZSAiRmlsZUxpc3QuaCIKLSNpbmNsdWRlICJGcmFtZS5o
IgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiUGFzdGVib2FyZC5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotCi1jbGFzcyBEcmFnSW1h
Z2VMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZEltYWdlQ2xpZW50IHsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShEcmFnSW1hZ2VMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBleHBsaWNpdCBEcmFnSW1hZ2VMb2FkZXIoQ2xpcGJvYXJkKik7Ci0gICAg
dm9pZCBzdGFydExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+Jik7Ci0g
ICAgdm9pZCBzdG9wTG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4mKTsK
LQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwg
Y29uc3QgSW50UmVjdCopIG92ZXJyaWRlOwotICAgIENsaXBib2FyZCogbV9jbGlwYm9hcmQ7Ci19
OwotCi0jZW5kaWYKLQotQ2xpcGJvYXJkOjpDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5
IHBvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBDbGlwYm9hcmRUeXBl
IHR5cGUsIGJvb2wgZm9yRmlsZURyYWcpCi0gICAgOiBtX3BvbGljeShwb2xpY3kpCi0gICAgLCBt
X3Bhc3RlYm9hcmQocGFzdGVib2FyZCkKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICwg
bV9mb3JEcmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQotICAgICwgbV9mb3JGaWxlRHJhZyhmb3JG
aWxlRHJhZykKLSAgICAsIG1fZHJvcEVmZmVjdChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQi
KSkKLSAgICAsIG1fZWZmZWN0QWxsb3dlZChBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQiKSkK
LSAgICAsIG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlKGZhbHNlKQotI2VuZGlmCi17Ci0jaWYgIUVO
QUJMRShEUkFHX1NVUFBPUlQpCi0gICAgQVNTRVJUX1VOVVNFRCh0eXBlLCB0eXBlID09IENvcHlB
bmRQYXN0ZSk7Ci0gICAgQVNTRVJUX1VOVVNFRChmb3JGaWxlRHJhZywgIWZvckZpbGVEcmFnKTsK
LSNlbmRpZgotfQotCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENsaXBib2FyZChwb2xpY3ksIHBvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJs
ZSA/IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKSA6IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpKSk7Ci19Ci0KLUNsaXBib2FyZDo6fkNsaXBib2FyZCgpCi17Ci0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1h
Z2UpCi0gICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7
Ci0jZW5kaWYKLX0KLSAgICAKLXZvaWQgQ2xpcGJvYXJkOjpzZXRBY2Nlc3NQb2xpY3koQ2xpcGJv
YXJkQWNjZXNzUG9saWN5IHBvbGljeSkKLXsKLSAgICAvLyBPbmNlIHRoZSBjbGlwYm9hcmQgZ29l
cyBudW1iLCBpdCBjYW4gbmV2ZXIgZ28gYmFjay4KLSAgICBBU1NFUlQobV9wb2xpY3kgIT0gQ2xp
cGJvYXJkTnVtYiB8fCBwb2xpY3kgPT0gQ2xpcGJvYXJkTnVtYik7Ci0gICAgbV9wb2xpY3kgPSBw
b2xpY3k7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkOjpjYW5SZWFkVHlwZXMoKSBjb25zdAotewotICAg
IHJldHVybiBtX3BvbGljeSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlw
Ym9hcmRUeXBlc1JlYWRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOwotfQot
Ci1ib29sIENsaXBib2FyZDo6Y2FuUmVhZERhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX3Bv
bGljeSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJs
ZTsKLX0KLQotYm9vbCBDbGlwYm9hcmQ6OmNhbldyaXRlRGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOwotfQotCi12b2lkIENsaXBib2FyZDo6
Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKLXsKLSAgICBpZiAoIWNhbldyaXRlRGF0YSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Bhc3RlYm9hcmQtPmNsZWFyKHR5cGUpOwotfQot
Ci12b2lkIENsaXBib2FyZDo6Y2xlYXJEYXRhKCkKLXsKLSAgICBpZiAoIWNhbldyaXRlRGF0YSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Bhc3RlYm9hcmQtPmNsZWFyKCk7Ci19Ci0KLVN0
cmluZyBDbGlwYm9hcmQ6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdAotewotICAg
IGlmICghY2FuUmVhZERhdGEoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAobV9mb3JGaWxlRHJhZykKLSAgICAgICAgcmV0dXJu
IFN0cmluZygpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gbV9wYXN0ZWJvYXJkLT5yZWFkU3RyaW5n
KHR5cGUpOwotfQotCi1ib29sIENsaXBib2FyZDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgZGF0YSkKLXsKLSAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGlmIChtX2Zv
ckZpbGVEcmFnKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiBt
X3Bhc3RlYm9hcmQtPndyaXRlU3RyaW5nKHR5cGUsIGRhdGEpOwotfQotCi1WZWN0b3I8U3RyaW5n
PiBDbGlwYm9hcmQ6OnR5cGVzKCkgY29uc3QKLXsKLSAgICBpZiAoIWNhblJlYWRUeXBlcygpKQot
ICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKLQotICAgIHJldHVybiBtX3Bhc3RlYm9h
cmQtPnR5cGVzKCk7Ci19Ci0KLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZDo6ZmlsZXMo
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBjYWNoZSB0aGUgY29tcHV0ZWQgZmls
ZSBsaXN0IGlmIGl0IHdhcyBuZWNlc3NhcnkgYW5kIGhlbHBmdWwuCi0gICAgLy8gQ3VycmVudGx5
LCBlYWNoIGFjY2VzcyBnZXRzIGEgbmV3IGNvcHksIGFuZCB0aHVzIHNldERhdGEoKSBtb2RpZmlj
YXRpb25zIHRvIHRoZQotICAgIC8vIGNsaXBib2FyZCBhcmUgbm90IHJlZmxlY3RlZCBpbiBhbnkg
RmlsZUxpc3Qgb2JqZWN0cyB0aGUgcGFnZSBoYXMgYWNjZXNzZWQgYW5kIHN0b3JlZC4KLQotICAg
IGlmICghY2FuUmVhZERhdGEoKSkKLSAgICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsK
LQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgaWYgKG1fZm9yRHJhZyAmJiAhbV9mb3JG
aWxlRHJhZykKLSAgICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsKLSNlbmRpZgotCi0g
ICAgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzID0gbV9wYXN0ZWJvYXJkLT5yZWFkRmlsZW5hbWVz
KCk7Ci0gICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlTGlzdCA9IEZpbGVMaXN0OjpjcmVhdGUoKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVuYW1lcy5zaXplKCk7ICsraSkKLSAgICAg
ICAgZmlsZUxpc3QtPmFwcGVuZChGaWxlOjpjcmVhdGUoZmlsZW5hbWVzW2ldLCBGaWxlOjpBbGxD
b250ZW50VHlwZXMpKTsKLSAgICByZXR1cm4gZmlsZUxpc3QucmVsZWFzZSgpOwotfQotCi0jaWYg
IUVOQUJMRShEUkFHX1NVUFBPUlQpCi0KLVN0cmluZyBDbGlwYm9hcmQ6OmRyb3BFZmZlY3QoKSBj
b25zdAotewotICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vbmUiKTsKLX0KLQotdm9pZCBDbGlw
Ym9hcmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJikKLXsKLX0KLQotU3RyaW5nIENsaXBi
b2FyZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
dW5pbml0aWFsaXplZCIpOwotfQotCi12b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0QWxsb3dlZChj
b25zdCBTdHJpbmcmKQotewotfQotCi12b2lkIENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlKEVsZW1l
bnQqLCBpbnQsIGludCkKLXsKLX0KLQotI2Vsc2UKLQotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENs
aXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQotewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2xpcGJvYXJkKENsaXBib2FyZFdyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFn
QW5kRHJvcCgpLCBEcmFnQW5kRHJvcCkpOwotfQotCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xp
cGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5
LCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
bGlwYm9hcmQocG9saWN5LCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChkcmFnRGF0
YSksIERyYWdBbmREcm9wLCBkcmFnRGF0YS5jb250YWluc0ZpbGVzKCkpKTsKLX0KLQotYm9vbCBD
bGlwYm9hcmQ6OmNhblNldERyYWdJbWFnZSgpIGNvbnN0Ci17Ci0gICAgLy8gTm90ZSB0aGF0IHRo
ZSBzcGVjIGRvZXNuJ3QgYWN0dWFsbHkgYWxsb3cgZHJhZyBpbWFnZSBtb2RpZmljYXRpb24gb3V0
c2lkZSB0aGUgZHJhZ3N0YXJ0Ci0gICAgLy8gZXZlbnQuIFRoaXMgY2FwYWJpbGl0eSBpcyBtYWlu
dGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJsaXR5IGZvciBwb3J0cyB0aGF0IGhhdmUKLSAg
ICAvLyBzdXBwb3J0ZWQgdGhpcyBpbiB0aGUgcGFzdC4gT24gbWFueSBwb3J0cywgYXR0ZW1wdGlu
ZyB0byBzZXQgYSBkcmFnIGltYWdlIG91dHNpZGUgdGhlCi0gICAgLy8gZHJhZ3N0YXJ0IG9wZXJh
dGlvbiBpcyBhIG5vLW9wIGFueXdheS4KLSAgICByZXR1cm4gbV9mb3JEcmFnICYmIChtX3BvbGlj
eSA9PSBDbGlwYm9hcmRJbWFnZVdyaXRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRh
YmxlKTsKLX0KLQotdm9pZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50
LCBpbnQgeCwgaW50IHkpCi17Ci0gICAgaWYgKCFjYW5TZXREcmFnSW1hZ2UoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQ2FjaGVkSW1hZ2UqIGltYWdlOwotICAgIGlmIChlbGVtZW50ICYmIGlz
SFRNTEltYWdlRWxlbWVudChlbGVtZW50KSAmJiAhZWxlbWVudC0+aW5Eb2N1bWVudCgpKQotICAg
ICAgICBpbWFnZSA9IHRvSFRNTEltYWdlRWxlbWVudChlbGVtZW50KS0+Y2FjaGVkSW1hZ2UoKTsK
LSAgICBlbHNlCi0gICAgICAgIGltYWdlID0gMDsKLQotICAgIG1fZHJhZ0xvY2F0aW9uID0gSW50
UG9pbnQoeCwgeSk7Ci0KLSAgICBpZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9kcmFnSW1hZ2Up
Ci0gICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyLT5zdG9wTG9hZGluZyhtX2RyYWdJbWFnZSk7Ci0g
ICAgbV9kcmFnSW1hZ2UgPSBpbWFnZTsKLSAgICBpZiAobV9kcmFnSW1hZ2UpIHsKLSAgICAgICAg
aWYgKCFtX2RyYWdJbWFnZUxvYWRlcikKLSAgICAgICAgICAgIG1fZHJhZ0ltYWdlTG9hZGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxEcmFnSW1hZ2VMb2FkZXI+KHRoaXMpOwotICAgICAgICBtX2RyYWdJ
bWFnZUxvYWRlci0+c3RhcnRMb2FkaW5nKG1fZHJhZ0ltYWdlKTsKLSAgICB9Ci0KLSAgICBtX2Ry
YWdJbWFnZUVsZW1lbnQgPSBpbWFnZSA/IDAgOiBlbGVtZW50OwotCi0gICAgdXBkYXRlRHJhZ0lt
YWdlKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkOjp1cGRhdGVEcmFnSW1hZ2UoKQotewotICAgIC8v
IERvbid0IGFsbG93IHNldHRpbmcgdGhlIGltYWdlIGlmIHdlIGhhdmVuJ3Qgc3RhcnRlZCBkcmFn
Z2luZyB5ZXQ7IHdlJ2xsIHJlbHkgb24gdGhlIGRyYWdnaW5nIGNvZGUKLSAgICAvLyB0byBpbnN0
YWxsIHRoaXMgZHJhZyBpbWFnZSBhcyBwYXJ0IG9mIGdldHRpbmcgdGhlIGRyYWcga2lja2VkIG9m
Zi4KLSAgICBpZiAoIW1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBJbnRQb2ludCBjb21wdXRlZEhvdFNwb3Q7Ci0gICAgRHJhZ0ltYWdlUmVmIGNvbXB1dGVk
SW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2UoY29tcHV0ZWRIb3RTcG90KTsKLSAgICBpZiAoIWNvbXB1
dGVkSW1hZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0lt
YWdlKGNvbXB1dGVkSW1hZ2UsIGNvbXB1dGVkSG90U3BvdCk7Ci19Ci0KLSNpZiAhUExBVEZPUk0o
Q09DT0EpCi0KLURyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2lu
dCYgbG9jYXRpb24pIGNvbnN0Ci17Ci0gICAgbG9jYXRpb24gPSBtX2RyYWdMb2NhdGlvbjsKLQot
ICAgIGlmIChtX2RyYWdJbWFnZSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkp
OwotCi0gICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewotICAgICAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbV9kcmFnSW1hZ2VFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAg
ICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZSgqZnJhbWUsICptX2RyYWdJbWFnZUVsZW1l
bnQpOwotICAgIH0KLQotICAgIC8vIFdlIGRvIG5vdCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0
byBjcmVhdGUgYSBkcmFnIGltYWdlLCB1c2UgdGhlIGRlZmF1bHQgaWNvbi4KLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotI2VuZGlmCi0KLURyYWdJbWFnZUxvYWRlcjo6RHJhZ0ltYWdlTG9hZGVy
KENsaXBib2FyZCogY2xpcGJvYXJkKQotICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQotewot
fQotCi12b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RhcnRMb2FkaW5nKENhY2hlZFJlc291cmNlSGFu
ZGxlPFdlYkNvcmU6OkNhY2hlZEltYWdlPiYgaW1hZ2UpCi17Ci0gICAgLy8gRklYTUU6IERvZXMg
dGhpcyByZWFsbHkgdHJpZ2dlciBhIGxvYWQ/IERvZXMgaXQgbmVlZCB0bz8KLSAgICBpbWFnZS0+
YWRkQ2xpZW50KHRoaXMpOwotfQotCi12b2lkIERyYWdJbWFnZUxvYWRlcjo6c3RvcExvYWRpbmco
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+JiBpbWFnZSkKLXsKLSAg
ICBpbWFnZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwotfQotCi12b2lkIERyYWdJbWFnZUxvYWRlcjo6
aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCopCi17Ci0gICAgbV9jbGlw
Ym9hcmQtPnVwZGF0ZURyYWdJbWFnZSgpOwotfQotCi1zdGF0aWMgRHJhZ09wZXJhdGlvbiBkcmFn
T3BGcm9tSUVPcChjb25zdCBTdHJpbmcmIG9wZXJhdGlvbikKLXsKLSAgICBpZiAob3BlcmF0aW9u
ID09ICJ1bmluaXRpYWxpemVkIikKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25FdmVyeTsK
LSAgICBpZiAob3BlcmF0aW9uID09ICJub25lIikKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRp
b25Ob25lOwotICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHkiKQotICAgICAgICByZXR1cm4gRHJh
Z09wZXJhdGlvbkNvcHk7Ci0gICAgaWYgKG9wZXJhdGlvbiA9PSAibGluayIpCi0gICAgICAgIHJl
dHVybiBEcmFnT3BlcmF0aW9uTGluazsKLSAgICBpZiAob3BlcmF0aW9uID09ICJtb3ZlIikKLSAg
ICAgICAgcmV0dXJuIChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdP
cGVyYXRpb25Nb3ZlKTsKLSAgICBpZiAob3BlcmF0aW9uID09ICJjb3B5TGluayIpCi0gICAgICAg
IHJldHVybiAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkNvcHkgfCBEcmFnT3BlcmF0aW9u
TGluayk7Ci0gICAgaWYgKG9wZXJhdGlvbiA9PSAiY29weU1vdmUiKQotICAgICAgICByZXR1cm4g
KERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25Db3B5IHwgRHJhZ09wZXJhdGlvbkdlbmVyaWMg
fCBEcmFnT3BlcmF0aW9uTW92ZSk7Ci0gICAgaWYgKG9wZXJhdGlvbiA9PSAibGlua01vdmUiKQot
ICAgICAgICByZXR1cm4gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25MaW5rIHwgRHJhZ09w
ZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7Ci0gICAgaWYgKG9wZXJhdGlvbiA9
PSAiYWxsIikKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25FdmVyeTsKLSAgICByZXR1cm4g
RHJhZ09wZXJhdGlvblByaXZhdGU7IC8vIHJlYWxseSBhIG1hcmtlciBmb3IgIm5vIGNvbnZlcnNp
b24iCi19Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBJRU9wRnJvbURyYWdPcChEcmFnT3BlcmF0aW9u
IG9wZXJhdGlvbikKLXsKLSAgICBib29sIGlzR2VuZXJpY01vdmUgPSBvcGVyYXRpb24gJiAoRHJh
Z09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7Ci0KLSAgICBpZiAoKGlzR2Vu
ZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KSAmJiAob3BlcmF0aW9u
ICYgRHJhZ09wZXJhdGlvbkxpbmspKSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkV2ZXJ5
KQotICAgICAgICByZXR1cm4gImFsbCI7Ci0gICAgaWYgKGlzR2VuZXJpY01vdmUgJiYgKG9wZXJh
dGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KSkKLSAgICAgICAgcmV0dXJuICJjb3B5TW92ZSI7Ci0g
ICAgaWYgKGlzR2VuZXJpY01vdmUgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKSkK
LSAgICAgICAgcmV0dXJuICJsaW5rTW92ZSI7Ci0gICAgaWYgKChvcGVyYXRpb24gJiBEcmFnT3Bl
cmF0aW9uQ29weSkgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25MaW5rKSkKLSAgICAgICAg
cmV0dXJuICJjb3B5TGluayI7Ci0gICAgaWYgKGlzR2VuZXJpY01vdmUpCi0gICAgICAgIHJldHVy
biAibW92ZSI7Ci0gICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Db3B5KQotICAgICAg
ICByZXR1cm4gImNvcHkiOwotICAgIGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykK
LSAgICAgICAgcmV0dXJuICJsaW5rIjsKLSAgICByZXR1cm4gIm5vbmUiOwotfQotCi1EcmFnT3Bl
cmF0aW9uIENsaXBib2FyZDo6c291cmNlT3BlcmF0aW9uKCkgY29uc3QKLXsKLSAgICBEcmFnT3Bl
cmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9wKG1fZWZmZWN0QWxsb3dlZCk7Ci0gICAg
QVNTRVJUKG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7Ci0gICAgcmV0dXJuIG9w
ZXJhdGlvbjsKLX0KLQotRHJhZ09wZXJhdGlvbiBDbGlwYm9hcmQ6OmRlc3RpbmF0aW9uT3BlcmF0
aW9uKCkgY29uc3QKLXsKLSAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21J
RU9wKG1fZHJvcEVmZmVjdCk7Ci0gICAgQVNTRVJUKG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9u
Q29weSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09IERy
YWdPcGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09wZXJh
dGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVy
YXRpb25FdmVyeSk7Ci0gICAgcmV0dXJuIG9wZXJhdGlvbjsKLX0KLQotdm9pZCBDbGlwYm9hcmQ6
OnNldFNvdXJjZU9wZXJhdGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKLXsKLSAgICBBU1NF
UlRfQVJHKG9wZXJhdGlvbiwgb3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKLSAg
ICBtX2VmZmVjdEFsbG93ZWQgPSBJRU9wRnJvbURyYWdPcChvcGVyYXRpb24pOwotfQotCi12b2lk
IENsaXBib2FyZDo6c2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRp
b24pCi17Ci0gICAgQVNTRVJUX0FSRyhvcGVyYXRpb24sIG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0
aW9uQ29weSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk5vbmUgfHwgb3BlcmF0aW9uID09
IERyYWdPcGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8
fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbk1vdmUgfHwgb3BlcmF0aW9uID09IChEcmFnT3Bl
cmF0aW9uKShEcmFnT3BlcmF0aW9uR2VuZXJpYyB8IERyYWdPcGVyYXRpb25Nb3ZlKSk7Ci0gICAg
bV9kcm9wRWZmZWN0ID0gSUVPcEZyb21EcmFnT3Aob3BlcmF0aW9uKTsKLX0KLQotU3RyaW5nIENs
aXBib2FyZDo6ZHJvcEVmZmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZHJvcEVmZmVjdCA9
PSAidW5pbml0aWFsaXplZCIgPyBBU0NJSUxpdGVyYWwoIm5vbmUiKSA6IG1fZHJvcEVmZmVjdDsK
LX0KLQotdm9pZCBDbGlwYm9hcmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJiBlZmZlY3Qp
Ci17Ci0gICAgaWYgKCFtX2ZvckRyYWcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChlZmZl
Y3QgIT0gIm5vbmUiICYmIGVmZmVjdCAhPSAiY29weSIgJiYgZWZmZWN0ICE9ICJsaW5rIiAmJiBl
ZmZlY3QgIT0gIm1vdmUiKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogVGhlIHNw
ZWMgYWxsb3dzIHRoaXMgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRoZXJlIGlzIHByb2JhYmx5IG5v
IHZhbHVlCi0gICAgLy8gaW4gaWdub3JpbmcgYXR0ZW1wdHMgdG8gY2hhbmdlIGl0LgotICAgIGlm
ICghY2FuUmVhZFR5cGVzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZHJvcEVmZmVjdCA9
IGVmZmVjdDsKLX0KLQotU3RyaW5nIENsaXBib2FyZDo6ZWZmZWN0QWxsb3dlZCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fZWZmZWN0QWxsb3dlZDsKLX0KLQotdm9pZCBDbGlwYm9hcmQ6OnNldEVm
ZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJiBlZmZlY3QpCi17Ci0gICAgaWYgKCFtX2ZvckRyYWcp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIC8vIElnbm9yZSBhbnkgYXR0ZW1wdHMgdG8gc2V0IGl0
IHRvIGFuIHVua25vd24gdmFsdWUuCi0gICAgaWYgKGRyYWdPcEZyb21JRU9wKGVmZmVjdCkgPT0g
RHJhZ09wZXJhdGlvblByaXZhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghY2FuV3Jp
dGVEYXRhKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZWZmZWN0QWxsb3dlZCA9IGVmZmVj
dDsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgJKHJldmlzaW9uIDE2Njk1NykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMjMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3Qu
Y29tKQotICogQ29weXJpZ2h0IChDKSAyMDAxIFRvYmlhcyBBbnRvbiAoYW50b25Ac3R1ZC5mYmku
ZmgtZGFybXN0YWR0LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNh
bS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5k
ZWYgQ2xpcGJvYXJkX2gKLSNkZWZpbmUgQ2xpcGJvYXJkX2gKLQotI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCi0jaW5j
bHVkZSAiRHJhZ0FjdGlvbnMuaCIKLSNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKLSNpbmNsdWRlICJJ
bnRQb2ludC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIENhY2hl
ZEltYWdlOwotICAgIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1MaXN0OwotICAgIGNsYXNzIERyYWdE
YXRhOwotICAgIGNsYXNzIERyYWdJbWFnZUxvYWRlcjsKLSAgICBjbGFzcyBFbGVtZW50OwotICAg
IGNsYXNzIEZpbGVMaXN0OwotICAgIGNsYXNzIFBhc3RlYm9hcmQ7Ci0KLSAgICBjbGFzcyBDbGlw
Ym9hcmQgOiBwdWJsaWMgUmVmQ291bnRlZDxDbGlwYm9hcmQ+IHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKENs
aXBib2FyZEFjY2Vzc1BvbGljeSk7Ci0KLSAgICAgICAgfkNsaXBib2FyZCgpOwotCi0gICAgICAg
IFN0cmluZyBkcm9wRWZmZWN0KCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0RHJvcEVmZmVjdChj
b25zdCBTdHJpbmcmKTsKLQotICAgICAgICBTdHJpbmcgZWZmZWN0QWxsb3dlZCgpIGNvbnN0Owot
ICAgICAgICB2b2lkIHNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJik7Ci0KLSAgICAgICAg
VmVjdG9yPFN0cmluZz4gdHlwZXMoKSBjb25zdDsKLQotICAgICAgICBQYXNzUmVmUHRyPEZpbGVM
aXN0PiBmaWxlcygpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmlu
ZyYgdHlwZSk7Ci0gICAgICAgIHZvaWQgY2xlYXJEYXRhKCk7Ci0KLSAgICAgICAgU3RyaW5nIGdl
dERhdGEoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdDsKLQotICAgICAgICBib29sIHNldERhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwotCi0gICAgICAgIHZvaWQg
c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBpbnQgeCwgaW50IHkpOwotCi0jaWYgRU5BQkxFKERBVEFf
VFJBTlNGRVJfSVRFTVMpCi0gICAgICAgIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+
IGl0ZW1zKCkgPSAwOwotI2VuZGlmCi0KLSAgICAgICAgdm9pZCBzZXRBY2Nlc3NQb2xpY3koQ2xp
cGJvYXJkQWNjZXNzUG9saWN5KTsKLSAgICAgICAgYm9vbCBjYW5SZWFkVHlwZXMoKSBjb25zdDsK
LSAgICAgICAgYm9vbCBjYW5SZWFkRGF0YSgpIGNvbnN0OwotICAgICAgICBib29sIGNhbldyaXRl
RGF0YSgpIGNvbnN0OwotCi0gICAgICAgIFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQoKSB7IHJldHVy
biAqbV9wYXN0ZWJvYXJkOyB9Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoQ2xp
cGJvYXJkQWNjZXNzUG9saWN5LCBjb25zdCBEcmFnRGF0YSYpOwotCi0gICAgICAgIGJvb2wgZHJv
cEVmZmVjdElzVW5pbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJvcEVmZmVjdCA9PSAi
dW5pbml0aWFsaXplZCI7IH0KLQotICAgICAgICBEcmFnT3BlcmF0aW9uIHNvdXJjZU9wZXJhdGlv
bigpIGNvbnN0OwotICAgICAgICBEcmFnT3BlcmF0aW9uIGRlc3RpbmF0aW9uT3BlcmF0aW9uKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0U291cmNlT3BlcmF0aW9uKERyYWdPcGVyYXRpb24pOwot
ICAgICAgICB2b2lkIHNldERlc3RpbmF0aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24pOwotCi0g
ICAgICAgIHZvaWQgc2V0RHJhZ0hhc1N0YXJ0ZWQoKSB7IG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdl
ID0gdHJ1ZTsgfQotICAgICAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JiBkcmFnTG9jYXRpb24pIGNvbnN0OwotICAgICAgICB2b2lkIHVwZGF0ZURyYWdJbWFnZSgpOwot
I2VuZGlmCi0KLSAgICBwcml2YXRlOgotICAgICAgICBlbnVtIENsaXBib2FyZFR5cGUgeyBDb3B5
QW5kUGFzdGUsIERyYWdBbmREcm9wIH07Ci0gICAgICAgIENsaXBib2FyZChDbGlwYm9hcmRBY2Nl
c3NQb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4sIENsaXBib2FyZFR5cGUgPSBDb3B5QW5k
UGFzdGUsIGJvb2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQotICAgICAgICBib29sIGNhblNldERyYWdJbWFnZSgpIGNvbnN0OwotI2VuZGlmCi0KLSAg
ICAgICAgQ2xpcGJvYXJkQWNjZXNzUG9saWN5IG1fcG9saWN5OwotICAgICAgICBPd25QdHI8UGFz
dGVib2FyZD4gbV9wYXN0ZWJvYXJkOwotCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAg
ICAgYm9vbCBtX2ZvckRyYWc7Ci0gICAgICAgIGJvb2wgbV9mb3JGaWxlRHJhZzsKLSAgICAgICAg
U3RyaW5nIG1fZHJvcEVmZmVjdDsKLSAgICAgICAgU3RyaW5nIG1fZWZmZWN0QWxsb3dlZDsKLSAg
ICAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZURyYWdJbWFnZTsKLSAgICAgICAgSW50UG9pbnQgbV9k
cmFnTG9jYXRpb247Ci0gICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBt
X2RyYWdJbWFnZTsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZHJhZ0ltYWdlRWxlbWVudDsK
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPERyYWdJbWFnZUxvYWRlcj4gbV9kcmFnSW1hZ2VMb2Fk
ZXI7Ci0jZW5kaWYKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBDbGlwYm9hcmRfaApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwJKHJldmlzaW9uIDE2
Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotWwotICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAotXSBpbnRlcmZhY2Ug
Q2xpcGJvYXJkIHsKLSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRyb3BFZmZlY3Q7Ci0gICAgYXR0
cmlidXRlIERPTVN0cmluZyBlZmZlY3RBbGxvd2VkOwotCi0gICAgW0N1c3RvbUdldHRlcl0gcmVh
ZG9ubHkgYXR0cmlidXRlIEFycmF5IHR5cGVzOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGaWxl
TGlzdCBmaWxlczsKLQotICAgIHZvaWQgY2xlYXJEYXRhKG9wdGlvbmFsIERPTVN0cmluZyB0eXBl
KTsKLSAgICBET01TdHJpbmcgZ2V0RGF0YShET01TdHJpbmcgdHlwZSk7Ci0gICAgYm9vbGVhbiBz
ZXREYXRhKERPTVN0cmluZyB0eXBlLCBET01TdHJpbmcgZGF0YSk7Ci0gICAgdm9pZCBzZXREcmFn
SW1hZ2UoRWxlbWVudCBpbWFnZSwgbG9uZyB4LCBsb25nIHkpOwotCi0gICAgW0NvbmRpdGlvbmFs
PURBVEFfVFJBTlNGRVJfSVRFTVNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhVHJhbnNmZXJJdGVt
TGlzdCBpdGVtczsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkQWNjZXNz
UG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEFjY2Vz
c1BvbGljeS5oCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSAKLSNpZm5kZWYgQ2xpcGJv
YXJkQWNjZXNzUG9saWN5X2gKLSNkZWZpbmUgQ2xpcGJvYXJkQWNjZXNzUG9saWN5X2gKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIENsaXBib2FyZEFjY2Vzc1BvbGljeSB7Ci0gICAgQ2xp
cGJvYXJkTnVtYiwgQ2xpcGJvYXJkSW1hZ2VXcml0YWJsZSwgQ2xpcGJvYXJkV3JpdGFibGUsIENs
aXBib2FyZFR5cGVzUmVhZGFibGUsIENsaXBib2FyZFJlYWRhYmxlCi19OwotCi19IC8vIG5hbWVz
cGFjZQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRFdmVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmNwcAko
cmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNp
bmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTMyLDggKzMyLDggQEAgQ2xpcGJvYXJkRXZlbnQ6OkNsaXBib2Fy
ZEV2ZW50KCkKIHsKIH0KIAotQ2xpcGJvYXJkRXZlbnQ6OkNsaXBib2FyZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQ
YXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkKQotICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGUsIGNhbmNlbGFibGUpLCBtX2NsaXBib2FyZChjbGlwYm9hcmQpCitDbGlwYm9hcmRF
dmVudDo6Q2xpcGJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRh
VHJhbnNmZXIpCisgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSks
IG1fZGF0YVRyYW5zZmVyKGRhdGFUcmFuc2ZlcikKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0NsaXBib2FyZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZEV2ZW50LmgJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9DbGlwYm9hcmRFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENsaXBib2FyZDsKKyAgICBjbGFzcyBEYXRh
VHJhbnNmZXI7CiAKICAgICBjbGFzcyBDbGlwYm9hcmRFdmVudCA6IHB1YmxpYyBFdmVudCB7CiAg
ICAgcHVibGljOgpAQCAtMzgsMjEgKzM4LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmRFdmVudCk7CiAg
ICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNl
bGFibGVBcmcsIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmRBcmcpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gY2xpcGJvYXJkQXJnKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZEV2ZW50KHR5cGUsIGNhbkJ1YmJsZUFyZywgY2FuY2Vs
YWJsZUFyZywgY2xpcGJvYXJkQXJnKSk7CiAgICAgICAgIH0KIAotICAgICAgICBDbGlwYm9hcmQq
IGNsaXBib2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcGJvYXJkLmdldCgpOyB9CisgICAgICAg
IHZpcnR1YWwgRGF0YVRyYW5zZmVyKiBpbnRlcm5hbERhdGFUcmFuc2ZlcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fZGF0YVRyYW5zZmVyLmdldCgpOyB9CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBDbGlwYm9hcmRFdmVudCgpOwotICAgICAgICBDbGlwYm9hcmRFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPik7CisgICAgICAgIENsaXBib2FyZEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXI+KTsKIAogICAgICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNl
IGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0NsaXBib2FyZEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAgICAgUmVmUHRyPENsaXBi
b2FyZD4gbV9jbGlwYm9hcmQ7CisgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IG1fZGF0YVRy
YW5zZmVyOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9DbGlwYm9hcmRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZE1hYy5tbQkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw2MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4LCAyMDEwLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiQ2xpcGJvYXJkLmgi
Ci0KLSNpbXBvcnQgIkNhY2hlZEltYWdlLmgiCi0jaW1wb3J0ICJFbGVtZW50LmgiCi0jaW1wb3J0
ICJEcmFnSW1hZ2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBGSVhNRTogTmVlZCB0
byByZWZhY3RvciBhbmQgZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoZSBmbGlwcGluZyBpbiBh
IG1vcmUgc2Vuc2libGUgd2F5IHNvIHdlIGNhbgotLy8gdXNlIHRoZSBkZWZhdWx0IENsaXBib2Fy
ZDo6ZHJhZ0ltYWdlIGZyb20gQ2xpcGJvYXJkLmNwcC4gTm90ZSBhbHNvIHRoYXQgdGhpcyBoYW5k
bGVzIGNhc2VzIHRoYXQKLS8vIENsaXBib2FyZDo6ZHJhZ0ltYWdlIGluIENsaXBib2FyZC5jcHAg
ZG9lcyBub3QgaGFuZGxlIGNvcnJlY3RseSwgc28gbXVzdCByZXNvbHZlIHRoYXQgYXMgd2VsbC4K
LURyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRp
b24pIGNvbnN0Ci17Ci0gICAgRHJhZ0ltYWdlUmVmIHJlc3VsdCA9IG5pbDsKLSAgICBpZiAobV9k
cmFnSW1hZ2VFbGVtZW50KSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RyYWdJbWFn
ZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkgewotICAgICAgICAgICAgSW50UmVjdCBpbWFn
ZVJlY3Q7Ci0gICAgICAgICAgICBJbnRSZWN0IGVsZW1lbnRSZWN0OwotICAgICAgICAgICAgcmVz
dWx0ID0gY3JlYXRlRHJhZ0ltYWdlRm9ySW1hZ2UoKmZyYW1lLCAqbV9kcmFnSW1hZ2VFbGVtZW50
LCBpbWFnZVJlY3QsIGVsZW1lbnRSZWN0KTsKLSAgICAgICAgICAgIC8vIENsaWVudCBzcGVjaWZp
ZXMgcG9pbnQgcmVsYXRpdmUgdG8gZWxlbWVudCwgbm90IHRoZSB3aG9sZSBpbWFnZSwgd2hpY2gg
bWF5IGluY2x1ZGUgY2hpbGQKLSAgICAgICAgICAgIC8vIGxheWVycyBzcHJlYWQgb3V0IGFsbCBv
dmVyIHRoZSBwbGFjZS4KLSAgICAgICAgICAgIGxvY2F0aW9uLnNldFgoZWxlbWVudFJlY3QueCgp
IC0gaW1hZ2VSZWN0LngoKSArIG1fZHJhZ0xvY2F0aW9uLngoKSk7Ci0gICAgICAgICAgICBsb2Nh
dGlvbi5zZXRZKGltYWdlUmVjdC5oZWlnaHQoKSAtIChlbGVtZW50UmVjdC55KCkgLSBpbWFnZVJl
Y3QueSgpICsgbV9kcmFnTG9jYXRpb24ueSgpKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYg
KG1fZHJhZ0ltYWdlKSB7Ci0gICAgICAgIHJlc3VsdCA9IG1fZHJhZ0ltYWdlLT5pbWFnZSgpLT5n
ZXROU0ltYWdlKCk7Ci0gICAgICAgIAotICAgICAgICBsb2NhdGlvbiA9IG1fZHJhZ0xvY2F0aW9u
OwotICAgICAgICBsb2NhdGlvbi5zZXRZKFtyZXN1bHQgc2l6ZV0uaGVpZ2h0IC0gbG9jYXRpb24u
eSgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW5j
bHVkZSAiQ2xhc3NOb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5jcHAiCiAjaW5j
bHVkZSAiQ2xpZW50UmVjdExpc3QuY3BwIgotI2luY2x1ZGUgIkNsaXBib2FyZC5jcHAiCiAjaW5j
bHVkZSAiQ2xpcGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hl
LmNwcCIKICNpbmNsdWRlICJDb21tZW50LmNwcCIKQEAgLTUwLDYgKzQ5LDcgQEAKICNpbmNsdWRl
ICJET01JbXBsZW1lbnRhdGlvbi5jcHAiCiAjaW5jbHVkZSAiRE9NTmFtZWRGbG93Q29sbGVjdGlv
bi5jcHAiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5jcHAiCisjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVyLmNwcCIKICNpbmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCIKICNpbmNsdWRlICJE
ZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250
cm9sbGVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCShyZXZpc2lv
biAxNjY4NzMpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuY3BwOjE2Njg3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
bGlwYm9hcmQuaCIKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2VDbGllbnQuaCIKKyNpbmNsdWRlICJEcmFnRGF0YS5oIgorI2luY2x1ZGUgIkVkaXRvci5o
IgorI2luY2x1ZGUgIkZpbGVMaXN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJ
bWFnZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKworY2xhc3MgRHJhZ0ltYWdlTG9hZGVyIGZpbmFs
IDogcHJpdmF0ZSBDYWNoZWRJbWFnZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
RHJhZ0ltYWdlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgRHJhZ0ltYWdlTG9hZGVyKENsaXBib2FyZCopOworICAgIHZvaWQgc3RhcnRMb2Fk
aW5nKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiYpOworICAgIHZvaWQgc3RvcExv
YWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+Jik7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3Qq
KSBvdmVycmlkZTsKKyAgICBDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOworfTsKKworI2VuZGlmCisK
K0NsaXBib2FyZDo6Q2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIFBhc3NP
d25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwgQ2xpcGJvYXJkVHlwZSB0eXBlLCBib29sIGZv
ckZpbGVEcmFnKQorICAgIDogbV9wb2xpY3kocG9saWN5KQorICAgICwgbV9wYXN0ZWJvYXJkKHBh
c3RlYm9hcmQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICAsIG1fZm9yRHJhZyh0eXBl
ICE9IENvcHlBbmRQYXN0ZSkKKyAgICAsIG1fZm9yRmlsZURyYWcoZm9yRmlsZURyYWcpCisgICAg
LCBtX2Ryb3BFZmZlY3QoQVNDSUlMaXRlcmFsKCJ1bmluaXRpYWxpemVkIikpCisgICAgLCBtX2Vm
ZmVjdEFsbG93ZWQoQVNDSUlMaXRlcmFsKCJ1bmluaXRpYWxpemVkIikpCisgICAgLCBtX3Nob3Vs
ZFVwZGF0ZURyYWdJbWFnZShmYWxzZSkKKyNlbmRpZgoreworI2lmICFFTkFCTEUoRFJBR19TVVBQ
T1JUKQorICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBDb3B5QW5kUGFzdGUpOworICAg
IEFTU0VSVF9VTlVTRUQoZm9yRmlsZURyYWcsICFmb3JGaWxlRHJhZyk7CisjZW5kaWYKK30KKwor
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKENs
aXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
bGlwYm9hcmQocG9saWN5LCBwb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGUgPyBQYXN0ZWJvYXJk
OjpjcmVhdGVQcml2YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkp
OworfQorCitDbGlwYm9hcmQ6On5DbGlwYm9hcmQoKQoreworI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisgICAgaWYgKG1fZHJhZ0ltYWdlTG9hZGVyICYmIG1fZHJhZ0ltYWdlKQorICAgICAgICBt
X2RyYWdJbWFnZUxvYWRlci0+c3RvcExvYWRpbmcobV9kcmFnSW1hZ2UpOworI2VuZGlmCit9Cisg
ICAgCit2b2lkIENsaXBib2FyZDo6c2V0QWNjZXNzUG9saWN5KENsaXBib2FyZEFjY2Vzc1BvbGlj
eSBwb2xpY3kpCit7CisgICAgLy8gT25jZSB0aGUgY2xpcGJvYXJkIGdvZXMgbnVtYiwgaXQgY2Fu
IG5ldmVyIGdvIGJhY2suCisgICAgQVNTRVJUKG1fcG9saWN5ICE9IENsaXBib2FyZE51bWIgfHwg
cG9saWN5ID09IENsaXBib2FyZE51bWIpOworICAgIG1fcG9saWN5ID0gcG9saWN5OworfQorCiti
b29sIENsaXBib2FyZDo6Y2FuUmVhZFR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wb2xp
Y3kgPT0gQ2xpcGJvYXJkUmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkVHlwZXNSZWFk
YWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZTsKK30KKworYm9vbCBDbGlwYm9h
cmQ6OmNhblJlYWREYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wb2xpY3kgPT0gQ2xpcGJv
YXJkUmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7Cit9CisKK2Jvb2wg
Q2xpcGJvYXJkOjpjYW5Xcml0ZURhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA9
PSBDbGlwYm9hcmRXcml0YWJsZTsKK30KKwordm9pZCBDbGlwYm9hcmQ6OmNsZWFyRGF0YShjb25z
dCBTdHJpbmcmIHR5cGUpCit7CisgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYXN0ZWJvYXJkLT5jbGVhcih0eXBlKTsKK30KKwordm9pZCBDbGlwYm9h
cmQ6OmNsZWFyRGF0YSgpCit7CisgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYXN0ZWJvYXJkLT5jbGVhcigpOworfQorCitTdHJpbmcgQ2xpcGJvYXJk
OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKK3sKKyAgICBpZiAoIWNhblJlYWRE
YXRhKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisgICAgaWYgKG1fZm9yRmlsZURyYWcpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyNl
bmRpZgorCisgICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+cmVhZFN0cmluZyh0eXBlKTsKK30KKwor
Ym9vbCBDbGlwYm9hcmQ6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGRhdGEpCit7CisgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICBpZiAobV9mb3JGaWxlRHJhZykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICByZXR1cm4gbV9wYXN0ZWJvYXJkLT53
cml0ZVN0cmluZyh0eXBlLCBkYXRhKTsKK30KKworVmVjdG9yPFN0cmluZz4gQ2xpcGJvYXJkOjp0
eXBlcygpIGNvbnN0Cit7CisgICAgaWYgKCFjYW5SZWFkVHlwZXMoKSkKKyAgICAgICAgcmV0dXJu
IFZlY3RvcjxTdHJpbmc+KCk7CisKKyAgICByZXR1cm4gbV9wYXN0ZWJvYXJkLT50eXBlcygpOwor
fQorCitQYXNzUmVmUHRyPEZpbGVMaXN0PiBDbGlwYm9hcmQ6OmZpbGVzKCkgY29uc3QKK3sKKyAg
ICAvLyBGSVhNRTogV2UgY291bGQgY2FjaGUgdGhlIGNvbXB1dGVkIGZpbGUgbGlzdCBpZiBpdCB3
YXMgbmVjZXNzYXJ5IGFuZCBoZWxwZnVsLgorICAgIC8vIEN1cnJlbnRseSwgZWFjaCBhY2Nlc3Mg
Z2V0cyBhIG5ldyBjb3B5LCBhbmQgdGh1cyBzZXREYXRhKCkgbW9kaWZpY2F0aW9ucyB0byB0aGUK
KyAgICAvLyBjbGlwYm9hcmQgYXJlIG5vdCByZWZsZWN0ZWQgaW4gYW55IEZpbGVMaXN0IG9iamVj
dHMgdGhlIHBhZ2UgaGFzIGFjY2Vzc2VkIGFuZCBzdG9yZWQuCisKKyAgICBpZiAoIWNhblJlYWRE
YXRhKCkpCisgICAgICAgIHJldHVybiBGaWxlTGlzdDo6Y3JlYXRlKCk7CisKKyNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQorICAgIGlmIChtX2ZvckRyYWcgJiYgIW1fZm9yRmlsZURyYWcpCisgICAg
ICAgIHJldHVybiBGaWxlTGlzdDo6Y3JlYXRlKCk7CisjZW5kaWYKKworICAgIFZlY3RvcjxTdHJp
bmc+IGZpbGVuYW1lcyA9IG1fcGFzdGVib2FyZC0+cmVhZEZpbGVuYW1lcygpOworICAgIFJlZlB0
cjxGaWxlTGlzdD4gZmlsZUxpc3QgPSBGaWxlTGlzdDo6Y3JlYXRlKCk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBmaWxlbmFtZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGZpbGVMaXN0LT5h
cHBlbmQoRmlsZTo6Y3JlYXRlKGZpbGVuYW1lc1tpXSwgRmlsZTo6QWxsQ29udGVudFR5cGVzKSk7
CisgICAgcmV0dXJuIGZpbGVMaXN0LnJlbGVhc2UoKTsKK30KKworI2lmICFFTkFCTEUoRFJBR19T
VVBQT1JUKQorCitTdHJpbmcgQ2xpcGJvYXJkOjpkcm9wRWZmZWN0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJub25lIik7Cit9CisKK3ZvaWQgQ2xpcGJvYXJkOjpzZXREcm9w
RWZmZWN0KGNvbnN0IFN0cmluZyYpCit7Cit9CisKK1N0cmluZyBDbGlwYm9hcmQ6OmVmZmVjdEFs
bG93ZWQoKSBjb25zdAoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuaW5pdGlhbGl6ZWQi
KTsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJikK
K3sKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiwgaW50LCBpbnQp
Cit7Cit9CisKKyNlbHNlCisKK1Bhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZChD
bGlwYm9hcmRXcml0YWJsZSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgRHJh
Z0FuZERyb3ApKTsKK30KKworUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgY29uc3QgRHJhZ0Rh
dGEmIGRyYWdEYXRhKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkKHBvbGlj
eSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEpLCBEcmFnQW5kRHJv
cCwgZHJhZ0RhdGEuY29udGFpbnNGaWxlcygpKSk7Cit9CisKK2Jvb2wgQ2xpcGJvYXJkOjpjYW5T
ZXREcmFnSW1hZ2UoKSBjb25zdAoreworICAgIC8vIE5vdGUgdGhhdCB0aGUgc3BlYyBkb2Vzbid0
IGFjdHVhbGx5IGFsbG93IGRyYWcgaW1hZ2UgbW9kaWZpY2F0aW9uIG91dHNpZGUgdGhlIGRyYWdz
dGFydAorICAgIC8vIGV2ZW50LiBUaGlzIGNhcGFiaWxpdHkgaXMgbWFpbnRhaW5lZCBmb3IgYmFj
a3dhcmRzIGNvbXBhdGlibGl0eSBmb3IgcG9ydHMgdGhhdCBoYXZlCisgICAgLy8gc3VwcG9ydGVk
IHRoaXMgaW4gdGhlIHBhc3QuIE9uIG1hbnkgcG9ydHMsIGF0dGVtcHRpbmcgdG8gc2V0IGEgZHJh
ZyBpbWFnZSBvdXRzaWRlIHRoZQorICAgIC8vIGRyYWdzdGFydCBvcGVyYXRpb24gaXMgYSBuby1v
cCBhbnl3YXkuCisgICAgcmV0dXJuIG1fZm9yRHJhZyAmJiAobV9wb2xpY3kgPT0gQ2xpcGJvYXJk
SW1hZ2VXcml0YWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZSk7Cit9CisKK3Zv
aWQgQ2xpcGJvYXJkOjpzZXREcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgaW50IHgsIGludCB5
KQoreworICAgIGlmICghY2FuU2V0RHJhZ0ltYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IENhY2hlZEltYWdlKiBpbWFnZTsKKyAgICBpZiAoZWxlbWVudCAmJiBpc0hUTUxJbWFnZUVsZW1l
bnQoZWxlbWVudCkgJiYgIWVsZW1lbnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgaW1hZ2UgPSB0
b0hUTUxJbWFnZUVsZW1lbnQoZWxlbWVudCktPmNhY2hlZEltYWdlKCk7CisgICAgZWxzZQorICAg
ICAgICBpbWFnZSA9IDA7CisKKyAgICBtX2RyYWdMb2NhdGlvbiA9IEludFBvaW50KHgsIHkpOwor
CisgICAgaWYgKG1fZHJhZ0ltYWdlTG9hZGVyICYmIG1fZHJhZ0ltYWdlKQorICAgICAgICBtX2Ry
YWdJbWFnZUxvYWRlci0+c3RvcExvYWRpbmcobV9kcmFnSW1hZ2UpOworICAgIG1fZHJhZ0ltYWdl
ID0gaW1hZ2U7CisgICAgaWYgKG1fZHJhZ0ltYWdlKSB7CisgICAgICAgIGlmICghbV9kcmFnSW1h
Z2VMb2FkZXIpCisgICAgICAgICAgICBtX2RyYWdJbWFnZUxvYWRlciA9IHN0ZDo6bWFrZV91bmlx
dWU8RHJhZ0ltYWdlTG9hZGVyPih0aGlzKTsKKyAgICAgICAgbV9kcmFnSW1hZ2VMb2FkZXItPnN0
YXJ0TG9hZGluZyhtX2RyYWdJbWFnZSk7CisgICAgfQorCisgICAgbV9kcmFnSW1hZ2VFbGVtZW50
ID0gaW1hZ2UgPyAwIDogZWxlbWVudDsKKworICAgIHVwZGF0ZURyYWdJbWFnZSgpOworfQorCit2
b2lkIENsaXBib2FyZDo6dXBkYXRlRHJhZ0ltYWdlKCkKK3sKKyAgICAvLyBEb24ndCBhbGxvdyBz
ZXR0aW5nIHRoZSBpbWFnZSBpZiB3ZSBoYXZlbid0IHN0YXJ0ZWQgZHJhZ2dpbmcgeWV0OyB3ZSds
bCByZWx5IG9uIHRoZSBkcmFnZ2luZyBjb2RlCisgICAgLy8gdG8gaW5zdGFsbCB0aGlzIGRyYWcg
aW1hZ2UgYXMgcGFydCBvZiBnZXR0aW5nIHRoZSBkcmFnIGtpY2tlZCBvZmYuCisgICAgaWYgKCFt
X3Nob3VsZFVwZGF0ZURyYWdJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW50UG9pbnQg
Y29tcHV0ZWRIb3RTcG90OworICAgIERyYWdJbWFnZVJlZiBjb21wdXRlZEltYWdlID0gY3JlYXRl
RHJhZ0ltYWdlKGNvbXB1dGVkSG90U3BvdCk7CisgICAgaWYgKCFjb21wdXRlZEltYWdlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Bhc3RlYm9hcmQtPnNldERyYWdJbWFnZShjb21wdXRlZElt
YWdlLCBjb21wdXRlZEhvdFNwb3QpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorCitEcmFn
SW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBj
b25zdAoreworICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jYXRpb247CisKKyAgICBpZiAobV9kcmFn
SW1hZ2UpCisgICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1h
Z2UtPmltYWdlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKKworICAgIGlmICht
X2RyYWdJbWFnZUVsZW1lbnQpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZHJhZ0lt
YWdlRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZURyYWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbV9kcmFnSW1hZ2VFbGVtZW50KTsKKyAgICB9CisK
KyAgICAvLyBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgZHJh
ZyBpbWFnZSwgdXNlIHRoZSBkZWZhdWx0IGljb24uCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
KyNlbmRpZgorCitEcmFnSW1hZ2VMb2FkZXI6OkRyYWdJbWFnZUxvYWRlcihDbGlwYm9hcmQqIGNs
aXBib2FyZCkKKyAgICA6IG1fY2xpcGJvYXJkKGNsaXBib2FyZCkKK3sKK30KKwordm9pZCBEcmFn
SW1hZ2VMb2FkZXI6OnN0YXJ0TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxXZWJDb3JlOjpD
YWNoZWRJbWFnZT4mIGltYWdlKQoreworICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgcmVhbGx5IHRy
aWdnZXIgYSBsb2FkPyBEb2VzIGl0IG5lZWQgdG8/CisgICAgaW1hZ2UtPmFkZENsaWVudCh0aGlz
KTsKK30KKwordm9pZCBEcmFnSW1hZ2VMb2FkZXI6OnN0b3BMb2FkaW5nKENhY2hlZFJlc291cmNl
SGFuZGxlPFdlYkNvcmU6OkNhY2hlZEltYWdlPiYgaW1hZ2UpCit7CisgICAgaW1hZ2UtPnJlbW92
ZUNsaWVudCh0aGlzKTsKK30KKwordm9pZCBEcmFnSW1hZ2VMb2FkZXI6OmltYWdlQ2hhbmdlZChD
YWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqKQoreworICAgIG1fY2xpcGJvYXJkLT51cGRhdGVE
cmFnSW1hZ2UoKTsKK30KKworc3RhdGljIERyYWdPcGVyYXRpb24gZHJhZ09wRnJvbUlFT3AoY29u
c3QgU3RyaW5nJiBvcGVyYXRpb24pCit7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAidW5pbml0aWFs
aXplZCIpCisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uRXZlcnk7CisgICAgaWYgKG9wZXJh
dGlvbiA9PSAibm9uZSIpCisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKKyAgICBp
ZiAob3BlcmF0aW9uID09ICJjb3B5IikKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Db3B5
OworICAgIGlmIChvcGVyYXRpb24gPT0gImxpbmsiKQorICAgICAgICByZXR1cm4gRHJhZ09wZXJh
dGlvbkxpbms7CisgICAgaWYgKG9wZXJhdGlvbiA9PSAibW92ZSIpCisgICAgICAgIHJldHVybiAo
RHJhZ09wZXJhdGlvbikoRHJhZ09wZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSk7
CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiY29weUxpbmsiKQorICAgICAgICByZXR1cm4gKERyYWdP
cGVyYXRpb24pKERyYWdPcGVyYXRpb25Db3B5IHwgRHJhZ09wZXJhdGlvbkxpbmspOworICAgIGlm
IChvcGVyYXRpb24gPT0gImNvcHlNb3ZlIikKKyAgICAgICAgcmV0dXJuIChEcmFnT3BlcmF0aW9u
KShEcmFnT3BlcmF0aW9uQ29weSB8IERyYWdPcGVyYXRpb25HZW5lcmljIHwgRHJhZ09wZXJhdGlv
bk1vdmUpOworICAgIGlmIChvcGVyYXRpb24gPT0gImxpbmtNb3ZlIikKKyAgICAgICAgcmV0dXJu
IChEcmFnT3BlcmF0aW9uKShEcmFnT3BlcmF0aW9uTGluayB8IERyYWdPcGVyYXRpb25HZW5lcmlj
IHwgRHJhZ09wZXJhdGlvbk1vdmUpOworICAgIGlmIChvcGVyYXRpb24gPT0gImFsbCIpCisgICAg
ICAgIHJldHVybiBEcmFnT3BlcmF0aW9uRXZlcnk7CisgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Q
cml2YXRlOyAvLyByZWFsbHkgYSBtYXJrZXIgZm9yICJubyBjb252ZXJzaW9uIgorfQorCitzdGF0
aWMgY29uc3QgY2hhciogSUVPcEZyb21EcmFnT3AoRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7
CisgICAgYm9vbCBpc0dlbmVyaWNNb3ZlID0gb3BlcmF0aW9uICYgKERyYWdPcGVyYXRpb25HZW5l
cmljIHwgRHJhZ09wZXJhdGlvbk1vdmUpOworCisgICAgaWYgKChpc0dlbmVyaWNNb3ZlICYmIChv
cGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uQ29weSkgJiYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRp
b25MaW5rKSkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25FdmVyeSkKKyAgICAgICAgcmV0
dXJuICJhbGwiOworICAgIGlmIChpc0dlbmVyaWNNb3ZlICYmIChvcGVyYXRpb24gJiBEcmFnT3Bl
cmF0aW9uQ29weSkpCisgICAgICAgIHJldHVybiAiY29weU1vdmUiOworICAgIGlmIChpc0dlbmVy
aWNNb3ZlICYmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykpCisgICAgICAgIHJldHVy
biAibGlua01vdmUiOworICAgIGlmICgob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkNvcHkpICYm
IChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uTGluaykpCisgICAgICAgIHJldHVybiAiY29weUxp
bmsiOworICAgIGlmIChpc0dlbmVyaWNNb3ZlKQorICAgICAgICByZXR1cm4gIm1vdmUiOworICAg
IGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uQ29weSkKKyAgICAgICAgcmV0dXJuICJjb3B5
IjsKKyAgICBpZiAob3BlcmF0aW9uICYgRHJhZ09wZXJhdGlvbkxpbmspCisgICAgICAgIHJldHVy
biAibGluayI7CisgICAgcmV0dXJuICJub25lIjsKK30KKworRHJhZ09wZXJhdGlvbiBDbGlwYm9h
cmQ6OnNvdXJjZU9wZXJhdGlvbigpIGNvbnN0Cit7CisgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRp
b24gPSBkcmFnT3BGcm9tSUVPcChtX2VmZmVjdEFsbG93ZWQpOworICAgIEFTU0VSVChvcGVyYXRp
b24gIT0gRHJhZ09wZXJhdGlvblByaXZhdGUpOworICAgIHJldHVybiBvcGVyYXRpb247Cit9CisK
K0RyYWdPcGVyYXRpb24gQ2xpcGJvYXJkOjpkZXN0aW5hdGlvbk9wZXJhdGlvbigpIGNvbnN0Cit7
CisgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBkcmFnT3BGcm9tSUVPcChtX2Ryb3BFZmZl
Y3QpOworICAgIEFTU0VSVChvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkNvcHkgfHwgb3BlcmF0
aW9uID09IERyYWdPcGVyYXRpb25Ob25lIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTGlu
ayB8fCBvcGVyYXRpb24gPT0gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25HZW5lcmljIHwg
RHJhZ09wZXJhdGlvbk1vdmUpIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uRXZlcnkpOwor
ICAgIHJldHVybiBvcGVyYXRpb247Cit9CisKK3ZvaWQgQ2xpcGJvYXJkOjpzZXRTb3VyY2VPcGVy
YXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7CisgICAgQVNTRVJUX0FSRyhvcGVyYXRp
b24sIG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgbV9lZmZlY3RBbGxv
d2VkID0gSUVPcEZyb21EcmFnT3Aob3BlcmF0aW9uKTsKK30KKwordm9pZCBDbGlwYm9hcmQ6OnNl
dERlc3RpbmF0aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQoreworICAgIEFT
U0VSVF9BUkcob3BlcmF0aW9uLCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkNvcHkgfHwgb3Bl
cmF0aW9uID09IERyYWdPcGVyYXRpb25Ob25lIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9u
TGluayB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkdlbmVyaWMgfHwgb3BlcmF0aW9uID09
IERyYWdPcGVyYXRpb25Nb3ZlIHx8IG9wZXJhdGlvbiA9PSAoRHJhZ09wZXJhdGlvbikoRHJhZ09w
ZXJhdGlvbkdlbmVyaWMgfCBEcmFnT3BlcmF0aW9uTW92ZSkpOworICAgIG1fZHJvcEVmZmVjdCA9
IElFT3BGcm9tRHJhZ09wKG9wZXJhdGlvbik7Cit9CisKK1N0cmluZyBDbGlwYm9hcmQ6OmRyb3BF
ZmZlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6
ZWQiID8gQVNDSUlMaXRlcmFsKCJub25lIikgOiBtX2Ryb3BFZmZlY3Q7Cit9CisKK3ZvaWQgQ2xp
cGJvYXJkOjpzZXREcm9wRWZmZWN0KGNvbnN0IFN0cmluZyYgZWZmZWN0KQoreworICAgIGlmICgh
bV9mb3JEcmFnKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZWZmZWN0ICE9ICJub25lIiAm
JiBlZmZlY3QgIT0gImNvcHkiICYmIGVmZmVjdCAhPSAibGluayIgJiYgZWZmZWN0ICE9ICJtb3Zl
IikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFRoZSBzcGVjIGFsbG93cyB0aGlz
IGluIGFsbCBjaXJjdW1zdGFuY2VzLiBUaGVyZSBpcyBwcm9iYWJseSBubyB2YWx1ZQorICAgIC8v
IGluIGlnbm9yaW5nIGF0dGVtcHRzIHRvIGNoYW5nZSBpdC4KKyAgICBpZiAoIWNhblJlYWRUeXBl
cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Ryb3BFZmZlY3QgPSBlZmZlY3Q7Cit9CisK
K1N0cmluZyBDbGlwYm9hcmQ6OmVmZmVjdEFsbG93ZWQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2VmZmVjdEFsbG93ZWQ7Cit9CisKK3ZvaWQgQ2xpcGJvYXJkOjpzZXRFZmZlY3RBbGxvd2VkKGNv
bnN0IFN0cmluZyYgZWZmZWN0KQoreworICAgIGlmICghbV9mb3JEcmFnKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBJZ25vcmUgYW55IGF0dGVtcHRzIHRvIHNldCBpdCB0byBhbiB1bmtub3du
IHZhbHVlLgorICAgIGlmIChkcmFnT3BGcm9tSUVPcChlZmZlY3QpID09IERyYWdPcGVyYXRpb25Q
cml2YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2VmZmVjdEFsbG93ZWQgPSBlZmZlY3Q7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAkod29ya2luZyBjb3B5KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
CisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgog
I2luY2x1ZGUgIkNhY2hlZEltYWdlQ2xpZW50LmgiCkBAIC00NCwxOCArNDQsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgRHJhZ0ltYWdlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNo
ZWRJbWFnZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRHJhZ0ltYWdlTG9hZGVy
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRHJhZ0lt
YWdlTG9hZGVyKENsaXBib2FyZCopOworICAgIGV4cGxpY2l0IERyYWdJbWFnZUxvYWRlcihEYXRh
VHJhbnNmZXIqKTsKICAgICB2b2lkIHN0YXJ0TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRJbWFnZT4mKTsKICAgICB2b2lkIHN0b3BMb2FkaW5nKENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiYpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5n
ZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0Kikgb3ZlcnJpZGU7Ci0gICAgQ2xpcGJvYXJk
KiBtX2NsaXBib2FyZDsKKyAgICBEYXRhVHJhbnNmZXIqIG1fZGF0YVRyYW5zZmVyOwogfTsKIAog
I2VuZGlmCiAKLUNsaXBib2FyZDo6Q2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xp
Y3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwgQ2xpcGJvYXJkVHlwZSB0eXBl
LCBib29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5IHBvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJk
LCBUeXBlIHR5cGUsIGJvb2wgZm9yRmlsZURyYWcpCiAgICAgOiBtX3BvbGljeShwb2xpY3kpCiAg
ICAgLCBtX3Bhc3RlYm9hcmQocGFzdGVib2FyZCkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpA
QCAtNzIsMTIgKzcyLDEyIEBAIENsaXBib2FyZDo6Q2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1Bv
bGkKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkKK1Bhc3NSZWZQdHI8
RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShEYXRhVHJh
bnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xp
cGJvYXJkKHBvbGljeSwgcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlID8gUGFzdGVib2FyZDo6
Y3JlYXRlUHJpdmF0ZSgpIDogUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIHBvbGljeSA9PSBE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlID8gUGFzdGVib2FyZDo6Y3JlYXRlUHJp
dmF0ZSgpIDogUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpKTsKIH0KIAotQ2xp
cGJvYXJkOjp+Q2xpcGJvYXJkKCkKK0RhdGFUcmFuc2Zlcjo6fkRhdGFUcmFuc2ZlcigpCiB7CiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBpZiAobV9kcmFnSW1hZ2VMb2FkZXIgJiYgbV9k
cmFnSW1hZ2UpCkBAIC04NSwyOSArODUsMjkgQEAgQ2xpcGJvYXJkOjp+Q2xpcGJvYXJkKCkKICNl
bmRpZgogfQogICAgIAotdm9pZCBDbGlwYm9hcmQ6OnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3kgcG9saWN5KQordm9pZCBEYXRhVHJhbnNmZXI6OnNldEFjY2Vzc1BvbGljeShE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5KQogewotICAgIC8vIE9uY2UgdGhlIGNsaXBi
b2FyZCBnb2VzIG51bWIsIGl0IGNhbiBuZXZlciBnbyBiYWNrLgotICAgIEFTU0VSVChtX3BvbGlj
eSAhPSBDbGlwYm9hcmROdW1iIHx8IHBvbGljeSA9PSBDbGlwYm9hcmROdW1iKTsKKyAgICAvLyBP
bmNlIHRoZSBkYXRhVHJhbnNmZXIgZ29lcyBudW1iLCBpdCBjYW4gbmV2ZXIgZ28gYmFjay4KKyAg
ICBBU1NFUlQobV9wb2xpY3kgIT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iIHx8IHBv
bGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOwogICAgIG1fcG9saWN5ID0g
cG9saWN5OwogfQogCi1ib29sIENsaXBib2FyZDo6Y2FuUmVhZFR5cGVzKCkgY29uc3QKK2Jvb2wg
RGF0YVRyYW5zZmVyOjpjYW5SZWFkVHlwZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX3BvbGlj
eSA9PSBDbGlwYm9hcmRSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBDbGlwYm9hcmRUeXBlc1JlYWRh
YmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlOworICAgIHJldHVybiBtX3BvbGlj
eSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OlJlYWRhYmxlIHx8IG1fcG9saWN5ID09IERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6VHlwZXNSZWFkYWJsZSB8fCBtX3BvbGljeSA9PSBEYXRh
VHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlOwogfQogCi1ib29sIENsaXBib2FyZDo6Y2Fu
UmVhZERhdGEoKSBjb25zdAorYm9vbCBEYXRhVHJhbnNmZXI6OmNhblJlYWREYXRhKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9wb2xpY3kgPT0gQ2xpcGJvYXJkUmVhZGFibGUgfHwgbV9wb2xpY3kg
PT0gQ2xpcGJvYXJkV3JpdGFibGU7CisgICAgcmV0dXJuIG1fcG9saWN5ID09IERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeTo6UmVhZGFibGUgfHwgbV9wb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5OjpXcml0YWJsZTsKIH0KIAotYm9vbCBDbGlwYm9hcmQ6OmNhbldyaXRlRGF0YSgpIGNv
bnN0Citib29sIERhdGFUcmFuc2Zlcjo6Y2FuV3JpdGVEYXRhKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9wb2xpY3kgPT0gQ2xpcGJvYXJkV3JpdGFibGU7CisgICAgcmV0dXJuIG1fcG9saWN5ID09
IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGU7CiB9CiAKLXZvaWQgQ2xpcGJvYXJk
OjpjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBEYXRhVHJhbnNmZXI6OmNsZWFy
RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgQ2xpcGJvYXJkOjpjbGVhckRh
dGEoY29uc3QgU3RyaW5nJiAKICAgICBtX3Bhc3RlYm9hcmQtPmNsZWFyKHR5cGUpOwogfQogCi12
b2lkIENsaXBib2FyZDo6Y2xlYXJEYXRhKCkKK3ZvaWQgRGF0YVRyYW5zZmVyOjpjbGVhckRhdGEo
KQogewogICAgIGlmICghY2FuV3JpdGVEYXRhKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3
ICsxMjMsNyBAQCB2b2lkIENsaXBib2FyZDo6Y2xlYXJEYXRhKCkKICAgICBtX3Bhc3RlYm9hcmQt
PmNsZWFyKCk7CiB9CiAKLVN0cmluZyBDbGlwYm9hcmQ6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0
eXBlKSBjb25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5
cGUpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW5SZWFkRGF0YSgpKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CkBAIC0xMzYsNyArMTM2LDcgQEAgU3RyaW5nIENsaXBib2FyZDo6Z2V0RGF0YShjb25z
dCBTdHJpbmcmIAogICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnJlYWRTdHJpbmcodHlwZSk7CiB9
CiAKLWJvb2wgQ2xpcGJvYXJkOjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBkYXRhKQorYm9vbCBEYXRhVHJhbnNmZXI6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIGJvb2wgQ2xpcGJvYXJkOjpzZXRE
YXRhKGNvbnN0IFN0cmluZyYgdHkKICAgICByZXR1cm4gbV9wYXN0ZWJvYXJkLT53cml0ZVN0cmlu
Zyh0eXBlLCBkYXRhKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gQ2xpcGJvYXJkOjp0eXBlcygpIGNv
bnN0CitWZWN0b3I8U3RyaW5nPiBEYXRhVHJhbnNmZXI6OnR5cGVzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhblJlYWRUeXBlcygpKQogICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKQEAg
LTE1NywxMSArMTU3LDExIEBAIFZlY3RvcjxTdHJpbmc+IENsaXBib2FyZDo6dHlwZXMoKSBjb25z
dAogICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzKCk7CiB9CiAKLVBhc3NSZWZQdHI8Rmls
ZUxpc3Q+IENsaXBib2FyZDo6ZmlsZXMoKSBjb25zdAorUGFzc1JlZlB0cjxGaWxlTGlzdD4gRGF0
YVRyYW5zZmVyOjpmaWxlcygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGNhY2hl
IHRoZSBjb21wdXRlZCBmaWxlIGxpc3QgaWYgaXQgd2FzIG5lY2Vzc2FyeSBhbmQgaGVscGZ1bC4K
ICAgICAvLyBDdXJyZW50bHksIGVhY2ggYWNjZXNzIGdldHMgYSBuZXcgY29weSwgYW5kIHRodXMg
c2V0RGF0YSgpIG1vZGlmaWNhdGlvbnMgdG8gdGhlCi0gICAgLy8gY2xpcGJvYXJkIGFyZSBub3Qg
cmVmbGVjdGVkIGluIGFueSBGaWxlTGlzdCBvYmplY3RzIHRoZSBwYWdlIGhhcyBhY2Nlc3NlZCBh
bmQgc3RvcmVkLgorICAgIC8vIGRhdGFUcmFuc2ZlciBhcmUgbm90IHJlZmxlY3RlZCBpbiBhbnkg
RmlsZUxpc3Qgb2JqZWN0cyB0aGUgcGFnZSBoYXMgYWNjZXNzZWQgYW5kIHN0b3JlZC4KIAogICAg
IGlmICghY2FuUmVhZERhdGEoKSkKICAgICAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoKTsK
QEAgLTE4MCw1MCArMTgwLDUwIEBAIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZDo6Zmls
ZXMoKSAKIAogI2lmICFFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1TdHJpbmcgQ2xpcGJvYXJkOjpk
cm9wRWZmZWN0KCkgY29uc3QKK1N0cmluZyBEYXRhVHJhbnNmZXI6OmRyb3BFZmZlY3QoKSBjb25z
dAogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vbmUiKTsKIH0KIAotdm9pZCBDbGlwYm9h
cmQ6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJikKK3ZvaWQgRGF0YVRyYW5zZmVyOjpzZXRE
cm9wRWZmZWN0KGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKLVN0cmluZyBDbGlwYm9hcmQ6OmVmZmVj
dEFsbG93ZWQoKSBjb25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6ZWZmZWN0QWxsb3dlZCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5pbml0aWFsaXplZCIpOwogfQogCi12
b2lkIENsaXBib2FyZDo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmKQordm9pZCBEYXRh
VHJhbnNmZXI6OnNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJikKIHsKIH0KIAotdm9pZCBD
bGlwYm9hcmQ6OnNldERyYWdJbWFnZShFbGVtZW50KiwgaW50LCBpbnQpCit2b2lkIERhdGFUcmFu
c2Zlcjo6c2V0RHJhZ0ltYWdlKEVsZW1lbnQqLCBpbnQsIGludCkKIHsKIH0KIAogI2Vsc2UKIAot
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQor
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkKENsaXBib2FyZFdyaXRh
YmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpLCBEcmFnQW5kRHJvcCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeTo6V3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCksIERyYWdB
bmREcm9wKSk7CiB9CiAKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3ksIGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZChw
b2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgRHJhZ0Fu
ZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5zRmlsZXMoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
ZHJhZ0RhdGEpLCBEcmFnQW5kRHJvcCwgZHJhZ0RhdGEuY29udGFpbnNGaWxlcygpKSk7CiB9CiAK
LWJvb2wgQ2xpcGJvYXJkOjpjYW5TZXREcmFnSW1hZ2UoKSBjb25zdAorYm9vbCBEYXRhVHJhbnNm
ZXI6OmNhblNldERyYWdJbWFnZSgpIGNvbnN0CiB7CiAgICAgLy8gTm90ZSB0aGF0IHRoZSBzcGVj
IGRvZXNuJ3QgYWN0dWFsbHkgYWxsb3cgZHJhZyBpbWFnZSBtb2RpZmljYXRpb24gb3V0c2lkZSB0
aGUgZHJhZ3N0YXJ0CiAgICAgLy8gZXZlbnQuIFRoaXMgY2FwYWJpbGl0eSBpcyBtYWludGFpbmVk
IGZvciBiYWNrd2FyZHMgY29tcGF0aWJsaXR5IGZvciBwb3J0cyB0aGF0IGhhdmUKICAgICAvLyBz
dXBwb3J0ZWQgdGhpcyBpbiB0aGUgcGFzdC4gT24gbWFueSBwb3J0cywgYXR0ZW1wdGluZyB0byBz
ZXQgYSBkcmFnIGltYWdlIG91dHNpZGUgdGhlCiAgICAgLy8gZHJhZ3N0YXJ0IG9wZXJhdGlvbiBp
cyBhIG5vLW9wIGFueXdheS4KLSAgICByZXR1cm4gbV9mb3JEcmFnICYmIChtX3BvbGljeSA9PSBD
bGlwYm9hcmRJbWFnZVdyaXRhYmxlIHx8IG1fcG9saWN5ID09IENsaXBib2FyZFdyaXRhYmxlKTsK
KyAgICByZXR1cm4gbV9mb3JEcmFnICYmIChtX3BvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3k6OkltYWdlV3JpdGFibGUgfHwgbV9wb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9s
aWN5OjpXcml0YWJsZSk7CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpzZXREcmFnSW1hZ2UoRWxlbWVu
dCogZWxlbWVudCwgaW50IHgsIGludCB5KQordm9pZCBEYXRhVHJhbnNmZXI6OnNldERyYWdJbWFn
ZShFbGVtZW50KiBlbGVtZW50LCBpbnQgeCwgaW50IHkpCiB7CiAgICAgaWYgKCFjYW5TZXREcmFn
SW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgQ2xpcGJv
YXJkOjpzZXREcmFnSW1hZ2UoRWxlbWVudCogZWwKICAgICB1cGRhdGVEcmFnSW1hZ2UoKTsKIH0K
IAotdm9pZCBDbGlwYm9hcmQ6OnVwZGF0ZURyYWdJbWFnZSgpCit2b2lkIERhdGFUcmFuc2Zlcjo6
dXBkYXRlRHJhZ0ltYWdlKCkKIHsKICAgICAvLyBEb24ndCBhbGxvdyBzZXR0aW5nIHRoZSBpbWFn
ZSBpZiB3ZSBoYXZlbid0IHN0YXJ0ZWQgZHJhZ2dpbmcgeWV0OyB3ZSdsbCByZWx5IG9uIHRoZSBk
cmFnZ2luZyBjb2RlCiAgICAgLy8gdG8gaW5zdGFsbCB0aGlzIGRyYWcgaW1hZ2UgYXMgcGFydCBv
ZiBnZXR0aW5nIHRoZSBkcmFnIGtpY2tlZCBvZmYuCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBD
bGlwYm9hcmQ6OnVwZGF0ZURyYWdJbWFnZSgpCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAKLURy
YWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24p
IGNvbnN0CitEcmFnSW1hZ2VSZWYgRGF0YVRyYW5zZmVyOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9p
bnQmIGxvY2F0aW9uKSBjb25zdAogewogICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jYXRpb247CiAK
QEAgLTI4NSw4ICsyODUsOCBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1h
Z2UoCiAKICNlbmRpZgogCi1EcmFnSW1hZ2VMb2FkZXI6OkRyYWdJbWFnZUxvYWRlcihDbGlwYm9h
cmQqIGNsaXBib2FyZCkKLSAgICA6IG1fY2xpcGJvYXJkKGNsaXBib2FyZCkKK0RyYWdJbWFnZUxv
YWRlcjo6RHJhZ0ltYWdlTG9hZGVyKERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorICAgIDog
bV9kYXRhVHJhbnNmZXIoZGF0YVRyYW5zZmVyKQogewogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAg
dm9pZCBEcmFnSW1hZ2VMb2FkZXI6OnN0b3BMb2FkaW5nKENhY2hlZAogCiB2b2lkIERyYWdJbWFn
ZUxvYWRlcjo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCopCiB7Ci0g
ICAgbV9jbGlwYm9hcmQtPnVwZGF0ZURyYWdJbWFnZSgpOworICAgIG1fZGF0YVRyYW5zZmVyLT51
cGRhdGVEcmFnSW1hZ2UoKTsKIH0KIAogc3RhdGljIERyYWdPcGVyYXRpb24gZHJhZ09wRnJvbUlF
T3AoY29uc3QgU3RyaW5nJiBvcGVyYXRpb24pCkBAIC0zNTAsMzggKzM1MCwzOCBAQCBzdGF0aWMg
Y29uc3QgY2hhciogSUVPcEZyb21EcmFnT3AoRHJhZ09wCiAgICAgcmV0dXJuICJub25lIjsKIH0K
IAotRHJhZ09wZXJhdGlvbiBDbGlwYm9hcmQ6OnNvdXJjZU9wZXJhdGlvbigpIGNvbnN0CitEcmFn
T3BlcmF0aW9uIERhdGFUcmFuc2Zlcjo6c291cmNlT3BlcmF0aW9uKCkgY29uc3QKIHsKICAgICBE
cmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGRyYWdPcEZyb21JRU9wKG1fZWZmZWN0QWxsb3dlZCk7
CiAgICAgQVNTRVJUKG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CiAgICAgcmV0
dXJuIG9wZXJhdGlvbjsKIH0KIAotRHJhZ09wZXJhdGlvbiBDbGlwYm9hcmQ6OmRlc3RpbmF0aW9u
T3BlcmF0aW9uKCkgY29uc3QKK0RyYWdPcGVyYXRpb24gRGF0YVRyYW5zZmVyOjpkZXN0aW5hdGlv
bk9wZXJhdGlvbigpIGNvbnN0CiB7CiAgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBkcmFn
T3BGcm9tSUVPcChtX2Ryb3BFZmZlY3QpOwogICAgIEFTU0VSVChvcGVyYXRpb24gPT0gRHJhZ09w
ZXJhdGlvbkNvcHkgfHwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Ob25lIHx8IG9wZXJhdGlv
biA9PSBEcmFnT3BlcmF0aW9uTGluayB8fCBvcGVyYXRpb24gPT0gKERyYWdPcGVyYXRpb24pKERy
YWdPcGVyYXRpb25HZW5lcmljIHwgRHJhZ09wZXJhdGlvbk1vdmUpIHx8IG9wZXJhdGlvbiA9PSBE
cmFnT3BlcmF0aW9uRXZlcnkpOwogICAgIHJldHVybiBvcGVyYXRpb247CiB9CiAKLXZvaWQgQ2xp
cGJvYXJkOjpzZXRTb3VyY2VPcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit2b2lk
IERhdGFUcmFuc2Zlcjo6c2V0U291cmNlT3BlcmF0aW9uKERyYWdPcGVyYXRpb24gb3BlcmF0aW9u
KQogewogICAgIEFTU0VSVF9BUkcob3BlcmF0aW9uLCBvcGVyYXRpb24gIT0gRHJhZ09wZXJhdGlv
blByaXZhdGUpOwogICAgIG1fZWZmZWN0QWxsb3dlZCA9IElFT3BGcm9tRHJhZ09wKG9wZXJhdGlv
bik7CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbihEcmFnT3Bl
cmF0aW9uIG9wZXJhdGlvbikKK3ZvaWQgRGF0YVRyYW5zZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJh
dGlvbihEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKICAgICBBU1NFUlRfQVJHKG9wZXJhdGlv
biwgb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb25Db3B5IHx8IG9wZXJhdGlvbiA9PSBEcmFnT3Bl
cmF0aW9uTm9uZSB8fCBvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkxpbmsgfHwgb3BlcmF0aW9u
ID09IERyYWdPcGVyYXRpb25HZW5lcmljIHx8IG9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTW92
ZSB8fCBvcGVyYXRpb24gPT0gKERyYWdPcGVyYXRpb24pKERyYWdPcGVyYXRpb25HZW5lcmljIHwg
RHJhZ09wZXJhdGlvbk1vdmUpKTsKICAgICBtX2Ryb3BFZmZlY3QgPSBJRU9wRnJvbURyYWdPcChv
cGVyYXRpb24pOwogfQogCi1TdHJpbmcgQ2xpcGJvYXJkOjpkcm9wRWZmZWN0KCkgY29uc3QKK1N0
cmluZyBEYXRhVHJhbnNmZXI6OmRyb3BFZmZlY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2Ry
b3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6ZWQiID8gQVNDSUlMaXRlcmFsKCJub25lIikgOiBtX2Ry
b3BFZmZlY3Q7CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpzZXREcm9wRWZmZWN0KGNvbnN0IFN0cmlu
ZyYgZWZmZWN0KQordm9pZCBEYXRhVHJhbnNmZXI6OnNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5n
JiBlZmZlY3QpCiB7CiAgICAgaWYgKCFtX2ZvckRyYWcpCiAgICAgICAgIHJldHVybjsKQEAgLTM5
NywxMiArMzk3LDEyIEBAIHZvaWQgQ2xpcGJvYXJkOjpzZXREcm9wRWZmZWN0KGNvbnN0IFN0cmkK
ICAgICBtX2Ryb3BFZmZlY3QgPSBlZmZlY3Q7CiB9CiAKLVN0cmluZyBDbGlwYm9hcmQ6OmVmZmVj
dEFsbG93ZWQoKSBjb25zdAorU3RyaW5nIERhdGFUcmFuc2Zlcjo6ZWZmZWN0QWxsb3dlZCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fZWZmZWN0QWxsb3dlZDsKIH0KIAotdm9pZCBDbGlwYm9hcmQ6
OnNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJiBlZmZlY3QpCit2b2lkIERhdGFUcmFuc2Zl
cjo6c2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcmIGVmZmVjdCkKIHsKICAgICBpZiAoIW1f
Zm9yRHJhZykKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
aAkocmV2aXNpb24gMTY2ODczKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmg6
MTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtl
bGx5IChwbWtAcG9zdC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgVG9iaWFzIEFudG9uIChh
bnRvbkBzdHVkLmZiaS5maC1kYXJtc3RhZHQuZGUpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2lmbmRlZiBDbGlwYm9hcmRfaAorI2RlZmluZSBDbGlwYm9hcmRfaAorCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaCIKKyNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5o
IgorI2luY2x1ZGUgIkludFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisg
ICAgY2xhc3MgQ2FjaGVkSW1hZ2U7CisgICAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxpc3Q7Cisg
ICAgY2xhc3MgRHJhZ0RhdGE7CisgICAgY2xhc3MgRHJhZ0ltYWdlTG9hZGVyOworICAgIGNsYXNz
IEVsZW1lbnQ7CisgICAgY2xhc3MgRmlsZUxpc3Q7CisgICAgY2xhc3MgUGFzdGVib2FyZDsKKwor
ICAgIGNsYXNzIENsaXBib2FyZCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaXBib2FyZD4geworICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5KTsKKworICAgICAgICB+Q2xpcGJvYXJk
KCk7CisKKyAgICAgICAgU3RyaW5nIGRyb3BFZmZlY3QoKSBjb25zdDsKKyAgICAgICAgdm9pZCBz
ZXREcm9wRWZmZWN0KGNvbnN0IFN0cmluZyYpOworCisgICAgICAgIFN0cmluZyBlZmZlY3RBbGxv
d2VkKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0RWZmZWN0QWxsb3dlZChjb25zdCBTdHJpbmcm
KTsKKworICAgICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlcygpIGNvbnN0OworCisgICAgICAgIFBh
c3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBjbGVhckRh
dGEoY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICAgICAgdm9pZCBjbGVhckRhdGEoKTsKKworICAg
ICAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0OworCisgICAgICAg
IGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CisK
KyAgICAgICAgdm9pZCBzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCB4LCBpbnQgeSk7CisKKyNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKyAgICAgICAgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtTGlzdD4gaXRlbXMoKSA9IDA7CisjZW5kaWYKKworICAgICAgICB2b2lkIHNldEFj
Y2Vzc1BvbGljeShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworICAgICAgICBib29sIGNhblJlYWRU
eXBlcygpIGNvbnN0OworICAgICAgICBib29sIGNhblJlYWREYXRhKCkgY29uc3Q7CisgICAgICAg
IGJvb2wgY2FuV3JpdGVEYXRhKCkgY29uc3Q7CisKKyAgICAgICAgUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCgpIHsgcmV0dXJuICptX3Bhc3RlYm9hcmQ7IH0KKworI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JE
cmFnQW5kRHJvcChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIGNvbnN0IERyYWdEYXRhJik7CisKKyAg
ICAgICAgYm9vbCBkcm9wRWZmZWN0SXNVbmluaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9k
cm9wRWZmZWN0ID09ICJ1bmluaXRpYWxpemVkIjsgfQorCisgICAgICAgIERyYWdPcGVyYXRpb24g
c291cmNlT3BlcmF0aW9uKCkgY29uc3Q7CisgICAgICAgIERyYWdPcGVyYXRpb24gZGVzdGluYXRp
b25PcGVyYXRpb24oKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRTb3VyY2VPcGVyYXRpb24oRHJh
Z09wZXJhdGlvbik7CisgICAgICAgIHZvaWQgc2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09w
ZXJhdGlvbik7CisKKyAgICAgICAgdm9pZCBzZXREcmFnSGFzU3RhcnRlZCgpIHsgbV9zaG91bGRV
cGRhdGVEcmFnSW1hZ2UgPSB0cnVlOyB9CisgICAgICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2UoSW50UG9pbnQmIGRyYWdMb2NhdGlvbikgY29uc3Q7CisgICAgICAgIHZvaWQgdXBkYXRl
RHJhZ0ltYWdlKCk7CisjZW5kaWYKKworICAgIHByaXZhdGU6CisgICAgICAgIGVudW0gQ2xpcGJv
YXJkVHlwZSB7IENvcHlBbmRQYXN0ZSwgRHJhZ0FuZERyb3AgfTsKKyAgICAgICAgQ2xpcGJvYXJk
KENsaXBib2FyZEFjY2Vzc1BvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgQ2xpcGJvYXJk
VHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBmb3JGaWxlRHJhZyA9IGZhbHNlKTsKKworI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisgICAgICAgIGJvb2wgY2FuU2V0RHJhZ0ltYWdlKCkgY29uc3Q7
CisjZW5kaWYKKworICAgICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgbV9wb2xpY3k7CisgICAg
ICAgIE93blB0cjxQYXN0ZWJvYXJkPiBtX3Bhc3RlYm9hcmQ7CisKKyNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorICAgICAgICBib29sIG1fZm9yRHJhZzsKKyAgICAgICAgYm9vbCBtX2ZvckZpbGVE
cmFnOworICAgICAgICBTdHJpbmcgbV9kcm9wRWZmZWN0OworICAgICAgICBTdHJpbmcgbV9lZmZl
Y3RBbGxvd2VkOworICAgICAgICBib29sIG1fc2hvdWxkVXBkYXRlRHJhZ0ltYWdlOworICAgICAg
ICBJbnRQb2ludCBtX2RyYWdMb2NhdGlvbjsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkSW1hZ2U+IG1fZHJhZ0ltYWdlOworICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9kcmFn
SW1hZ2VFbGVtZW50OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhZ0ltYWdlTG9hZGVyPiBt
X2RyYWdJbWFnZUxvYWRlcjsKKyNlbmRpZgorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIENsaXBib2FyZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ci5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDExICsyMSwxMSBAQAogICoKICAqLwogCi0jaWZuZGVmIENs
aXBib2FyZF9oCi0jZGVmaW5lIENsaXBib2FyZF9oCisjaWZuZGVmIERhdGFUcmFuc2Zlcl9oCisj
ZGVmaW5lIERhdGFUcmFuc2Zlcl9oCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgotI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgorI2luY2x1ZGUgIkRhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAi
RHJhZ0ltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKQEAgLTQyLDExICs0MiwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRmlsZUxpc3Q7CiAgICAgY2xhc3MgUGFzdGVi
b2FyZDsKIAotICAgIGNsYXNzIENsaXBib2FyZCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaXBib2Fy
ZD4geworICAgIGNsYXNzIERhdGFUcmFuc2ZlciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFu
c2Zlcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5KTsKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5KTsKIAotICAgICAgICB+Q2xpcGJvYXJkKCk7CisgICAgICAg
IH5EYXRhVHJhbnNmZXIoKTsKIAogICAgICAgICBTdHJpbmcgZHJvcEVmZmVjdCgpIGNvbnN0Owog
ICAgICAgICB2b2lkIHNldERyb3BFZmZlY3QoY29uc3QgU3RyaW5nJik7CkBAIC03MSw3ICs3MSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJ
dGVtTGlzdD4gaXRlbXMoKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldEFjY2Vzc1Bv
bGljeShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworICAgICAgICB2b2lkIHNldEFjY2Vzc1BvbGlj
eShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kpOwogICAgICAgICBib29sIGNhblJlYWRUeXBlcygp
IGNvbnN0OwogICAgICAgICBib29sIGNhblJlYWREYXRhKCkgY29uc3Q7CiAgICAgICAgIGJvb2wg
Y2FuV3JpdGVEYXRhKCkgY29uc3Q7CkBAIC03OSw4ICs3OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgUGFzdGVib2FyZCYgcGFzdGVib2FyZCgpIHsgcmV0dXJuICptX3Bhc3RlYm9h
cmQ7IH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENsaXBib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3ksIGNvbnN0IERyYWdEYXRhJik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3ksIGNvbnN0IERyYWdEYXRhJik7CiAKICAgICAgICAgYm9vbCBkcm9wRWZmZWN0SXNVbmlu
aXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9kcm9wRWZmZWN0ID09ICJ1bmluaXRpYWxpemVk
IjsgfQogCkBAIC05NSwxNCArOTUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAK
ICAgICBwcml2YXRlOgotICAgICAgICBlbnVtIENsaXBib2FyZFR5cGUgeyBDb3B5QW5kUGFzdGUs
IERyYWdBbmREcm9wIH07Ci0gICAgICAgIENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ks
IFBhc3NPd25QdHI8UGFzdGVib2FyZD4sIENsaXBib2FyZFR5cGUgPSBDb3B5QW5kUGFzdGUsIGJv
b2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7CisgICAgICAgIGVudW0gVHlwZSB7IENvcHlBbmRQYXN0
ZSwgRHJhZ0FuZERyb3AgfTsKKyAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vz
c1BvbGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9v
bCBmb3JGaWxlRHJhZyA9IGZhbHNlKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
ICAgIGJvb2wgY2FuU2V0RHJhZ0ltYWdlKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgICAgICBDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kgbV9wb2xpY3k7CisgICAgICAgIERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSBtX3BvbGljeTsKICAgICAgICAgT3duUHRyPFBhc3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsK
IAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0xMjAsNCArMTIwLDQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBDbGlwYm9h
cmRfaAorI2VuZGlmIC8vIERhdGFUcmFuc2Zlcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRy
YW5zZmVyLmlkbAkocmV2aXNpb24gMTY2ODczKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkLmlkbDoxNjY4NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlv
biwKK10gaW50ZXJmYWNlIENsaXBib2FyZCB7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyBkcm9w
RWZmZWN0OworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKKworICAgIFtD
dXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheSB0eXBlczsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7CisKKyAgICB2b2lkIGNsZWFyRGF0YShvcHRpb25h
bCBET01TdHJpbmcgdHlwZSk7CisgICAgRE9NU3RyaW5nIGdldERhdGEoRE9NU3RyaW5nIHR5cGUp
OworICAgIGJvb2xlYW4gc2V0RGF0YShET01TdHJpbmcgdHlwZSwgRE9NU3RyaW5nIGRhdGEpOwor
ICAgIHZvaWQgc2V0RHJhZ0ltYWdlKEVsZW1lbnQgaW1hZ2UsIGxvbmcgeCwgbG9uZyB5KTsKKwor
ICAgIFtDb25kaXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TXSByZWFkb25seSBhdHRyaWJ1dGUg
RGF0YVRyYW5zZmVySXRlbUxpc3QgaXRlbXM7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlci5pZGwJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBTa2lw
VlRhYmxlVmFsaWRhdGlvbiwKLV0gaW50ZXJmYWNlIENsaXBib2FyZCB7CitdIGludGVyZmFjZSBE
YXRhVHJhbnNmZXIgewogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVjdDsKICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGVmZmVjdEFsbG93ZWQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LmgJKHJldmlzaW9uIDE2Njg3MykJKGZy
b20gU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEFjY2Vzc1BvbGljeS5oOjE2Njg3MykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworIAorI2lmbmRlZiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3lfaAorI2RlZmluZSBD
bGlwYm9hcmRBY2Nlc3NQb2xpY3lfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gQ2xp
cGJvYXJkQWNjZXNzUG9saWN5IHsKKyAgICBDbGlwYm9hcmROdW1iLCBDbGlwYm9hcmRJbWFnZVdy
aXRhYmxlLCBDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkVHlwZXNSZWFkYWJsZSwgQ2xpcGJv
YXJkUmVhZGFibGUKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kuaAkod29ya2luZyBjb3B5
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiwxNCArMjIsMTQgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KLSAKLSNpZm5kZWYgQ2xpcGJvYXJkQWNjZXNzUG9saWN5X2gKLSNkZWZpbmUg
Q2xpcGJvYXJkQWNjZXNzUG9saWN5X2gKKworI2lmbmRlZiBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3lfaAorI2RlZmluZSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3lfaAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWVudW0gQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHsKLSAgICBDbGlwYm9hcmROdW1i
LCBDbGlwYm9hcmRJbWFnZVdyaXRhYmxlLCBDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkVHlw
ZXNSZWFkYWJsZSwgQ2xpcGJvYXJkUmVhZGFibGUKK2VudW0gY2xhc3MgRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5IHsKKyAgICBOdW1iLCBJbWFnZVdyaXRhYmxlLCBXcml0YWJsZSwgVHlwZXNSZWFk
YWJsZSwgUmVhZGFibGUKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5
LDcgKzM5LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDbGlwYm9hcmQ7CiBj
bGFzcyBGaWxlOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyTWFjLm1tCShyZXZpc2lvbiAxNjY4NzMpCShmcm9tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9DbGlwYm9hcmRNYWMubW06MTY2ODczKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4LCAyMDEwLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ2xpcGJvYXJkLmgi
CisKKyNpbXBvcnQgIkNhY2hlZEltYWdlLmgiCisjaW1wb3J0ICJFbGVtZW50LmgiCisjaW1wb3J0
ICJEcmFnSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhNRTogTmVlZCB0
byByZWZhY3RvciBhbmQgZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoZSBmbGlwcGluZyBpbiBh
IG1vcmUgc2Vuc2libGUgd2F5IHNvIHdlIGNhbgorLy8gdXNlIHRoZSBkZWZhdWx0IENsaXBib2Fy
ZDo6ZHJhZ0ltYWdlIGZyb20gQ2xpcGJvYXJkLmNwcC4gTm90ZSBhbHNvIHRoYXQgdGhpcyBoYW5k
bGVzIGNhc2VzIHRoYXQKKy8vIENsaXBib2FyZDo6ZHJhZ0ltYWdlIGluIENsaXBib2FyZC5jcHAg
ZG9lcyBub3QgaGFuZGxlIGNvcnJlY3RseSwgc28gbXVzdCByZXNvbHZlIHRoYXQgYXMgd2VsbC4K
K0RyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRp
b24pIGNvbnN0Cit7CisgICAgRHJhZ0ltYWdlUmVmIHJlc3VsdCA9IG5pbDsKKyAgICBpZiAobV9k
cmFnSW1hZ2VFbGVtZW50KSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RyYWdJbWFn
ZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICAgICAgSW50UmVjdCBpbWFn
ZVJlY3Q7CisgICAgICAgICAgICBJbnRSZWN0IGVsZW1lbnRSZWN0OworICAgICAgICAgICAgcmVz
dWx0ID0gY3JlYXRlRHJhZ0ltYWdlRm9ySW1hZ2UoKmZyYW1lLCAqbV9kcmFnSW1hZ2VFbGVtZW50
LCBpbWFnZVJlY3QsIGVsZW1lbnRSZWN0KTsKKyAgICAgICAgICAgIC8vIENsaWVudCBzcGVjaWZp
ZXMgcG9pbnQgcmVsYXRpdmUgdG8gZWxlbWVudCwgbm90IHRoZSB3aG9sZSBpbWFnZSwgd2hpY2gg
bWF5IGluY2x1ZGUgY2hpbGQKKyAgICAgICAgICAgIC8vIGxheWVycyBzcHJlYWQgb3V0IGFsbCBv
dmVyIHRoZSBwbGFjZS4KKyAgICAgICAgICAgIGxvY2F0aW9uLnNldFgoZWxlbWVudFJlY3QueCgp
IC0gaW1hZ2VSZWN0LngoKSArIG1fZHJhZ0xvY2F0aW9uLngoKSk7CisgICAgICAgICAgICBsb2Nh
dGlvbi5zZXRZKGltYWdlUmVjdC5oZWlnaHQoKSAtIChlbGVtZW50UmVjdC55KCkgLSBpbWFnZVJl
Y3QueSgpICsgbV9kcmFnTG9jYXRpb24ueSgpKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KG1fZHJhZ0ltYWdlKSB7CisgICAgICAgIHJlc3VsdCA9IG1fZHJhZ0ltYWdlLT5pbWFnZSgpLT5n
ZXROU0ltYWdlKCk7CisgICAgICAgIAorICAgICAgICBsb2NhdGlvbiA9IG1fZHJhZ0xvY2F0aW9u
OworICAgICAgICBsb2NhdGlvbi5zZXRZKFtyZXN1bHQgc2l6ZV0uaGVpZ2h0IC0gbG9jYXRpb24u
eSgpKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBA
CiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJDbGlwYm9hcmQuaCIKKyNpbXBv
cnQgIkRhdGFUcmFuc2Zlci5oIgogCiAjaW1wb3J0ICJDYWNoZWRJbWFnZS5oIgogI2ltcG9ydCAi
RWxlbWVudC5oIgpAQCAtMzMsOSArMzMsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBG
SVhNRTogTmVlZCB0byByZWZhY3RvciBhbmQgZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoZSBm
bGlwcGluZyBpbiBhIG1vcmUgc2Vuc2libGUgd2F5IHNvIHdlIGNhbgotLy8gdXNlIHRoZSBkZWZh
dWx0IENsaXBib2FyZDo6ZHJhZ0ltYWdlIGZyb20gQ2xpcGJvYXJkLmNwcC4gTm90ZSBhbHNvIHRo
YXQgdGhpcyBoYW5kbGVzIGNhc2VzIHRoYXQKLS8vIENsaXBib2FyZDo6ZHJhZ0ltYWdlIGluIENs
aXBib2FyZC5jcHAgZG9lcyBub3QgaGFuZGxlIGNvcnJlY3RseSwgc28gbXVzdCByZXNvbHZlIHRo
YXQgYXMgd2VsbC4KLURyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQ
b2ludCYgbG9jYXRpb24pIGNvbnN0CisvLyB1c2UgdGhlIGRlZmF1bHQgRGF0YVRyYW5zZmVyOjpk
cmFnSW1hZ2UgZnJvbSBEYXRhVHJhbnNmZXIuY3BwLiBOb3RlIGFsc28gdGhhdCB0aGlzIGhhbmRs
ZXMgY2FzZXMgdGhhdAorLy8gRGF0YVRyYW5zZmVyOjpkcmFnSW1hZ2UgaW4gRGF0YVRyYW5zZmVy
LmNwcCBkb2VzIG5vdCBoYW5kbGUgY29ycmVjdGx5LCBzbyBtdXN0IHJlc29sdmUgdGhhdCBhcyB3
ZWxsLgorRHJhZ0ltYWdlUmVmIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JiBsb2NhdGlvbikgY29uc3QKIHsKICAgICBEcmFnSW1hZ2VSZWYgcmVzdWx0ID0gbmlsOwogICAg
IGlmIChtX2RyYWdJbWFnZUVsZW1lbnQpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCShyZXZpc2lvbiAx
NjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaXBib2FyZDsK
K2NsYXNzIERhdGFUcmFuc2ZlcjsKIGNsYXNzIEV2ZW50VGFyZ2V0OwogY2xhc3MgSFRNTElGcmFt
ZUVsZW1lbnQ7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBsZWdhY3lS
ZXR1cm5WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuICFkZWZhdWx0UHJldmVudGVkKCk7IH0KICAgICB2
b2lkIHNldExlZ2FjeVJldHVyblZhbHVlKGJvb2wgcmV0dXJuVmFsdWUpIHsgc2V0RGVmYXVsdFBy
ZXZlbnRlZCghcmV0dXJuVmFsdWUpOyB9CiAKLSAgICBDbGlwYm9hcmQqIGNsaXBib2FyZERhdGEo
KSBjb25zdCB7IHJldHVybiBpc0NsaXBib2FyZEV2ZW50KCkgPyBjbGlwYm9hcmQoKSA6IDA7IH0K
KyAgICBEYXRhVHJhbnNmZXIqIGNsaXBib2FyZERhdGEoKSBjb25zdCB7IHJldHVybiBpc0NsaXBi
b2FyZEV2ZW50KCkgPyBpbnRlcm5hbERhdGFUcmFuc2ZlcigpIDogMDsgfQogCiAgICAgdmlydHVh
bCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0OwogCkBAIC0xNjksNyArMTY5
LDcgQEAgcHVibGljOgogICAgIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQoKSBjb25zdCB7IHJldHVy
biBtX3VuZGVybHlpbmdFdmVudC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VW5kZXJseWluZ0V2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+KTsKIAotICAgIHZpcnR1YWwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQo
KSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBEYXRhVHJhbnNmZXIqIGludGVybmFs
RGF0YVRyYW5zZmVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBpc0JlaW5nRGlz
cGF0Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIGV2ZW50UGhhc2UoKTsgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudC5pZGwJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAKICAgICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgICBjYW5jZWxCdWJibGU7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICBbQ3VzdG9tXSByZWFkb25s
eSBhdHRyaWJ1dGUgQ2xpcGJvYXJkICAgICAgICBjbGlwYm9hcmREYXRhOworICAgIFtDdXN0b21d
IHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhVHJhbnNmZXIgICAgICAgIGNsaXBib2FyZERhdGE7CiAj
ZW5kaWYKIAogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDE2
Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zl
ci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgpAQCAtOTIsMTQgKzkyLDE0IEBAIFBhc3NSZWZQdHI8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXQKICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAog
I2VuZGlmCiAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sCi0gICAgUGFzc1JlZlB0cjxFdmVudFRh
cmdldD4gcmVsYXRlZFRhcmdldCwgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCwgYm9v
bCBpc1NpbXVsYXRlZCkKKyAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0
LCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVk
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUs
IGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgdmlldywKICAgICAgICAgZGV0YWlsLCBzY3JlZW5YLCBz
Y3JlZW5ZLCBwYWdlWCwgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
bW92ZW1lbnRYLCBtb3ZlbWVudFksCiAjZW5kaWYKLSAgICAgICAgY3RybEtleSwgYWx0S2V5LCBz
aGlmdEtleSwgbWV0YUtleSwgYnV0dG9uLCByZWxhdGVkVGFyZ2V0LCBjbGlwYm9hcmQsIGlzU2lt
dWxhdGVkKSk7CisgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1
dHRvbiwgcmVsYXRlZFRhcmdldCwgZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOwogfQogCiBN
b3VzZUV2ZW50OjpNb3VzZUV2ZW50KCkKQEAgLTExNSw3ICsxMTUsNyBAQCBNb3VzZUV2ZW50OjpN
b3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
LAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBidXR0b24sIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgIFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQsIGJvb2wgaXNTaW11bGF0ZWQpCisgICAgICAg
ICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIsIGJv
b2wgaXNTaW11bGF0ZWQpCiAgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1
YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3LCBkZXRhaWwsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtMTI1LDcgKzEyNSw3IEBAIE1vdXNl
RXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW4KICAgICAsIG1fYnV0dG9uKGJ1dHRv
biA9PSAodW5zaWduZWQgc2hvcnQpLTEgPyAwIDogYnV0dG9uKQogICAgICwgbV9idXR0b25Eb3du
KGJ1dHRvbiAhPSAodW5zaWduZWQgc2hvcnQpLTEpCiAgICAgLCBtX3JlbGF0ZWRUYXJnZXQocmVs
YXRlZFRhcmdldCkKLSAgICAsIG1fY2xpcGJvYXJkKGNsaXBib2FyZCkKKyAgICAsIG1fZGF0YVRy
YW5zZmVyKGRhdGFUcmFuc2ZlcikKIHsKIH0KIApAQCAtMTM5LDcgKzEzOSw3IEBAIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW4KICAgICAsIG1fYnV0dG9uKGluaXRpYWxp
emVyLmJ1dHRvbiA9PSAodW5zaWduZWQgc2hvcnQpLTEgPyAwIDogaW5pdGlhbGl6ZXIuYnV0dG9u
KQogICAgICwgbV9idXR0b25Eb3duKGluaXRpYWxpemVyLmJ1dHRvbiAhPSAodW5zaWduZWQgc2hv
cnQpLTEpCiAgICAgLCBtX3JlbGF0ZWRUYXJnZXQoaW5pdGlhbGl6ZXIucmVsYXRlZFRhcmdldCkK
LSAgICAsIG1fY2xpcGJvYXJkKDAgLyogY2xpcGJvYXJkICovKQorICAgICwgbV9kYXRhVHJhbnNm
ZXIoMCAvKiBkYXRhVHJhbnNmZXIgKi8pCiB7CiAgICAgaW5pdENvb3JkaW5hdGVzKEludFBvaW50
KGluaXRpYWxpemVyLmNsaWVudFgsIGluaXRpYWxpemVyLmNsaWVudFkpKTsKIH0KQEAgLTE3MCw3
ICsxNzAsNyBAQCB2b2lkIE1vdXNlRXZlbnQ6OmluaXRNb3VzZUV2ZW50KGNvbnN0IEF0CiAgICAg
aW5pdENvb3JkaW5hdGVzKEludFBvaW50KGNsaWVudFgsIGNsaWVudFkpKTsKIAogICAgIC8vIEZJ
WE1FOiBtX2lzU2ltdWxhdGVkIGlzIG5vdCBzZXQgdG8gZmFsc2UgaGVyZS4KLSAgICAvLyBGSVhN
RTogbV9jbGlwYm9hcmQgaXMgbm90IHNldCB0byAwIGhlcmUuCisgICAgLy8gRklYTUU6IG1fZGF0
YVRyYW5zZmVyIGlzIG5vdCBzZXQgdG8gMCBoZXJlLgogfQogCiBFdmVudEludGVyZmFjZSBNb3Vz
ZUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
TW91c2VFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmgJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBDbGlwYm9hcmQ7CitjbGFzcyBEYXRhVHJhbnNmZXI7CiBjbGFzcyBQbGF0Zm9ybU1v
dXNlRXZlbnQ7CiAKIHN0cnVjdCBNb3VzZUV2ZW50SW5pdCA6IHB1YmxpYyBVSUV2ZW50SW5pdCB7
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1v
dmVtZW50WSwKICNlbmRpZgogICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29s
IHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwKLSAgICAgICAg
UGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCwgUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+LCBib29sIGlzU2ltdWxhdGVkID0gZmFsc2UpOworICAgICAgICBQYXNzUmVmUHRyPEV2ZW50
VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4sIGJvb2wgaXNT
aW11bGF0ZWQgPSBmYWxzZSk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RW
aWV3PiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgaW50IGRldGFpbCwgUGFzc1JlZlB0cjxO
b2RlPiByZWxhdGVkVGFyZ2V0KTsKIApAQCAtODcsMTIgKzg3LDEzIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwg
eyByZXR1cm4gbV9yZWxhdGVkVGFyZ2V0LmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZWxhdGVkVGFy
Z2V0KFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpIHsgbV9yZWxhdGVkVGFy
Z2V0ID0gcmVsYXRlZFRhcmdldDsgfQogCi0gICAgQ2xpcGJvYXJkKiBjbGlwYm9hcmQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2NsaXBib2FyZC5nZXQoKTsgfQogCiAgICAgTm9kZSogdG9F
bGVtZW50KCkgY29uc3Q7CiAgICAgTm9kZSogZnJvbUVsZW1lbnQoKSBjb25zdDsKIAotICAgIENs
aXBib2FyZCogZGF0YVRyYW5zZmVyKCkgY29uc3QgeyByZXR1cm4gaXNEcmFnRXZlbnQoKSA/IG1f
Y2xpcGJvYXJkLmdldCgpIDogMDsgfQorICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgY2Fu
IGJlIG1lcmdlZCBpZiBtX2RhdGFUcmFuc2ZlciBpcyBvbmx5IGluaXRpYWxpemVkIGZvciBkcmFn
IGV2ZW50cy4KKyAgICBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcigpIGNvbnN0IHsgcmV0dXJu
IGlzRHJhZ0V2ZW50KCkgPyBtX2RhdGFUcmFuc2Zlci5nZXQoKSA6IDA7IH0KKyAgICB2aXJ0dWFs
IERhdGFUcmFuc2ZlciogaW50ZXJuYWxEYXRhVHJhbnNmZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2RhdGFUcmFuc2Zlci5nZXQoKTsgfQogCiAgICAgdmlydHVhbCBFdmVudEludGVyZmFj
ZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0xMDksNyArMTEwLDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlm
CiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wg
bWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAotICAgICAgICBQYXNzUmVmUHRyPEV2ZW50
VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBQYXNzUmVmUHRyPENsaXBib2FyZD4sIGJvb2wgaXNTaW11
bGF0ZWQpOworICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBQ
YXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4sIGJvb2wgaXNTaW11bGF0ZWQpOwogCiAgICAgTW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1vdXNlRXZlbnRJbml0Jik7CiAK
QEAgLTExOSw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fYnV0dG9u
OwogICAgIGJvb2wgbV9idXR0b25Eb3duOwogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9yZWxh
dGVkVGFyZ2V0OwotICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fY2xpcGJvYXJkOworICAgIFJlZlB0
cjxEYXRhVHJhbnNmZXI+IG1fZGF0YVRyYW5zZmVyOwogfTsKIAogY2xhc3MgU2ltdWxhdGVkTW91
c2VFdmVudCA6IHB1YmxpYyBNb3VzZUV2ZW50IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZUV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVu
dC5pZGwJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOb2RlICAgICAgICAgICAgIHRvRWxlbWVudDsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDbGlwYm9hcmQgICAgICAgIGRhdGFUcmFuc2ZlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RGF0YVRyYW5zZmVyICAgICBkYXRhVHJhbnNmZXI7CiAjZW5kaWYKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9XaGVlbEV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKIAotI2luY2x1ZGUgIkNs
aXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEwICszMywxMCBAQAogI2luY2x1ZGUg
IkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRp
b25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiRGF0
YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZC5o
IgpAQCAtMzAyLDE3ICszMDIsMTcgQEAgYm9vbCBFZGl0b3I6OmNhbkVkaXRSaWNobHkoKSBjb25z
dAogCiBib29sIEVkaXRvcjo6Y2FuREhUTUxDdXQoKQogewotICAgIHJldHVybiAhbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRGaWVsZCgpICYmICFkaXNwYXRjaENQ
UEV2ZW50KGV2ZW50TmFtZXMoKS5iZWZvcmVjdXRFdmVudCwgQ2xpcGJvYXJkTnVtYik7CisgICAg
cmV0dXJuICFtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzSW5QYXNzd29yZEZpZWxk
KCkgJiYgIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZWN1dEV2ZW50LCBEYXRh
VHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOwogfQogCiBib29sIEVkaXRvcjo6Y2FuREhUTUxD
b3B5KCkKIHsKLSAgICByZXR1cm4gIW1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNJ
blBhc3N3b3JkRmllbGQoKSAmJiAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuYmVmb3Jl
Y29weUV2ZW50LCBDbGlwYm9hcmROdW1iKTsKKyAgICByZXR1cm4gIW1fZnJhbWUuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkuaXNJblBhc3N3b3JkRmllbGQoKSAmJiAhZGlzcGF0Y2hDUFBFdmVudChl
dmVudE5hbWVzKCkuYmVmb3JlY29weUV2ZW50LCBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51
bWIpOwogfQogCiBib29sIEVkaXRvcjo6Y2FuREhUTUxQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuICFk
aXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5iZWZvcmVwYXN0ZUV2ZW50LCBDbGlwYm9hcmRO
dW1iKTsKKyAgICByZXR1cm4gIWRpc3BhdGNoQ1BQRXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZXBh
c3RlRXZlbnQsIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7CiB9CiAKIGJvb2wgRWRp
dG9yOjpjYW5DdXQoKSBjb25zdApAQCAtNzM0LDcgKzczNCw3IEBAIGJvb2wgRWRpdG9yOjp0cnlE
SFRNTENvcHkoKQogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzSW5Q
YXNzd29yZEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhZGlz
cGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuY29weUV2ZW50LCBDbGlwYm9hcmRXcml0YWJsZSk7
CisgICAgcmV0dXJuICFkaXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5jb3B5RXZlbnQsIERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUpOwogfQogCiBib29sIEVkaXRvcjo6dHJ5
REhUTUxDdXQoKQpAQCAtNzQyLDEyICs3NDIsMTIgQEAgYm9vbCBFZGl0b3I6OnRyeURIVE1MQ3V0
KCkKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRG
aWVsZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgcmV0dXJuICFkaXNwYXRj
aENQUEV2ZW50KGV2ZW50TmFtZXMoKS5jdXRFdmVudCwgQ2xpcGJvYXJkV3JpdGFibGUpOworICAg
IHJldHVybiAhZGlzcGF0Y2hDUFBFdmVudChldmVudE5hbWVzKCkuY3V0RXZlbnQsIERhdGFUcmFu
c2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUpOwogfQogCiBib29sIEVkaXRvcjo6dHJ5REhUTUxQ
YXN0ZSgpCiB7Ci0gICAgcmV0dXJuICFkaXNwYXRjaENQUEV2ZW50KGV2ZW50TmFtZXMoKS5wYXN0
ZUV2ZW50LCBDbGlwYm9hcmRSZWFkYWJsZSk7CisgICAgcmV0dXJuICFkaXNwYXRjaENQUEV2ZW50
KGV2ZW50TmFtZXMoKS5wYXN0ZUV2ZW50LCBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OlJlYWRh
YmxlKTsKIH0KIAogYm9vbCBFZGl0b3I6OnNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBSYW5nZSogcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbiBhY3Rpb24pIGNvbnN0CkBAIC05
MTUsMjUgKzkxNSwyNSBAQCB2b2lkIEVkaXRvcjo6ZW5zdXJlTGFzdEVkaXRDb21tYW5kSGFzQ3Vy
CiAKIC8vIFJldHVybnMgd2hldGhlciBjYWxsZXIgc2hvdWxkIGNvbnRpbnVlIHdpdGggInRoZSBk
ZWZhdWx0IHByb2Nlc3NpbmciLCB3aGljaCBpcyB0aGUgc2FtZSBhcyAKIC8vIHRoZSBldmVudCBo
YW5kbGVyIE5PVCBzZXR0aW5nIHRoZSByZXR1cm4gdmFsdWUgdG8gZmFsc2UKLWJvb2wgRWRpdG9y
OjpkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDbGlwYm9h
cmRBY2Nlc3NQb2xpY3kgcG9saWN5KQorYm9vbCBFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xp
Y3kpCiB7CiAgICAgTm9kZSogdGFyZ2V0ID0gZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigp
OwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFJlZlB0cjxD
bGlwYm9hcmQ+IGNsaXBib2FyZCA9IENsaXBib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKHBv
bGljeSk7CisgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5z
ZmVyOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUocG9saWN5KTsKIAotICAgIFJlZlB0cjxFdmVudD4g
ZXZlbnQgPSBDbGlwYm9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgdHJ1ZSwgdHJ1ZSwgY2xp
cGJvYXJkKTsKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gQ2xpcGJvYXJkRXZlbnQ6OmNyZWF0
ZShldmVudFR5cGUsIHRydWUsIHRydWUsIGRhdGFUcmFuc2Zlcik7CiAgICAgdGFyZ2V0LT5kaXNw
YXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib29sIG5vRGVmYXVsdFBy
b2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwotICAgIGlmIChub0RlZmF1bHRQ
cm9jZXNzaW5nICYmIHBvbGljeSA9PSBDbGlwYm9hcmRXcml0YWJsZSkgeworICAgIGlmIChub0Rl
ZmF1bHRQcm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Oldy
aXRhYmxlKSB7CiAgICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiAgICAgICAgIHBhc3RlYm9hcmQtPmNsZWFy
KCk7Ci0gICAgICAgIHBhc3RlYm9hcmQtPndyaXRlUGFzdGVib2FyZChjbGlwYm9hcmQtPnBhc3Rl
Ym9hcmQoKSk7CisgICAgICAgIHBhc3RlYm9hcmQtPndyaXRlUGFzdGVib2FyZChkYXRhVHJhbnNm
ZXItPnBhc3RlYm9hcmQoKSk7CiAgICAgfQogCi0gICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQg
aGVyZSBmb3Igc2VjdXJpdHkKLSAgICBjbGlwYm9hcmQtPnNldEFjY2Vzc1BvbGljeShDbGlwYm9h
cmROdW1iKTsKKyAgICAvLyBpbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0
eQorICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeTo6TnVtYik7CiAgICAgCiAgICAgcmV0dXJuICFub0RlZmF1bHRQcm9jZXNzaW5nOwogfQpA
QCAtMTMxMyw3ICsxMzEzLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9y
QWN0aQogICAgIH0KIAogICAgIGlmIChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKSkKLSAgICAgICAgUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNsaXBi
b2FyZCgpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpID8gUGFzdGVib2FyZDo6Q2FuU21hcnRSZXBs
YWNlIDogUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsKKyAgICAgICAgUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZv
ckRhdGFUcmFuc2ZlcigpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpID8gUGFzdGVib2FyZDo6Q2Fu
U21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsKICAgICBlbHNl
IHsKICAgICAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2VFbGVtZW50ID0gbnVsbHB0cjsKICAg
ICAgICAgaWYgKGFjdGlvbiA9PSBDb3B5QWN0aW9uKQpAQCAtMTMzMCw3ICsxMzMwLDcgQEAgdm9p
ZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aQogICAgICAgICAgICAgd3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
KTsKICNlbHNlCiAgICAgICAgICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZv
cm1zIHRvIG1hdGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMuCi0gICAgICAgICAgICBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVTZWxlY3Rpb24oKnNlbGVjdGlvbiwgY2Fu
U21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFtZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBi
b2FyZCk7CisgICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+
d3JpdGVTZWxlY3Rpb24oKnNlbGVjdGlvbiwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFt
ZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckRhdGFUcmFuc2Zlcik7CiAjZW5kaWYKICAgICAgICAg
fQogICAgIH0KQEAgLTI5NTcsNyArMjk1Nyw3IEBAIFN0cmluZyBFZGl0b3I6OnNlbGVjdGVkVGV4
dCgpIGNvbnN0CiAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dChUZXh0SXRlcmF0b3JEZWZhdWx0QmVo
YXZpb3IpOwogfQogCi1TdHJpbmcgRWRpdG9yOjpzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSBj
b25zdAorU3RyaW5nIEVkaXRvcjo6c2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkgY29uc3QK
IHsKICAgICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLnNlbGVjdGlvbkluY2x1ZGVzQWx0SW1hZ2VU
ZXh0KCkpCiAgICAgICAgIHJldHVybiBzZWxlY3RlZFRleHQoVGV4dEl0ZXJhdG9yRW1pdHNJbWFn
ZUFsdFRleHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiAxNjY5NTcp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw4ICsyNiw4IEBACiAjaWZuZGVmIEVkaXRvcl9oCiAjZGVmaW5lIEVkaXRvcl9oCiAKLSNpbmNs
dWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkRhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVy
bmF0aXZlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJFZGl0QWN0
aW9uLmgiCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjsKIGNsYXNzIEFyY2hpdmVSZXNvdXJjZTsKLWNsYXNzIENs
aXBib2FyZDsKK2NsYXNzIERhdGFUcmFuc2ZlcjsKIGNsYXNzIENvbXBvc2l0ZUVkaXRDb21tYW5k
OwogY2xhc3MgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjsKIGNsYXNzIEVkaXRDb21tYW5kOwpAQCAt
MTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxl
cygpOwogI2VuZGlmCiAgICAgCi0gICAgYm9vbCBkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYsIENsaXBib2FyZEFjY2Vzc1BvbGljeSk7CisgICAgYm9vbCBkaXNwYXRjaENQUEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSk7CiAgICAg
CiAgICAgdm9pZCBhcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyosIEVkaXRBY3Rpb24gPSBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIHZvaWQgYXBwbHlQYXJhZ3JhcGhTdHlsZShTdHlsZVBy
b3BlcnRpZXMqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKQEAgLTM0Nyw3
ICszNDcsNyBAQCBwdWJsaWM6CiAgICAgTm9kZSogZmluZEV2ZW50VGFyZ2V0RnJvbShjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNvbnN0OwogCiAgICAgU3RyaW5nIHNlbGVjdGVk
VGV4dCgpIGNvbnN0OwotICAgIFN0cmluZyBzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSBjb25z
dDsKKyAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAgICAg
Ym9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsKIAogICAgIFBhc3NS
ZWZQdHI8UmFuZ2U+IHJhbmdlT2ZTdHJpbmcoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBGaW5kT3B0
aW9ucyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCShyZXZp
c2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgog
CiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKICNpbmNs
dWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiRE9NUmFuZ2VJbnRlcm5hbC5oIgorI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpAQCAtMzEx
LDcgKzMxMSw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YUluUlQKIAog
U3RyaW5nIEVkaXRvcjo6c3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZFdpdGhJbWFnZUFsdFRl
eHQoKQogewotICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCk7Cisg
ICAgU3RyaW5nIHRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKICAgICB0ZXh0
LnJlcGxhY2Uobm9CcmVha1NwYWNlLCAnICcpOwogICAgIHJldHVybiB0ZXh0OwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQkocmV2aXNpb24gMTY2OTU3KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw5ICsyNyw5IEBACiAjaW1wb3J0ICJFZGl0b3IuaCIKIAogI2ltcG9ydCAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKLSNpbXBvcnQgIkNsaXBib2FyZC5oIgogI2ltcG9ydCAiQ29sb3JN
YWMuaCIKICNpbXBvcnQgIkRPTVJhbmdlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRhdGFUcmFuc2Zl
ci5oIgogI2ltcG9ydCAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2ltcG9ydCAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbXBvcnQgIkVkaXRvci5oIgpAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgRWRpdG9y
Ojp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24KICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsK
ICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpOwogICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5T
RmluZFBib2FyZCk7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSksIE5TU3RyaW5nUGJvYXJkVHlwZSwgTlNG
aW5kUGJvYXJkKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPnNldFN0cmluZ0ZvclR5cGUobV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29k
aW5nKHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpKSwgTlNTdHJpbmdQYm9hcmRUeXBlLCBO
U0ZpbmRQYm9hcmQpOwogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCkBAIC0yNjUsOCArMjY1LDggQEAgdm9p
ZCBFZGl0b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZAogICAgICAgICBwYXN0ZUFzUGxh
aW5UZXh0V2l0aFBhc3RlYm9hcmQocGFzdGVib2FyZCk7CiB9CiAKLS8vIEZJWE1FOiBNYWtlcyBu
byBzZW5zZSB0aGF0IHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCBhbHdheXMgaW5jbHVkZXMgYWx0
IHRleHQsIGJ1dCBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkIGRvZXMgbm90LgotLy8gVGhp
cyB3YXMgbGVmdCBpbiBhIGJhZCBzdGF0ZSB3aGVuIHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCB3
YXMgYWRkZWQuIE5lZWQgdG8gbG9vayBvdmVyIGNsaWVudHMgYW5kIGZpeCB0aGlzLgorLy8gRklY
TUU6IE1ha2VzIG5vIHNlbnNlIHRoYXQgc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyIGFsd2F5
cyBpbmNsdWRlcyBhbHQgdGV4dCwgYnV0IHN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQgZG9l
cyBub3QuCisvLyBUaGlzIHdhcyBsZWZ0IGluIGEgYmFkIHN0YXRlIHdoZW4gc2VsZWN0ZWRUZXh0
Rm9yRGF0YVRyYW5zZmVyIHdhcyBhZGRlZC4gTmVlZCB0byBsb29rIG92ZXIgY2xpZW50cyBhbmQg
Zml4IHRoaXMuCiBTdHJpbmcgRWRpdG9yOjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkK
IHsKICAgICBpZiAoIWNhbkNvcHkoKSkKQEAgLTI4MCw3ICsyODAsNyBAQCBTdHJpbmcgRWRpdG9y
OjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvCiB7CiAgICAgaWYgKCFjYW5Db3B5KCkpCiAgICAg
ICAgIHJldHVybiAiIjsKLSAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4dEZvckNsaXBib2Fy
ZCgpOworICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CiAg
ICAgdGV4dC5yZXBsYWNlKG5vQnJlYWtTcGFjZSwgJyAnKTsKICAgICByZXR1cm4gdGV4dDsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDE2Njk1NykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpA
QCAtNTcyLDEwICs1NzIsMTAgQEAgcHVibGljOgogICAgIEVtcHR5RHJhZ0NsaWVudCgpIHsgfQog
ICAgIHZpcnR1YWwgfkVtcHR5RHJhZ0NsaWVudCgpIHt9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQ
ZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ0Rh
dGEmKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKERyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJikgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihE
cmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYpIG92ZXJyaWRl
IHsgfQogICAgIHZpcnR1YWwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFn
KERyYWdEYXRhJikgb3ZlcnJpZGUgeyByZXR1cm4gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZTsg
fQogICAgIHZpcnR1YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBv
aW50KGNvbnN0IEludFBvaW50Jikgb3ZlcnJpZGUgeyByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbk5v
bmU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50
UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCYsIEZyYW1lJiwgYm9vbCkgb3ZlcnJp
ZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IElu
dFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpIG92
ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIG92
ZXJyaWRlIHsgfQogfTsKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ2xpZW50LmgJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWNsYXNzIENsaXBib2FyZDsKK2NsYXNzIERhdGFUcmFu
c2ZlcjsKIGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwpAQCAt
NDQsMTEgKzQ0LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ0NvbnRyb2xsZXJE
ZXN0cm95ZWQoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnRGVzdGlu
YXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnRGF0YSYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb24s
IGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
UGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9pbnQm
LCBEYXRhVHJhbnNmZXImKSA9IDA7CiAgICAgdmlydHVhbCBEcmFnRGVzdGluYXRpb25BY3Rpb24g
YWN0aW9uTWFza0ZvckRyYWcoRHJhZ0RhdGEmKSA9IDA7CiAgICAgdmlydHVhbCBEcmFnU291cmNl
QWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHJvb3RW
aWV3UG9pbnQpID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFn
ZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgSW50UG9pbnQmIGV2
ZW50UG9zLCBDbGlwYm9hcmQmLCBGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYg
ZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIERhdGFUcmFuc2ZlciYs
IEZyYW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRy
YWdFbmRlZCgpIHsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDgg
QEAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
LSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCkBAIC0xODUsMTEgKzE4NCwxMSBAQCBEcmFn
U2Vzc2lvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoCiB2b2lkIERyYWdDb250cm9sbGVy
OjpkcmFnRXhpdGVkKERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICBpZiAoUmVmUHRyPEZyYW1l
Vmlldz4gdiA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCkpIHsKLSAgICAgICAgQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSA9ICghbV9kb2N1bWVudFVuZGVyTW91c2UgfHwgbV9kb2N1bWVu
dFVuZGVyTW91c2UtPnNlY3VyaXR5T3JpZ2luKCktPmlzTG9jYWwoKSkgPyBDbGlwYm9hcmRSZWFk
YWJsZSA6IENsaXBib2FyZFR5cGVzUmVhZGFibGU7Ci0gICAgICAgIFJlZlB0cjxDbGlwYm9hcmQ+
IGNsaXBib2FyZCA9IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBkcmFn
RGF0YSk7Ci0gICAgICAgIGNsaXBib2FyZC0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRy
YWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgp
LmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0Rh
dGEpLCBjbGlwYm9hcmQuZ2V0KCkpOwotICAgICAgICBjbGlwYm9hcmQtPnNldEFjY2Vzc1BvbGlj
eShDbGlwYm9hcmROdW1iKTsgICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVyZSBmb3Igc2Vj
dXJpdHkKKyAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSA9ICghbV9kb2N1
bWVudFVuZGVyTW91c2UgfHwgbV9kb2N1bWVudFVuZGVyTW91c2UtPnNlY3VyaXR5T3JpZ2luKCkt
PmlzTG9jYWwoKSkgPyBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OlJlYWRhYmxlIDogRGF0YVRy
YW5zZmVyQWNjZXNzUG9saWN5OjpUeXBlc1JlYWRhYmxlOworICAgICAgICBSZWZQdHI8RGF0YVRy
YW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KHBvbGljeSwgZHJhZ0RhdGEpOworICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJh
dGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7CisgICAgICAgIG1f
cGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVN
b3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgZGF0YVRy
YW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsg
Ly8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQogICAg
IG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CiAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVu
ZGVyTW91c2UpCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJm
b3JtRHJhZyhEcmFnRGF0CiAgICAgICAgIGJvb2wgcHJldmVudGVkRGVmYXVsdCA9IGZhbHNlOwog
ICAgICAgICBpZiAobWFpbkZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgICAgIC8vIFNlbmRpbmcg
YW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBh
cnQuCi0gICAgICAgICAgICBSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQgPSBDbGlwYm9hcmQ6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKENsaXBib2FyZFJlYWRhYmxlLCBkcmFnRGF0YSk7Ci0gICAg
ICAgICAgICBjbGlwYm9hcmQtPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1Nv
dXJjZU9wZXJhdGlvbk1hc2soKSk7Ci0gICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFp
bkZyYW1lLT5ldmVudEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVu
dChkcmFnRGF0YSksIGNsaXBib2FyZC5nZXQoKSk7Ci0gICAgICAgICAgICBjbGlwYm9hcmQtPnNl
dEFjY2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsgLy8gSW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVy
ZSBmb3Igc2VjdXJpdHkKKyAgICAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFu
c2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5OjpSZWFkYWJsZSwgZHJhZ0RhdGEpOworICAgICAgICAgICAgZGF0YVRyYW5zZmVy
LT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNr
KCkpOworICAgICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IG1haW5GcmFtZS0+ZXZlbnRIYW5k
bGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBkYXRh
VHJhbnNmZXIuZ2V0KCkpOworICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xp
Y3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJh
bnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAgIH0KICAgICAgICAgaWYgKHByZXZlbnRl
ZERlZmF1bHQpIHsKICAgICAgICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKQEAgLTU5
MiwyNiArNTkxLDI2IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURIVE1MRHJhZyhEcmFnRGEK
ICAgICBpZiAoIXZpZXdQcm90ZWN0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIENs
aXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kgPSBtX2RvY3VtZW50VW5kZXJNb3VzZS0+c2VjdXJp
dHlPcmlnaW4oKS0+aXNMb2NhbCgpID8gQ2xpcGJvYXJkUmVhZGFibGUgOiBDbGlwYm9hcmRUeXBl
c1JlYWRhYmxlOwotICAgIFJlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCA9IENsaXBib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBkcmFnRGF0YSk7CisgICAgRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IHBvbGljeSA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5zZWN1cml0eU9yaWdp
bigpLT5pc0xvY2FsKCkgPyBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OlJlYWRhYmxlIDogRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpUeXBlc1JlYWRhYmxlOworICAgIFJlZlB0cjxEYXRhVHJh
bnNmZXI+IGRhdGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
cG9saWN5LCBkcmFnRGF0YSk7CiAgICAgRHJhZ09wZXJhdGlvbiBzcmNPcE1hc2sgPSBkcmFnRGF0
YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKTsKLSAgICBjbGlwYm9hcmQtPnNldFNvdXJj
ZU9wZXJhdGlvbihzcmNPcE1hc2spOworICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0
aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQgPSBjcmVhdGVN
b3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCku
dXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGNsaXBib2FyZC5nZXQoKSkpIHsKLSAgICAgICAgY2xp
cGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAgIC8vIGludmFsaWRhdGUg
Y2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CisgICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFu
ZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIuZ2V0KCkpKSB7Cisg
ICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5
LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgb3BlcmF0aW9uID0gY2xpcGJv
YXJkLT5kZXN0aW5hdGlvbk9wZXJhdGlvbigpOwotICAgIGlmIChjbGlwYm9hcmQtPmRyb3BFZmZl
Y3RJc1VuaW5pdGlhbGl6ZWQoKSkKKyAgICBvcGVyYXRpb24gPSBkYXRhVHJhbnNmZXItPmRlc3Rp
bmF0aW9uT3BlcmF0aW9uKCk7CisgICAgaWYgKGRhdGFUcmFuc2Zlci0+ZHJvcEVmZmVjdElzVW5p
bml0aWFsaXplZCgpKQogICAgICAgICBvcGVyYXRpb24gPSBkZWZhdWx0T3BlcmF0aW9uRm9yRHJh
ZyhzcmNPcE1hc2spOwogICAgIGVsc2UgaWYgKCEoc3JjT3BNYXNrICYgb3BlcmF0aW9uKSkgewog
ICAgICAgICAvLyBUaGUgZWxlbWVudCBwaWNrZWQgYW4gb3BlcmF0aW9uIHdoaWNoIGlzIG5vdCBz
dXBwb3J0ZWQgYnkgdGhlIHNvdXJjZQogICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9u
Tm9uZTsKICAgICB9CiAKLSAgICBjbGlwYm9hcmQtPnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRO
dW1iKTsgICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVyZSBmb3Igc2VjdXJpdHkKKyAgICBk
YXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51
bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNzMzLDExICs3MzIsMTEgQEAgYm9vbCBEcmFnQ29udHJvbGxl
cjo6c3RhcnREcmFnKEZyYW1lJiBzcgogICAgIEludFBvaW50IGRyYWdMb2MoMCwgMCk7CiAgICAg
SW50UG9pbnQgZHJhZ0ltYWdlT2Zmc2V0KDAsIDApOwogCi0gICAgQVNTRVJUKHN0YXRlLmNsaXBi
b2FyZCk7CisgICAgQVNTRVJUKHN0YXRlLmRhdGFUcmFuc2Zlcik7CiAKLSAgICBDbGlwYm9hcmQm
IGNsaXBib2FyZCA9ICpzdGF0ZS5jbGlwYm9hcmQ7CisgICAgRGF0YVRyYW5zZmVyJiBkYXRhVHJh
bnNmZXIgPSAqc3RhdGUuZGF0YVRyYW5zZmVyOwogICAgIGlmIChzdGF0ZS50eXBlID09IERyYWdT
b3VyY2VBY3Rpb25ESFRNTCkKLSAgICAgICAgZHJhZ0ltYWdlID0gY2xpcGJvYXJkLmNyZWF0ZURy
YWdJbWFnZShkcmFnSW1hZ2VPZmZzZXQpOworICAgICAgICBkcmFnSW1hZ2UgPSBkYXRhVHJhbnNm
ZXIuY3JlYXRlRHJhZ0ltYWdlKGRyYWdJbWFnZU9mZnNldCk7CiAgICAgaWYgKHN0YXRlLnR5cGUg
PT0gRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbiB8fCAhaW1hZ2VVUkwuaXNFbXB0eSgpIHx8ICFs
aW5rVVJMLmlzRW1wdHkoKSkKICAgICAgICAgLy8gU2VsZWN0aW9uLCBpbWFnZSwgYW5kIGxpbmsg
ZHJhZ3MgcmVjZWl2ZSBhIGRlZmF1bHQgc2V0IG9mIGFsbG93ZWQgZHJhZyBvcGVyYXRpb25zIHRo
YXQKICAgICAgICAgLy8gZm9sbG93cyBmcm9tOgpAQCAtNzU4LDcgKzc1Nyw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3IKIAogICAgIEltYWdlKiBpbWFnZSA9IGdl
dEltYWdlKGVsZW1lbnQpOwogICAgIGlmIChzdGF0ZS50eXBlID09IERyYWdTb3VyY2VBY3Rpb25T
ZWxlY3Rpb24pIHsKLSAgICAgICAgaWYgKCFjbGlwYm9hcmQucGFzdGVib2FyZCgpLmhhc0RhdGEo
KSkgeworICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7
CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBlbnRpcmUgYmxvY2sgaXMgYWxtb3N0IGlkZW50
aWNhbCB0byB0aGUgY29kZSBpbiBFZGl0b3I6OmNvcHksIGFuZCB0aGUgY29kZSBzaG91bGQgYmUg
c2hhcmVkLgogCiAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3Jj
LnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CkBAIC03NjcsNTEgKzc2Niw1MiBAQCBi
b29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgICAgICAgICBzcmMu
ZWRpdG9yKCkud2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNlbGVjdGlvblJhbmdlLmdl
dCgpKTsKIAogICAgICAgICAgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChzcmMuc2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0gICAgICAgICAgICAgICAgY2xpcGJvYXJk
LnBhc3RlYm9hcmQoKS53cml0ZVBsYWluVGV4dChzcmMuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9y
Q2xpcGJvYXJkKCksIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CisgICAgICAgICAg
ICAgICAgZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS53cml0ZVBsYWluVGV4dChzcmMuZWRpdG9y
KCkuc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCksIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0
UmVwbGFjZSk7CiAgICAgICAgICAgICBlbHNlIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oRUZMKQotICAgICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChjbGlwYm9hcmQucGFzdGVib2FyZCgpKTsKKyAgICAgICAgICAgICAgICBzcmMu
ZWRpdG9yKCkud3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9h
cmQoKSk7CiAjZWxzZQogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IGFsbCBvdGhl
ciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KLSAgICAgICAgICAgICAg
ICBjbGlwYm9hcmQucGFzdGVib2FyZCgpLndyaXRlU2VsZWN0aW9uKCpzZWxlY3Rpb25SYW5nZSwg
c3JjLmVkaXRvcigpLmNhblNtYXJ0Q29weU9yRGVsZXRlKCksIHNyYywgSW5jbHVkZUltYWdlQWx0
VGV4dEZvckNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLnBhc3RlYm9h
cmQoKS53cml0ZVNlbGVjdGlvbigqc2VsZWN0aW9uUmFuZ2UsIHNyYy5lZGl0b3IoKS5jYW5TbWFy
dENvcHlPckRlbGV0ZSgpLCBzcmMsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JEYXRhVHJhbnNmZXIp
OwogI2VuZGlmCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS5kaWRX
cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgICAgICB9Ci0gICAgICAgIG1fY2xpZW50
LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uU2VsZWN0aW9uLCBk
cmFnT3JpZ2luLCBjbGlwYm9hcmQpOworICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdT
b3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbiwgZHJhZ09yaWdpbiwgZGF0YVRy
YW5zZmVyKTsKICAgICAgICAgaWYgKCFkcmFnSW1hZ2UpIHsKICAgICAgICAgICAgIGRyYWdJbWFn
ZSA9IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oc3JjKSwgRHJhZ0ltYWdlQWxwaGEpOwogICAgICAgICAgICAgZHJhZ0xvYyA9IGRyYWdMb2NG
b3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdPZmZzZXQgPSBJbnRQb2lu
dChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2luLnkoKSAtIGRyYWdMb2Mu
eSgpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9j
LCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQsIHNyYywgZmFsc2UpOworICAgICAgICBkb1N5c3RlbURy
YWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFs
c2UpOwogICAgIH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAmJiBpbWFnZSAmJiAhaW1h
Z2UtPmlzTnVsbCgpICYmIChtX2RyYWdTb3VyY2VBY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uSW1h
Z2UpKSB7CiAgICAgICAgIC8vIFdlIHNob3VsZG4ndCBiZSBzdGFydGluZyBhIGRyYWcgZm9yIGFu
IGltYWdlIHRoYXQgY2FuJ3QgcHJvdmlkZSBhbiBleHRlbnNpb24uCiAgICAgICAgIC8vIFRoaXMg
aXMgYW4gZWFybHkgZGV0ZWN0aW9uIGZvciBwcm9ibGVtcyBlbmNvdW50ZXJlZCBsYXRlciB1cG9u
IGRyb3AuCiAgICAgICAgIEFTU0VSVCghaW1hZ2UtPmZpbGVuYW1lRXh0ZW5zaW9uKCkuaXNFbXB0
eSgpKTsKLSAgICAgICAgaWYgKCFjbGlwYm9hcmQucGFzdGVib2FyZCgpLmhhc0RhdGEoKSkgewor
ICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CiAgICAg
ICAgICAgICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsKICAgICAgICAgICAgIGlmIChl
bGVtZW50LmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCkpCiAgICAgICAgICAgICAgICAgc2VsZWN0
RWxlbWVudChlbGVtZW50KTsKLSAgICAgICAgICAgIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShj
bGlwYm9hcmQsIGVsZW1lbnQsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxpbmtVUkwgOiBpbWFnZVVS
TCwgaGl0VGVzdFJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOworICAgICAgICAgICAgZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlKGRhdGFUcmFuc2ZlciwgZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0
eSgpID8gbGlua1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmco
KSk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VB
Y3Rpb24oRHJhZ1NvdXJjZUFjdGlvbkltYWdlLCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQpOworICAg
ICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlv
bkltYWdlLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmICghZHJhZ0lt
YWdlKSB7CiAgICAgICAgICAgICBJbnRSZWN0IGltYWdlUmVjdCA9IGhpdFRlc3RSZXN1bHQuaW1h
Z2VSZWN0KCk7CiAgICAgICAgICAgICBpbWFnZVJlY3Quc2V0TG9jYXRpb24obV9wYWdlLm1haW5G
cmFtZSgpLnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKHNyYy52aWV3KCktPmNvbnRlbnRzVG9S
b290VmlldyhpbWFnZVJlY3QubG9jYXRpb24oKSkpKTsKLSAgICAgICAgICAgIGRvSW1hZ2VEcmFn
KGVsZW1lbnQsIGRyYWdPcmlnaW4sIGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0KCksIGNsaXBib2Fy
ZCwgc3JjLCBtX2RyYWdPZmZzZXQpOworICAgICAgICAgICAgZG9JbWFnZURyYWcoZWxlbWVudCwg
ZHJhZ09yaWdpbiwgaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKSwgZGF0YVRyYW5zZmVyLCBzcmMs
IG1fZHJhZ09mZnNldCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBESFRNTCBk
ZWZpbmVkIGRyYWcgaW1hZ2UKLSAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRy
YWdMb2MsIGRyYWdPcmlnaW4sIGNsaXBib2FyZCwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBk
b1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIs
IHNyYywgZmFsc2UpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghbGlua1VSTC5pc0VtcHR5
KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25MaW5rKSkgewotICAg
ICAgICBpZiAoIWNsaXBib2FyZC5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKQotICAgICAgICAgICAg
Ly8gU2ltcGxpZnkgd2hpdGVzcGFjZSBzbyB0aGUgdGl0bGUgcHV0IG9uIHRoZSBjbGlwYm9hcmQg
cmVzZW1ibGVzIHdoYXQgdGhlIHVzZXIgc2VlcworICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5w
YXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CisgICAgICAgICAgICAvLyBTaW1wbGlmeSB3aGl0ZXNw
YWNlIHNvIHRoZSB0aXRsZSBwdXQgb24gdGhlIGRhdGFUcmFuc2ZlciByZXNlbWJsZXMgd2hhdCB0
aGUgdXNlciBzZWVzCiAgICAgICAgICAgICAvLyBvbiB0aGUgd2ViIHBhZ2UuIFRoaXMgaW5jbHVk
ZXMgcmVwbGFjaW5nIG5ld2xpbmVzIHdpdGggc3BhY2VzLgotICAgICAgICAgICAgc3JjLmVkaXRv
cigpLmNvcHlVUkwobGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpLnNpbXBsaWZ5
V2hpdGVTcGFjZSgpLCBjbGlwYm9hcmQucGFzdGVib2FyZCgpKTsKKyAgICAgICAgICAgIHNyYy5l
ZGl0b3IoKS5jb3B5VVJMKGxpbmtVUkwsIGhpdFRlc3RSZXN1bHQudGV4dENvbnRlbnQoKS5zaW1w
bGlmeVdoaXRlU3BhY2UoKSwgZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSk7CisgICAgICAgIH0K
IAogICAgICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzb3VyY2VTZWxlY3Rpb24gPSBzcmMu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgICAgIGlmIChzb3VyY2VTZWxlY3Rpb24uaXND
YXJldCgpICYmIHNvdXJjZVNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CkBAIC04MjQs
NyArODI0LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcgogICAg
ICAgICAgICAgICAgIHNyYy5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKG5vZGUpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9u
TGluaywgZHJhZ09yaWdpbiwgY2xpcGJvYXJkKTsKKyAgICAgICAgbV9jbGllbnQud2lsbFBlcmZv
cm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25MaW5rLCBkcmFnT3JpZ2luLCBkYXRh
VHJhbnNmZXIpOwogICAgICAgICBpZiAoIWRyYWdJbWFnZSkgewogICAgICAgICAgICAgZHJhZ0lt
YWdlID0gY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhsaW5rVVJMLCBoaXRUZXN0UmVzdWx0LnRleHRD
b250ZW50KCksIHNyYy5zZXR0aW5ncygpLmZvbnRSZW5kZXJpbmdNb2RlKCkpOwogICAgICAgICAg
ICAgSW50U2l6ZSBzaXplID0gZHJhZ0ltYWdlU2l6ZShkcmFnSW1hZ2UpOwpAQCAtODMzLDEyICs4
MzMsMTIgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcgogICAgICAg
ICAgICAgLy8gTGF0ZXIgY29kZSBleHBlY3RzIHRoZSBkcmFnIGltYWdlIHRvIGJlIHNjYWxlZCBi
eSBkZXZpY2UncyBzY2FsZSBmYWN0b3IuCiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBzY2FsZURy
YWdJbWFnZShkcmFnSW1hZ2UsIEZsb2F0U2l6ZShtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwg
bV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3Rl
bURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBtb3VzZURyYWdnZWRQb2ludCwgY2xpcGJvYXJkLCBz
cmMsIHRydWUpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBtb3Vz
ZURyYWdnZWRQb2ludCwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUpOwogICAgIH0gZWxzZSBpZiAo
c3RhdGUudHlwZSA9PSBEcmFnU291cmNlQWN0aW9uREhUTUwpIHsKICAgICAgICAgaWYgKGRyYWdJ
bWFnZSkgewogICAgICAgICAgICAgQVNTRVJUKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3Vy
Y2VBY3Rpb25ESFRNTCk7Ci0gICAgICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3Vy
Y2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbkRIVE1MLCBkcmFnT3JpZ2luLCBjbGlwYm9hcmQpOwot
ICAgICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3Jt
RHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uREhUTUwsIGRyYWdPcmlnaW4sIGRhdGFU
cmFuc2Zlcik7CisgICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBk
cmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOwogICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgIHN0YXJ0ZWREcmFnID0gZmFsc2U7CiAgICAgfSBlbHNlIHsKQEAgLTg1Miw3ICs4
NTIsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyCiAgICAgcmV0
dXJuIHN0YXJ0ZWREcmFnOwogfQogCi12b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyhF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgY29uc3QgSW50UmVj
dCYgbGF5b3V0UmVjdCwgQ2xpcGJvYXJkJiBjbGlwYm9hcmQsIEZyYW1lJiBmcmFtZSwgSW50UG9p
bnQmIGRyYWdJbWFnZU9mZnNldCkKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBjb25zdCBJbnRSZWN0
JiBsYXlvdXRSZWN0LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBJ
bnRQb2ludCYgZHJhZ0ltYWdlT2Zmc2V0KQogewogICAgIEludFBvaW50IG1vdXNlRG93blBvaW50
ID0gZHJhZ09yaWdpbjsKICAgICBEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlID0gbnVsbHB0cjsKQEAg
LTg5NSwxMiArODk1LDEyIEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKEVsZW1l
bnQKICAgICB9CiAKICAgICBkcmFnSW1hZ2VPZmZzZXQgPSBtb3VzZURvd25Qb2ludCArIHNjYWxl
ZE9yaWdpbjsKLSAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQsIGRy
YWdPcmlnaW4sIGNsaXBib2FyZCwgZnJhbWUsIGZhbHNlKTsKKyAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2ZlciwgZnJhbWUs
IGZhbHNlKTsKIAogICAgIGRlbGV0ZURyYWdJbWFnZShkcmFnSW1hZ2UpOwogfQogCi12b2lkIERy
YWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQ
b2ludCYgZHJhZ0xvYywgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBDbGlwYm9hcmQmIGNsaXBi
b2FyZCwgRnJhbWUmIGZyYW1lLCBib29sIGZvckxpbmspCit2b2lkIERyYWdDb250cm9sbGVyOjpk
b1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywg
Y29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJh
bWUmIGZyYW1lLCBib29sIGZvckxpbmspCiB7CiAgICAgbV9kaWRJbml0aWF0ZURyYWcgPSB0cnVl
OwogICAgIG1fZHJhZ0luaXRpYXRvciA9IGZyYW1lLmRvY3VtZW50KCk7CkBAIC05MDgsNyArOTA4
LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKERyYWdJbQogICAgIFJlZjxN
YWluRnJhbWU+IGZyYW1lUHJvdGVjdG9yKG1fcGFnZS5tYWluRnJhbWUoKSk7CiAgICAgUmVmUHRy
PEZyYW1lVmlldz4gdmlld1Byb3RlY3RvciA9IGZyYW1lUHJvdGVjdG9yLT52aWV3KCk7CiAgICAg
bV9jbGllbnQuc3RhcnREcmFnKGltYWdlLCB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVu
dHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZHJhZ0xvYykpLAotICAgICAgICB2
aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1Rv
Um9vdFZpZXcoZXZlbnRQb3MpKSwgY2xpcGJvYXJkLCBmcmFtZVByb3RlY3Rvci5nZXQoKSwgZm9y
TGluayk7CisgICAgICAgIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52
aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykpLCBkYXRhVHJhbnNmZXIsIGZyYW1l
UHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKICAgICAvLyBEcmFnQ2xpZW50OjpzdGFydERyYWcg
Y2FuIGNhdXNlIG91ciBQYWdlIHRvIGRpc3BlYXIsIGRlYWxsb2NhdGluZyB8dGhpc3wuCiAgICAg
aWYgKCFmcmFtZVByb3RlY3Rvci0+cGFnZSgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMz
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ2xpcGJvYXJkOworICAg
IGNsYXNzIERhdGFUcmFuc2ZlcjsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBEcmFn
Q2xpZW50OwogICAgIGNsYXNzIERyYWdEYXRhOwpAQCAtMTA2LDEwICsxMDYsMTAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgbW91c2VNb3ZlZEludG9Eb2N1bWVudChEb2N1
bWVudCopOwogCi0gICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCYsIGNvbnN0IEludFBv
aW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCYsIEZyYW1lJiwgSW50UG9pbnQmKTsKLSAg
ICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29sIGZvckxpbmspOworICAgICAg
ICB2b2lkIGRvSW1hZ2VEcmFnKEVsZW1lbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFJl
Y3QmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIEludFBvaW50Jik7CisgICAgICAgIHZvaWQgZG9T
eXN0ZW1EcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYs
IERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCBmb3JMaW5rKTsKICAgICAgICAgdm9pZCBjbGVh
bnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7Ci0gICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKENsaXBib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVs
KTsKKyAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiwg
RWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogCiAgICAgICAgIFBh
Z2UmIG1fcGFnZTsKICAgICAgICAgRHJhZ0NsaWVudCYgbV9jbGllbnQ7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ1N0YXRlLmgJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ1N0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpZm5kZWYgRHJh
Z1N0YXRlX2gKICNkZWZpbmUgRHJhZ1N0YXRlX2gKIAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgor
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogCkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBEcmFnU3RhdGUgewog
ICAgIFJlZlB0cjxFbGVtZW50PiBzb3VyY2U7IC8vIEVsZW1lbnQgdGhhdCBtYXkgYmUgYSBkcmFn
IHNvdXJjZSwgZm9yIHRoZSBjdXJyZW50IG1vdXNlIGdlc3R1cmUuCiAgICAgYm9vbCBzaG91bGRE
aXNwYXRjaEV2ZW50czsKICAgICBEcmFnU291cmNlQWN0aW9uIHR5cGU7Ci0gICAgUmVmUHRyPENs
aXBib2FyZD4gY2xpcGJvYXJkOyAvLyBVc2VkIG9uIG9ubHkgdGhlIHNvdXJjZSBzaWRlIG9mIGRy
YWdnaW5nLgorICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlcjsgLy8gVXNlZCBv
biBvbmx5IHRoZSBzb3VyY2Ugc2lkZSBvZiBkcmFnZ2luZy4KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9u
IDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAxMiw3ICsyMDEyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVBh
c3RlR2xvYmFsU2VsZQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotYm9vbCBFdmVudEhh
bmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBF
bGVtZW50JiBkcmFnVGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBDbGlw
Ym9hcmQqIGNsaXBib2FyZCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhZ1RhcmdldCwgY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiB7
CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52aWV3KCk7CiAKQEAgLTIwMjgsNyArMjAy
OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb24KICAgICAgICAg
ZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKICNl
bmRpZgogICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlm
dEtleSgpLCBldmVudC5tZXRhS2V5KCksCi0gICAgICAgIDAsIDAsIGNsaXBib2FyZCk7CisgICAg
ICAgIDAsIDAsIGRhdGFUcmFuc2Zlcik7CiAKICAgICBkcmFnVGFyZ2V0LmRpc3BhdGNoRXZlbnQo
bWUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIHJldHVybiBtZS0+ZGVmYXVsdFByZXZl
bnRlZCgpOwpAQCAtMjA3Miw5ICsyMDcyLDkgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0RHJhZ09w
ZXJhdGlvblRvRHJvcAogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIGhhc0ZpbGVPZlR5
cGUoQ2xpcGJvYXJkJiBjbGlwYm9hcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBoYXNGaWxlT2ZUeXBlKERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBjb25zdCBT
dHJpbmcmIHR5cGUpCiB7Ci0gICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlTGlzdCA9IGNsaXBib2Fy
ZC5maWxlcygpOworICAgIFJlZlB0cjxGaWxlTGlzdD4gZmlsZUxpc3QgPSBkYXRhVHJhbnNmZXIu
ZmlsZXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlsZUxpc3QtPmxlbmd0aCgp
OyBpKyspIHsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZpbGVMaXN0LT5pdGVtKGkp
LT50eXBlKCksIHR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yMDgyLDIzICsy
MDgyLDIzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNGaWxlT2ZUeXBlKENsaXBib2EKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNTdHJpbmdPZlR5cGUoQ2xp
cGJvYXJkJiBjbGlwYm9hcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3N0YXRpYyBpbmxpbmUgYm9v
bCBoYXNTdHJpbmdPZlR5cGUoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIGNvbnN0IFN0cmlu
ZyYgdHlwZSkKIHsKLSAgICByZXR1cm4gIXR5cGUuaXNOdWxsKCkgJiYgY2xpcGJvYXJkLnR5cGVz
KCkuY29udGFpbnModHlwZSk7CisgICAgcmV0dXJuICF0eXBlLmlzTnVsbCgpICYmIGRhdGFUcmFu
c2Zlci50eXBlcygpLmNvbnRhaW5zKHR5cGUpOwogfQogCi1zdGF0aWMgYm9vbCBoYXNEcm9wWm9u
ZVR5cGUoQ2xpcGJvYXJkJiBjbGlwYm9hcmQsIGNvbnN0IFN0cmluZyYga2V5d29yZCkKK3N0YXRp
YyBib29sIGhhc0Ryb3Bab25lVHlwZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgY29uc3Qg
U3RyaW5nJiBrZXl3b3JkKQogewogICAgIGlmIChrZXl3b3JkLnN0YXJ0c1dpdGgoImZpbGU6Iikp
Ci0gICAgICAgIHJldHVybiBoYXNGaWxlT2ZUeXBlKGNsaXBib2FyZCwga2V5d29yZC5zdWJzdHJp
bmcoNSkpOworICAgICAgICByZXR1cm4gaGFzRmlsZU9mVHlwZShkYXRhVHJhbnNmZXIsIGtleXdv
cmQuc3Vic3RyaW5nKDUpKTsKIAogICAgIGlmIChrZXl3b3JkLnN0YXJ0c1dpdGgoInN0cmluZzoi
KSkKLSAgICAgICAgcmV0dXJuIGhhc1N0cmluZ09mVHlwZShjbGlwYm9hcmQsIGtleXdvcmQuc3Vi
c3RyaW5nKDcpKTsKKyAgICAgICAgcmV0dXJuIGhhc1N0cmluZ09mVHlwZShkYXRhVHJhbnNmZXIs
IGtleXdvcmQuc3Vic3RyaW5nKDcpKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGlj
IGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQpCitz
dGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUoTm9kZSogdGFyZ2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFU
cmFuc2ZlcikKIHsKICAgICBFbGVtZW50KiBlbGVtZW50ID0gdGFyZ2V0LT5pc0VsZW1lbnROb2Rl
KCkgPyB0b0VsZW1lbnQodGFyZ2V0KSA6IHRhcmdldC0+cGFyZW50RWxlbWVudCgpOwogICAgIGZv
ciAoOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpKSB7CkBAIC0y
MTIxLDIwICsyMTIxLDIwIEBAIHN0YXRpYyBib29sIGZpbmREcm9wWm9uZShOb2RlKiB0YXJnZXQs
IEMKICAgICAgICAgICAgICAgICBpZiAoZHJhZ09wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTm9u
ZSkKICAgICAgICAgICAgICAgICAgICAgZHJhZ09wZXJhdGlvbiA9IG9wOwogICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgbWF0Y2hlZCA9IG1hdGNoZWQgfHwgaGFzRHJvcFpvbmVU
eXBlKCpjbGlwYm9hcmQsIGtleXdvcmRzW2ldLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBt
YXRjaGVkID0gbWF0Y2hlZCB8fCBoYXNEcm9wWm9uZVR5cGUoKmRhdGFUcmFuc2Zlciwga2V5d29y
ZHNbaV0uc3RyaW5nKCkpOwogCiAgICAgICAgICAgICBpZiAobWF0Y2hlZCAmJiBkcmFnT3BlcmF0
aW9uICE9IERyYWdPcGVyYXRpb25Ob25lKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChtYXRjaGVkKSB7Ci0gICAgICAgICAgICBjbGlwYm9hcmQtPnNldERy
b3BFZmZlY3QoY29udmVydERyYWdPcGVyYXRpb25Ub0Ryb3Bab25lT3BlcmF0aW9uKGRyYWdPcGVy
YXRpb24pKTsKKyAgICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0RHJvcEVmZmVjdChjb252ZXJ0
RHJhZ09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRpb24oZHJhZ09wZXJhdGlvbikpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQsIENsaXBib2FyZCogY2xpcGJvYXJkKQorYm9vbCBFdmVudEhh
bmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogewogICAgIGJvb2wgYWNjZXB0ID0gZmFsc2U7
CiAKQEAgLTIxNjQsMjMgKzIxNjQsMjMgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdB
bmREcm9wKGNvbgogICAgICAgICBGcmFtZSogdGFyZ2V0RnJhbWU7CiAgICAgICAgIGlmICh0YXJn
ZXRJc0ZyYW1lKG5ld1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAgICAgICAgICAgICBp
ZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gdGFyZ2V0RnJhbWUtPmV2
ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBjbGlwYm9hcmQpOworICAgICAg
ICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
QW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNlIGlmIChuZXdUYXJn
ZXQpIHsKICAgICAgICAgICAgIC8vIEFzIHBlciBzZWN0aW9uIDcuOS40IG9mIHRoZSBIVE1MIDUg
c3BlYy4sIHdlIG11c3QgYWx3YXlzIGZpcmUgYSBkcmFnIGV2ZW50IGJlZm9yZSBmaXJpbmcgYSBk
cmFnZW50ZXIsIGRyYWdsZWF2ZSwgb3IgZHJhZ292ZXIgZXZlbnQuCiAgICAgICAgICAgICBpZiAo
ZHJhZ1N0YXRlKCkuc291cmNlICYmIGRyYWdTdGF0ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzKSB7
CiAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRs
ZXIgY2FuY2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZl
bnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZl
bnQoZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgY2xpcGJv
YXJkKTsKKyAgICAgICAgICAgIGFjY2VwdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMo
KS5kcmFnZW50ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAg
ICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpv
bmUobmV3VGFyZ2V0LmdldCgpLCBjbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9
IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZy
YW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1lKQotICAgICAgICAgICAgICAgIGFj
Y2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVu
dCwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAg
ICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZl
bnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgY2xp
cGJvYXJkKTsKKyAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFn
bGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAKICAgICAg
ICAgaWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkg
Y2FsbCBkaXNwYXRjaERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSBy
ZXN1bHQgaW4gdGhlIGFwcGVhcmFuY2UgdGhhdApAQCAtMjE5MSwxNiArMjE5MSwxNiBAQCBib29s
IEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uCiAgICAgICAgIEZyYW1lKiB0YXJn
ZXRGcmFtZTsKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobmV3VGFyZ2V0LmdldCgpLCB0YXJn
ZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKLSAgICAgICAgICAgICAg
ICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3Ao
ZXZlbnQsIGNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gdGFyZ2V0RnJhbWUt
PmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwog
ICAgICAgICB9IGVsc2UgaWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAgLy8gTm90ZSwgd2hl
biBkZWFsaW5nIHdpdGggc3ViLWZyYW1lcywgd2UgbWF5IG5lZWQgdG8gZmlyZSBvbmx5IGEgZHJh
Z292ZXIgZXZlbnQgYXMgYSBkcmFnIGV2ZW50IG1heSBoYXZlIGJlZW4gZmlyZWQgZWFybGllci4K
ICAgICAgICAgICAgIGlmICghbV9zaG91bGRPbmx5RmlyZURyYWdPdmVyRXZlbnQgJiYgZHJhZ1N0
YXRlKCkuc291cmNlICYmIGRyYWdTdGF0ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzKSB7CiAgICAg
ICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2Fu
Y2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAgICAgICAg
ICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZl
bnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBjbGlwYm9hcmQpOwor
ICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdv
dmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAg
aWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1Rh
cmdldC5nZXQoKSwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJv
cFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgbV9zaG91
bGRPbmx5RmlyZURyYWdPdmVyRXZlbnQgPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTIy
MDgsMjkgKzIyMDgsMjkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNv
bgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBDbGlwYm9hcmQqIGNsaXBi
b2FyZCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKIHsKICAgICBG
cmFtZSogdGFyZ2V0RnJhbWU7CiAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0Lmdl
dCgpLCB0YXJnZXRGcmFtZSkpIHsKICAgICAgICAgaWYgKHRhcmdldEZyYW1lKQotICAgICAgICAg
ICAgdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGV2ZW50LCBj
bGlwYm9hcmQpOworICAgICAgICAgICAgdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLmNhbmNl
bERyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIH0gZWxzZSBpZiAobV9kcmFn
VGFyZ2V0KSB7CiAgICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCku
c2hvdWxkRGlzcGF0Y2hFdmVudHMpCiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChl
dmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50
KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGNsaXBi
b2FyZCk7CisgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVF
dmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgfQogICAgIGNs
ZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERy
b3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQp
Citib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogewogICAgIEZyYW1l
KiB0YXJnZXRGcmFtZTsKICAgICBib29sIHByZXZlbnRlZERlZmF1bHQgPSBmYWxzZTsKICAgICBp
ZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAg
ICAgICBpZiAodGFyZ2V0RnJhbWUpCi0gICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gdGFy
Z2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChldmVudCwgY2xpcGJv
YXJkKTsKKyAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIH0g
ZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0
Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQs
IGNsaXBib2FyZCk7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5z
ZmVyKTsKICAgICBjbGVhckRyYWdTdGF0ZSgpOwogICAgIHJldHVybiBwcmV2ZW50ZWREZWZhdWx0
OwogfQpAQCAtMzE2NSwxMiArMzE2NSwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3Rl
cmVzaXNFeGNlZWRlCiAgICAgcmV0dXJuIGFicyhkZWx0YS53aWR0aCgpKSA+PSB0aHJlc2hvbGQg
fHwgYWJzKGRlbHRhLmhlaWdodCgpKSA+PSB0aHJlc2hvbGQ7CiB9CiAgICAgCi12b2lkIEV2ZW50
SGFuZGxlcjo6ZnJlZUNsaXBib2FyZCgpCit2b2lkIEV2ZW50SGFuZGxlcjo6ZnJlZURhdGFUcmFu
c2ZlcigpCiB7Ci0gICAgaWYgKCFkcmFnU3RhdGUoKS5jbGlwYm9hcmQpCisgICAgaWYgKCFkcmFn
U3RhdGUoKS5kYXRhVHJhbnNmZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBkcmFnU3RhdGUoKS5j
bGlwYm9hcmQtPnNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsKLSAgICBkcmFnU3RhdGUo
KS5jbGlwYm9hcmQgPSAwOworICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0QWNjZXNz
UG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7CisgICAgZHJhZ1N0YXRlKCku
ZGF0YVRyYW5zZmVyID0gMDsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRl
ZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdPcGVyYXRpb24gb3BlcmF0
aW9uKQpAQCAtMzE4MCwxMSArMzE4MCwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZHJhZ1NvdXJj
ZUVuZGVkQXQoY29uCiAgICAgcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgZXZlbnQpOwogCiAg
ICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUoKS5zaG91bGREaXNwYXRjaEV2
ZW50cykgewotICAgICAgICBkcmFnU3RhdGUoKS5jbGlwYm9hcmQtPnNldERlc3RpbmF0aW9uT3Bl
cmF0aW9uKG9wZXJhdGlvbik7CisgICAgICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0
RGVzdGluYXRpb25PcGVyYXRpb24ob3BlcmF0aW9uKTsKICAgICAgICAgLy8gRm9yIG5vdyB3ZSBk
b24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2FuY2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5j
ZSB0aGVyZSBpcyBubyBkZWZhdWx0IGJlaGF2aW9yLgogICAgICAgICBkaXNwYXRjaERyYWdTcmNF
dmVudChldmVudE5hbWVzKCkuZHJhZ2VuZEV2ZW50LCBldmVudCk7CiAgICAgfQotICAgIGZyZWVD
bGlwYm9hcmQoKTsKKyAgICBmcmVlRGF0YVRyYW5zZmVyKCk7CiAgICAgZHJhZ1N0YXRlKCkuc291
cmNlID0gMDsKICAgICAvLyBJbiBjYXNlIHRoZSBkcmFnIHdhcyBlbmRlZCBkdWUgdG8gYW4gZXNj
YXBlIGtleSBwcmVzcyB3ZSBuZWVkIHRvIGVuc3VyZQogICAgIC8vIHRoYXQgY29uc2VjdXRpdmUg
bW91c2Vtb3ZlIGV2ZW50cyBkb24ndCByZWluaXRpYXRlIHRoZSBkcmFnIGFuZCBkcm9wLgpAQCAt
MzIwMSw3ICszMjAxLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVy
RQogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29udGludWUgImRlZmF1
bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBjYW5jZWxlZC4KIGJv
b2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdTcmNFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1
cm4gIWRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50VHlwZSwgKmRyYWdTdGF0ZSgpLnNvdXJjZSwgZXZl
bnQsIGRyYWdTdGF0ZSgpLmNsaXBib2FyZC5nZXQoKSk7CisgICAgcmV0dXJuICFkaXNwYXRjaERy
YWdFdmVudChldmVudFR5cGUsICpkcmFnU3RhdGUoKS5zb3VyY2UsIGV2ZW50LCBkcmFnU3RhdGUo
KS5kYXRhVHJhbnNmZXIuZ2V0KCkpOwogfQogICAgIAogc3RhdGljIGJvb2wgRXhhY3RseU9uZUJp
dFNldChEcmFnU291cmNlQWN0aW9uIG4pCkBAIC0zMjkwLDEwICszMjkwLDEwIEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXMKICAgICAKICAgICBEcmFnT3BlcmF0aW9u
IHNyY09wID0gRHJhZ09wZXJhdGlvbk5vbmU7ICAgICAgCiAgICAgCi0gICAgLy8gVGhpcyBkb2Vz
IHdvcmsgb25seSBpZiB3ZSBtaXNzZWQgYSBkcmFnRW5kLiBEbyBpdCBhbnl3YXksIGp1c3QgdG8g
bWFrZSBzdXJlIHRoZSBvbGQgY2xpcGJvYXJkIGdldHMgbnVtYmVkLgotICAgIGZyZWVDbGlwYm9h
cmQoKTsKKyAgICAvLyBUaGlzIGRvZXMgd29yayBvbmx5IGlmIHdlIG1pc3NlZCBhIGRyYWdFbmQu
IERvIGl0IGFueXdheSwganVzdCB0byBtYWtlIHN1cmUgdGhlIG9sZCBkYXRhVHJhbnNmZXIgZ2V0
cyBudW1iZWQuCisgICAgZnJlZURhdGFUcmFuc2ZlcigpOwogCi0gICAgZHJhZ1N0YXRlKCkuY2xp
cGJvYXJkID0gY3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKTsKKyAgICBkcmFnU3RhdGUoKS5kYXRh
VHJhbnNmZXIgPSBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpOwogICAgIAogICAgIGlmIChk
cmFnU3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cykgewogICAgICAgICAvLyBDaGVjayB0byBz
ZWUgaWYgdGhlIGlzIGEgRE9NIGJhc2VkIGRyYWcuIElmIGl0IGlzLCBnZXQgdGhlIERPTSBzcGVj
aWZpZWQgZHJhZyBpbWFnZSBhbmQgb2Zmc2V0LgpAQCAtMzMwMiw3ICszMzAyLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZURyYWcoY29uc3QgTW91cwogICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zLgogICAgICAg
ICAgICAgICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgp
OwogICAgICAgICAgICAgICAgIEludFNpemUgZGVsdGEgPSBtX21vdXNlRG93blBvcyAtIHJvdW5k
ZWRJbnRQb2ludChhYnNQb3MpOwotICAgICAgICAgICAgICAgIGRyYWdTdGF0ZSgpLmNsaXBib2Fy
ZC0+c2V0RHJhZ0ltYWdlKGRyYWdTdGF0ZSgpLnNvdXJjZS5nZXQoKSwgZGVsdGEud2lkdGgoKSwg
ZGVsdGEuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zl
ci0+c2V0RHJhZ0ltYWdlKGRyYWdTdGF0ZSgpLnNvdXJjZS5nZXQoKSwgZGVsdGEud2lkdGgoKSwg
ZGVsdGEuaGVpZ2h0KCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAv
LyBUaGUgcmVuZGVyZXIgaGFzIGRpc2FwcGVhcmVkLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIG9u
U3RhcnREcmFnIGhhbmRsZXIgaGFzIGhpZGRlbgogICAgICAgICAgICAgICAgIC8vIHRoZSBlbGVt
ZW50IGluIHNvbWUgd2F5LiAgSW4gdGhpcyBjYXNlIHdlIGp1c3Qga2lsbCB0aGUgZHJhZy4KQEAg
LTMzMTQsMTggKzMzMTQsMTggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcoY29uc3Qg
TW91cwogICAgICAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGRpc3BhdGNoRHJhZ1NyY0V2
ZW50KGV2ZW50TmFtZXMoKS5kcmFnc3RhcnRFdmVudCwgbV9tb3VzZURvd24pCiAgICAgICAgICAg
ICAmJiAhbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0luUGFzc3dvcmRGaWVsZCgp
OwogICAgICAgICAKLSAgICAgICAgLy8gSW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVyZSBhZ2FpbnN0
IGFueW1vcmUgcGFzdGVib2FyZCB3cml0aW5nIGZvciBzZWN1cml0eS4gIFRoZSBkcmFnCisgICAg
ICAgIC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgYWdhaW5zdCBhbnltb3JlIHBhc3Rl
Ym9hcmQgd3JpdGluZyBmb3Igc2VjdXJpdHkuIFRoZSBkcmFnCiAgICAgICAgIC8vIGltYWdlIGNh
biBzdGlsbCBiZSBjaGFuZ2VkIGFzIHdlIGRyYWcsIGJ1dCBub3QgdGhlIHBhc3RlYm9hcmQgZGF0
YS4KLSAgICAgICAgZHJhZ1N0YXRlKCkuY2xpcGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJv
YXJkSW1hZ2VXcml0YWJsZSk7CisgICAgICAgIGRyYWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0
QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6SW1hZ2VXcml0YWJsZSk7CiAg
ICAgICAgIAogICAgICAgICBpZiAobV9tb3VzZURvd25NYXlTdGFydERyYWcpIHsKICAgICAgICAg
ICAgIC8vIEdhdGhlciB2YWx1ZXMgZnJvbSBESFRNTCBlbGVtZW50LCBpZiBpdCBzZXQgYW55Lgot
ICAgICAgICAgICAgc3JjT3AgPSBkcmFnU3RhdGUoKS5jbGlwYm9hcmQtPnNvdXJjZU9wZXJhdGlv
bigpOworICAgICAgICAgICAgc3JjT3AgPSBkcmFnU3RhdGUoKS5kYXRhVHJhbnNmZXItPnNvdXJj
ZU9wZXJhdGlvbigpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBZdWNrLCBhIGRyYWdn
ZWRJbWFnZTptb3ZlVG86IG1lc3NhZ2UgY2FuIGJlIGZpcmVkIGFzIGEgcmVzdWx0IG9mIGtpY2tp
bmcgb2ZmIHRoZQogICAgICAgICAgICAgLy8gZHJhZyB3aXRoIGRyYWdJbWFnZSEgQmVjYXVzZSBv
ZiB0aGF0IGR1bWIgcmVlbnRyYW5jeSwgd2UgbWF5IHRoaW5rIHdlJ3ZlIG5vdAogICAgICAgICAg
ICAgLy8gc3RhcnRlZCB0aGUgZHJhZyB3aGVuIHRoYXQgaGFwcGVucy4gU28gd2UgaGF2ZSB0byBh
c3N1bWUgaXQncyBzdGFydGVkIGJlZm9yZSB3ZSBraWNrIGl0IG9mZi4KLSAgICAgICAgICAgIGRy
YWdTdGF0ZSgpLmNsaXBib2FyZC0+c2V0RHJhZ0hhc1N0YXJ0ZWQoKTsKKyAgICAgICAgICAgIGRy
YWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0RHJhZ0hhc1N0YXJ0ZWQoKTsKICAgICAgICAgfQog
ICAgIH0KICAgICAKQEAgLTMzNDgsNyArMzM0OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVEcmFnKGNvbnN0IE1vdXMKIGNsZWFudXBEcmFnOgogICAgIGlmICghbV9tb3VzZURvd25NYXlT
dGFydERyYWcpIHsKICAgICAgICAgLy8gU29tZXRoaW5nIGZhaWxlZCB0byBzdGFydCB0aGUgZHJh
ZywgY2xlYW4gdXAuCi0gICAgICAgIGZyZWVDbGlwYm9hcmQoKTsKKyAgICAgICAgZnJlZURhdGFU
cmFuc2ZlcigpOwogICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAwOwogICAgIH0KICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gMTY2OTU3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgs
OCArNjgsOCBAQCBjbGFzcyBOU1ZpZXc7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1
dG9zY3JvbGxDb250cm9sbGVyOwotY2xhc3MgQ2xpcGJvYXJkOwogY2xhc3MgQ29udGFpbmVyTm9k
ZTsKK2NsYXNzIERhdGFUcmFuc2ZlcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsK
IGNsYXNzIEV2ZW50OwpAQCAtMTU5LDkgKzE1OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENh
cHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxs
ZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHVwZGF0ZURyYWdBbmREcm9wKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIENsaXBib2FyZCopOwotICAgIHZvaWQgY2FuY2VsRHJh
Z0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgQ2xpcGJvYXJkKik7Ci0gICAgYm9v
bCBwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgQ2xpcGJvYXJk
Kik7CisgICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
LCBEYXRhVHJhbnNmZXIqKTsKKyAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOworICAgIGJvb2wgcGVyZm9ybURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogICAgIHZvaWQg
dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJs
ZUVsZW1lbnQpOwogI2VuZGlmCiAKQEAgLTMwNSw3ICszMDUsNyBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4
dERyYWdEZWxheTsKICAgICAKLSAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRHJhZ2dp
bmdDbGlwYm9hcmQoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogCiAgICAgYm9vbCBldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JikgY29uc3Q7CkBAIC0zNjUsOSArMzY1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZGlz
cGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJn
ZXQsIGJvb2wgY2FuY2VsYWJsZSwgaW50IGNsaWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIGJvb2wgc2V0VW5kZXIpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9v
bCBkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVu
dCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBDbGlwYm9hcmQqKTsKKyAgICBi
b29sIGRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVt
ZW50JiB0YXJnZXQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwog
Ci0gICAgdm9pZCBmcmVlQ2xpcGJvYXJkKCk7CisgICAgdm9pZCBmcmVlRGF0YVRyYW5zZmVyKCk7
CiAKICAgICBib29sIGhhbmRsZURyYWcoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYsIENoZWNrRHJhZ0h5c3RlcmVzaXMpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRs
ZXIuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5j
bHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05Nyw5ICs5Nyw5IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2UKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
Ci1QYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBi
b2FyZCgpIGNvbnN0CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVh
dGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENsaXBib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Z3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDb250
cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNm
ZXIuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgpAQCAtNjksOSArNjksOSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpjbGVh
bnVwQWZ0ZXJTeXN0ZW1ECiB7CiB9CiAKLXZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRX
cml0ZURyYWdJbWFnZShDbGlwYm9hcmQmIGNsaXBib2FyZCwgRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCit2b2lkIERyYWdDb250cm9sbGVyOjpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAg
IGNsaXBib2FyZC5wYXN0ZWJvYXJkKCkud3JpdGVJbWFnZShlbGVtZW50LCB1cmwsIGxhYmVsKTsK
KyAgICBkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLndyaXRlSW1hZ2UoZWxlbWVudCwgdXJsLCBs
YWJlbCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxl
ckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RXZlbnRIYW5kbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCi0jaW5jbHVkZSAi
Q2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CkBAIC05Nyw5ICs5Nyw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lk
Z2UKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPENsaXBib2FyZD4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CitQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsK
KyAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQogI2Vu
ZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFj
Lm1tCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29u
dHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIAotI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCisjaW1wb3J0ICJEYXRh
VHJhbnNmZXIuaCIKICNpbXBvcnQgIkRyYWdDbGllbnQuaCIKICNpbXBvcnQgIkRyYWdEYXRhLmgi
CiAjaW1wb3J0ICJFbGVtZW50LmgiCkBAIC04Miw5ICs4Miw5IEBAIHZvaWQgRHJhZ0NvbnRyb2xs
ZXI6OmNsZWFudXBBZnRlclN5c3RlbUQKICAgICAgICAgZHJhZ0VuZGVkKCk7CiB9CiAKLXZvaWQg
RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQmIGNsaXBi
b2FyZCwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFi
ZWwpCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRy
YW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIG1fY2xpZW50LmRlY2xhcmVBbmRXcml0ZURyYWdJ
bWFnZShjbGlwYm9hcmQucGFzdGVib2FyZCgpLm5hbWUoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCwg
ZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fY2xpZW50LmRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZShkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKSwgZWxlbWVudCwgdXJs
LCBsYWJlbCwgZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhh
bmRsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJC
bG9ja0V4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXIu
aCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKQEAgLTY4MCwxMyArNjgwLDEzIEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY28KIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkKCkgY29uc3QKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRs
ZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJl
IGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFkZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2Fy
ZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9t
IHRoZSBsYXN0IGRyYWcuCiAgICAgT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQgPSBQYXN0
ZWJvYXJkOjpjcmVhdGUoTlNEcmFnUGJvYXJkKTsKICAgICBwYXN0ZWJvYXJkLT5jbGVhcigpOwot
ICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgcmV0dXJu
IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCShyZXZp
c2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
CisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKQEAgLTY5LDkgKzY5
LDkgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRAogewogfQogCi12
b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkJiBj
bGlwYm9hcmQsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQordm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERh
dGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkID0g
Y2xpcGJvYXJkLnBhc3RlYm9hcmQoKTsKKyAgICBQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkID0gZGF0
YVRyYW5zZmVyLnBhc3RlYm9hcmQoKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgbmVl
ZCB0aGlzIGNoZWNrPwogICAgIGlmICghcGFzdGVib2FyZC53cml0YWJsZURhdGFPYmplY3QoKSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAkocmV2
aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogI2luY2x1ZGUgIkV2ZW50SGFu
ZGxlci5oIgogCiAjaW5jbHVkZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAj
aW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgpAQCAtOTIsMTIgKzkyLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFj
dGl2YXRlZFZpZXcoY28KIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRy
PENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0
CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0Rh
dGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgcmV0dXJuIDA7CiAjZWxz
ZQotICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgcmV0
dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKICNlbmRpZgogfQogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCShyZXZpc2lvbiAxNjY5
NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKIAotZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9h
cmQgeyBEZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBi
b2FyZCB9OworZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIg
eyBEZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckRhdGFUcmFu
c2ZlciB9OwogCiAvLyBGb3Igd3JpdGluZyB0byB0aGUgcGFzdGVib2FyZC4gR2VuZXJhbGx5IHNv
cnRlZCB3aXRoIHRoZSByaWNoZXN0IGZvcm1hdHMgb24gdG9wLgogCkBAIC0xNjUsNyArMTY1LDcg
QEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQogICAgIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudChGcmFtZSYsIFJhbmdlJiwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOyAvLyBGSVhNRTogTGF5
ZXJpbmcgdmlvbGF0aW9uLgogICAgIHZvaWQgd3JpdGVJbWFnZShFbGVtZW50JiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCi0g
ICAgdm9pZCB3cml0ZVNlbGVjdGlvbihSYW5nZSYsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUs
IEZyYW1lJiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID0gRGVmYXVs
dFNlbGVjdGVkVGV4dFR5cGUpOyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uLgorICAgIHZv
aWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2UmLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFt
ZSYsIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciA9IERlZmF1bHRT
ZWxlY3RlZFRleHRUeXBlKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oR1RLKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsMTAg
KzE1OCwxMCBAQCBib29sIFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdl
JiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSYgZnJhbWUs
IFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCBzaG91bGRTZXJpYWxpemVT
ZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9u
KFJhbmdlJiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSYg
ZnJhbWUsIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciBzaG91bGRT
ZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIpCiB7CiAgICAgbV9kYXRhT2JqZWN0
LT5jbGVhckFsbCgpOwotICAgIG1fZGF0YU9iamVjdC0+c2V0VGV4dChzaG91bGRTZXJpYWxpemVT
ZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgPT0gSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2Fy
ZCA/IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpIDogZnJhbWUuZWRp
dG9yKCkuc2VsZWN0ZWRUZXh0KCkpOworICAgIG1fZGF0YU9iamVjdC0+c2V0VGV4dChzaG91bGRT
ZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgPT0gSW5jbHVkZUltYWdlQWx0VGV4
dEZvckRhdGFUcmFuc2ZlciA/IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dEZvckRhdGFUcmFu
c2ZlcigpIDogZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0KCkpOwogICAgIG1fZGF0YU9iamVj
dC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvcklu
dGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcykpOwogCiAgICAgaWYgKG1fZ3Rr
Q2xpcGJvYXJkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0JKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW1w
b3J0ICJQYXN0ZWJvYXJkLmgiCiAKICNpbXBvcnQgIkNhY2hlZEltYWdlLmgiCi0jaW1wb3J0ICJD
bGlwYm9hcmQuaCIKICNpbXBvcnQgIkRPTVJhbmdlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRvY3Vt
ZW50LmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCShyZXZpc2lvbiAxNjY5NTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUmFuZ2VUb0Rh
dGFPYmplY3QoCiAgICAgaWYgKG1lZGl1bS5oR2xvYmFsICYmIEZBSUxFRChtX3dyaXRhYmxlRGF0
YU9iamVjdC0+U2V0RGF0YShodG1sRm9ybWF0KCksICZtZWRpdW0sIFRSVUUpKSkKICAgICAgICAg
OjpHbG9iYWxGcmVlKG1lZGl1bS5oR2xvYmFsKTsKIAotICAgIFN0cmluZyBzdHIgPSBmcmFtZS5l
ZGl0b3IoKS5zZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKTsKKyAgICBTdHJpbmcgc3RyID0gZnJh
bWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CiAgICAgcmVwbGFjZU5l
d2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CiAgICAgcmVwbGFjZU5CU1BXaXRo
U3BhY2Uoc3RyKTsKICAgICBtZWRpdW0uaEdsb2JhbCA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsK
QEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUmFuZ2VUb0RhdGFPYmpl
Y3QoCiAgICAgICAgIG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXREYXRhKHNtYXJ0UGFzdGVGb3Jt
YXQoKSwgJm1lZGl1bSwgVFJVRSk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rp
b24oUmFuZ2UmIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1l
JiBmcmFtZSwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkIHNob3VsZFNl
cmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb24oUmFuZ2UmIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUs
IEZyYW1lJiBmcmFtZSwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVy
IHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcikKIHsKICAgICBjbGVh
cigpOwogCkBAIC00NjYsNyArNDY2LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSYgcwogICAgIH0KICAgICAKICAgICAvLyBQdXQgcGxhaW4gc3RyaW5nIG9uIHRoZSBw
YXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBhcyB3ZWxsCi0gICAgU3Ry
aW5nIHN0ciA9IHNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCA9PSBJbmNs
dWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkID8gZnJhbWUuZWRpdG9yKCkuc2VsZWN0ZWRUZXh0
Rm9yQ2xpcGJvYXJkKCkgOiBmcmFtZS5lZGl0b3IoKS5zZWxlY3RlZFRleHQoKTsKKyAgICBTdHJp
bmcgc3RyID0gc2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyID09IElu
Y2x1ZGVJbWFnZUFsdFRleHRGb3JEYXRhVHJhbnNmZXIgPyBmcmFtZS5lZGl0b3IoKS5zZWxlY3Rl
ZFRleHRGb3JEYXRhVHJhbnNmZXIoKSA6IGZyYW1lLmVkaXRvcigpLnNlbGVjdGVkVGV4dCgpOwog
ICAgIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhzdHIpOwogICAgIHJl
cGxhY2VOQlNQV2l0aFNwYWNlKHN0cik7CiAgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVy
KSkgewpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDQtMDggIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENsaXBi
b2FyZCB0byBEYXRhVHJhbnNmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorCiAyMDE0LTA0LTA4
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEZsYWdzQ2hh
bmdlZCBldmVudHMgYXJlIG5vdCBkZWxpdmVyZWQgdG8gaW5wdXQgbWV0aG9kcyB3aGVuIHVzaW5n
IGFzeW5jIHRleHQgaW5wdXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAkocmV2aXNpb24gMTY2
OTU3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCB2b2lkIFdlYkRyYWdD
bGllbnQ6OndpbGxQZXJmb3JtRHJhZ0Rlc3RpCiAgICAgICAgIG1fcGFnZS0+bWF5UGVyZm9ybVVw
bG9hZERyYWdEZXN0aW5hdGlvbkFjdGlvbigpOyAvLyBVcGxvYWQgY2FuIGhhcHBlbiBmcm9tIGEg
ZHJvcCBldmVudCBoYW5kbGVyLCBzbyB3ZSBzaG91bGQgcHJlcGFyZSBlYXJseS4KIH0KIAotdm9p
ZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFj
dGlvbiwgY29uc3QgSW50UG9pbnQmLCBDbGlwYm9hcmQmKQordm9pZCBXZWJEcmFnQ2xpZW50Ojp3
aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9p
bnQmLCBEYXRhVHJhbnNmZXImKQogewogfQogCkBAIC01Nyw3ICs1Nyw3IEBAIERyYWdTb3VyY2VB
Y3Rpb24gV2ViRHJhZ0NsaWVudDo6ZHJhZ1NvdXIKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKEdUSykKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFn
ZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCYsIEZyYW1l
JiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9v
bCkKIHsKIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgJKHJldmlzaW9uIDE2Njk1NykK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMSArNDMsMTEgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihXZWJD
b3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpE
cmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNsaXBi
b2FyZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VB
Y3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhXZWJDb3JlOjpEcmFnRGF0
YSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQ
b2ludCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRy
YWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpDbGlwYm9hcmQmLCBXZWJD
b3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBkcmFnSW1hZ2VPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBv
cywgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFn
ID0gZmFsc2UpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2
b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVu
dE1hYy5tbQkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NzIsNyArNzIsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlCiAg
ICAgcmV0dXJuIGJpdG1hcC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3Rh
cnREcmFnKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBj
b25zdCBJbnRQb2ludCYsIENsaXBib2FyZCYsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykK
K3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwg
Y29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZy
YW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKIHsKICAgICBJbnRTaXplIGJpdG1hcFNpemUoW2lt
YWdlIHNpemVdKTsKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBjb252ZXJ0
SW1hZ2VUb0JpdG1hcChpbWFnZS5nZXQoKSwgYml0bWFwU2l6ZSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2lvcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9pb3MvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wNC0wOCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2xpcGJvYXJkIHRvIERhdGFU
cmFuc2ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbToKKwogMjAxNC0wNC0wMiAgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUg
dGhlIGxlZ2FjeSBzdHJpbmcgZHJhd2luZyBjb2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9X
ZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQkocmV2aXNpb24gMTY2OTU3
KQorKysgU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0J
KHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L0pTU3RyaW5nUmVmLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+
CiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9DbGlwYm9hcmQuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50
SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0Zvcm1TdGF0ZS5oPgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTY2OTU3KQor
KysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTQtMDQtMDggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuYW1lIENsaXBib2FyZCB0byBEYXRhVHJhbnNmZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTM3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW06Cisg
ICAgICAgIChXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24pOgorICAg
ICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBE
RlZpZXcubW06CisKIDIwMTQtMDQtMDggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWJLaXQgcGFydCBvZiBbQ29jb2FdIEFkZCBXS0Zvcm1EZWxlZ2F0ZQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aAkocmV2aXNpb24gMTY2OTU3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMsMTEgQEAgY2xhc3Mg
V2ViRHJhZ0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEcgogcHVibGljOgogICAgIFdlYkRyYWdD
bGllbnQoV2ViVmlldyopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5h
dGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdE
YXRhJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFj
dGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IFdlYkNvcmU6OkNsaXBib2FyZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVy
Zm9ybURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhX
ZWJDb3JlOjpEcmFnRGF0YSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkcmFnQ29udHJv
bGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ1NvdXJj
ZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiB3aW5kb3dQb2ludCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhX
ZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkcmFnUG9zLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIFdlYkNvcmU6OkNsaXBib2FyZCYsIFdl
YkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBkcmFnUG9zLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIFdlYkNvcmU6OkRh
dGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKIHByaXZhdGU6CiAgICAgV2Vi
VmlldyogbV93ZWJWaWV3OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCShyZXZpc2lvbiAxNjY5NTcpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw3ICs0Miw3IEBACiAjaW1wb3J0ICJXZWJVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJV
SURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCi0jaW1wb3J0
IDxXZWJDb3JlL0NsaXBib2FyZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgpAQCAtODQsMTIgKzg0LDEyIEBAIFdl
YkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVudDoKICAgICByZXR1cm4gKERyYWdT
b3VyY2VBY3Rpb24pW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6bV93
ZWJWaWV3IGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQ6dmlld1BvaW50XTsKIH0KIAotdm9p
ZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJh
Z1NvdXJjZUFjdGlvbiBhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtb3VzZURvd25Q
b2ludCwgV2ViQ29yZTo6Q2xpcGJvYXJkJiBjbGlwYm9hcmQpCit2b2lkIFdlYkRyYWdDbGllbnQ6
OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFj
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1vdXNlRG93blBvaW50LCBXZWJDb3JlOjpE
YXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKLSAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0
ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9u
OihXZWJEcmFnU291cmNlQWN0aW9uKWFjdGlvbiBmcm9tUG9pbnQ6bW91c2VEb3duUG9pbnQgd2l0
aFBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6Y2xpcGJvYXJkLnBh
c3RlYm9hcmQoKS5uYW1lKCldXTsKKyAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlldzptX3dlYlZpZXcgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uOihXZWJEcmFn
U291cmNlQWN0aW9uKWFjdGlvbiBmcm9tUG9pbnQ6bW91c2VEb3duUG9pbnQgd2l0aFBhc3RlYm9h
cmQ6W05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6ZGF0YVRyYW5zZmVyLnBhc3RlYm9h
cmQoKS5uYW1lKCldXTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0lt
YWdlUmVmIGRyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQmIGF0LCBjb25zdCBJbnRQb2ludCYgZXZl
bnRQb3MsIENsaXBib2FyZCYgY2xpcGJvYXJkLCBGcmFtZSYgZnJhbWUsIGJvb2wgbGlua0RyYWcp
Cit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBj
b25zdCBJbnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKIHsKICAgICBSZXRh
aW5QdHI8V2ViSFRNTFZpZXc+IGh0bWxWaWV3ID0gKFdlYkhUTUxWaWV3KilbW2tpdCgmZnJhbWUp
IGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtodG1sVmlldy5nZXQoKSBpc0tp
bmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQg
V2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVIKICAgICBSZXRhaW5QdHI8V2ViSFRN
TFZpZXc+IHRvcFZpZXdQcm90ZWN0b3IgPSB0b3BIVE1MVmlldzsKICAgICAKICAgICBbdG9wSFRN
TFZpZXcgX3N0b3BBdXRvc2Nyb2xsVGltZXJdOwotICAgIE5TUGFzdGVib2FyZCAqcGFzdGVib2Fy
ZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOmNsaXBib2FyZC5wYXN0ZWJvYXJk
KCkubmFtZSgpXTsKKyAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJk
IHBhc3RlYm9hcmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKV07CiAK
ICAgICBOU0ltYWdlICpkcmFnTlNJbWFnZSA9IGRyYWdJbWFnZS5nZXQoKTsKICAgICBXZWJIVE1M
VmlldyAqc291cmNlSFRNTFZpZXcgPSBodG1sVmlldy5nZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0JKHJldmlzaW9uIDE2Njk1NykKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTAsNyAr
NTAsNyBAQAogI2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgi
CiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NsaXBib2FyZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWUuaD4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Njk1NykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA0LTA4ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDbGlwYm9h
cmQgdG8gRGF0YVRyYW5zZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzEzNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbDoKKyAgICAgICAgKiBqcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrLXdrMS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGstd2sy
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy1tb3VudGFpbmxpb24vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dDoKKwogMjAxNC0wNC0wOCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9t
LWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDYg
QEAgUEFTUyBUcnlBbGxvY2F0ZSgnSFRNTFRpdGxlRWxlbWVudCcpIGlzIAogUEFTUyBUcnlBbGxv
Y2F0ZSgnSFRNTFVMaXN0RWxlbWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRl
KCdIVE1MRWxlbWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQnKSBpcyAnZXhjZXB0aW9uJwotUEFTUyBUcnlBbGxvY2F0ZSgnQ2xp
cGJvYXJkJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0NvdW50ZXInKSBpcyAn
ZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTQ2hhcnNldFJ1bGUnKSBpcyAnZXhjZXB0
aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTRm9udEZhY2VSdWxlJykgaXMgJ2V4Y2VwdGlvbicK
QEAgLTg2LDYgKzg1LDcgQEAgUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTU3R5bGVSdWxlJykgaXMgJ2V4
YwogUEFTUyBUcnlBbGxvY2F0ZSgnQ1NTU3R5bGVTaGVldCcpIGlzICdleGNlcHRpb24nCiBQQVNT
IFRyeUFsbG9jYXRlKCdDU1NWYWx1ZScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRl
KCdDU1NWYWx1ZUxpc3QnKSBpcyAnZXhjZXB0aW9uJworUEFTUyBUcnlBbGxvY2F0ZSgnRGF0YVRy
YW5zZmVyJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0RPTUltcGxlbWVudGF0
aW9uJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0hUTUxDb2xsZWN0aW9uJykg
aXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ01lZGlhTGlzdCcpIGlzICdleGNlcHRp
b24nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCShy
ZXZpc2lvbiAxNjY5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3Jz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDYgQEAgdmFyIG9iamVjdHNfZXhjZXB0
aW9uID0gWwogICAgICdIVE1MVUxpc3RFbGVtZW50JywKICAgICAnSFRNTEVsZW1lbnQnLAogICAg
ICdDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnLAotICAgICdDbGlwYm9hcmQnLAogICAgICdDb3Vu
dGVyJywKICAgICAnQ1NTQ2hhcnNldFJ1bGUnLAogICAgICdDU1NGb250RmFjZVJ1bGUnLApAQCAt
OTYsNiArOTUsNyBAQCB2YXIgb2JqZWN0c19leGNlcHRpb24gPSBbCiAgICAgJ0NTU1N0eWxlU2hl
ZXQnLAogICAgICdDU1NWYWx1ZScsCiAgICAgJ0NTU1ZhbHVlTGlzdCcsCisgICAgJ0RhdGFUcmFu
c2ZlcicsCiAgICAgJ0RPTUltcGxlbWVudGF0aW9uJywKICAgICAnSFRNTENvbGxlY3Rpb24nLAog
ICAgICdNZWRpYUxpc3QnLApJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE2Njk1NykKKysrIExheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODgsMTEgKzE4OCw2IEBA
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlzdCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0Jyku
Y29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdDbGlwYm9hcmQnKS52YWx1ZSBpcyBDbGlwYm9hcmQKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnQ2xpcGJvYXJkJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykudmFsdWUgaXMgQ2xvc2VF
dmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3Nl
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCkBAIC0yNjMsNiArMjU4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdEYXRhQ3VlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdEYXRhQ3VlJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS52YWx1ZSBpcyBEYXRhVHJh
bnNmZXIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRh
VHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuY29uZmln
dXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdEZWxheU5vZGUnKS52YWx1ZSBpcyBEZWxheU5vZGUKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdEZWxheU5vZGUnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE2Njk1NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDEx
ICsxODgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3Qn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlzdCcpLmVudW1lcmFibGUgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRS
ZWN0TGlzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykudmFsdWUgaXMgQ2xpcGJvYXJkCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJv
YXJkJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLnZhbHVl
IGlzIENsb3NlRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpAQCAtMjYzLDYgKzI1OCwxMSBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFD
dWUnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykudmFsdWUg
aXMgRGF0YVRyYW5zZmVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRGF0YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuZW51bWVyYWJsZSBpcyBmYWxzZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2Zl
cicpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykudmFsdWUgaXMgRGVsYXlOb2RlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNjY5NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTE5MywxMSArMTkzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVu
dFJlY3RMaXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3QnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnQ2xpZW50UmVjdExpc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLnZhbHVlIGlzIENsaXBi
b2FyZAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBi
b2FyZCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0NsaXBib2FyZCcpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZl
bnQnKS52YWx1ZSBpcyBDbG9zZUV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Nsb3NlRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKQEAgLTI2OCw2ICsyNjMsMTEgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdEYXRhQ3VlJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2Zl
cicpLnZhbHVlIGlzIERhdGFUcmFuc2ZlcgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFU
cmFuc2ZlcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmVudW1lcmFibGUg
aXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdE
YXRhVHJhbnNmZXInKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScpLnZhbHVlIGlzIERlbGF5Tm9kZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScp
Lmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RlbGF5Tm9kZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9uL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY5NTcpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9uL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODgs
MTEgKzE4OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlz
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuZW51bWVyYWJsZSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaWVu
dFJlY3RMaXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS52YWx1ZSBpcyBDbGlwYm9hcmQKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlw
Ym9hcmQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykudmFs
dWUgaXMgQ2xvc2VFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCkBAIC0yNjMsNiArMjU4LDExIEBAIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0
YUN1ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS52YWx1
ZSBpcyBEYXRhVHJhbnNmZXIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdEYXRhVHJhbnNmZXInKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXIn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5lbnVtZXJhYmxlIGlzIGZhbHNl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5z
ZmVyJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS52YWx1ZSBpcyBEZWxheU5vZGUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdEZWxheU5vZGUnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE2Njk1NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTg4LDExICsxODgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xp
ZW50UmVjdExpc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGllbnRSZWN0TGlzdCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdDbGllbnRSZWN0TGlzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykudmFsdWUgaXMgQ2xp
cGJvYXJkCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xp
cGJvYXJkJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpcGJvYXJkJykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnQ2xpcGJvYXJkJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VF
dmVudCcpLnZhbHVlIGlzIENsb3NlRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdDbG9zZUV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VF
dmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpAQCAtMjYzLDYgKzI1OCwxMSBA
QCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0RhdGFDdWUnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YUN1ZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5z
ZmVyJykudmFsdWUgaXMgRGF0YVRyYW5zZmVyCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0
YVRyYW5zZmVyJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGF0YVRyYW5zZmVyJykuZW51bWVyYWJs
ZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0RhdGFUcmFuc2ZlcicpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykudmFsdWUgaXMgRGVsYXlOb2Rl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2Rl
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRGVsYXlOb2RlJykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY5NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEzMywxMSArMTMzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0NsaWVudFJlY3RMaXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExp
c3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnQ2xpZW50UmVjdExpc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLnZh
bHVlIGlzIENsaXBib2FyZAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0NsaXBib2FyZCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0NsaXBib2FyZCcpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdDbGlwYm9hcmQnKS5jb25maWd1
cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Nsb3NlRXZlbnQnKS52YWx1ZSBpcyBDbG9zZUV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnQ2xvc2VFdmVudCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Nsb3NlRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKQEAgLTIwMyw2
ICsxOTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdEYXRhQ3VlJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFDdWUnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0RhdGFUcmFuc2ZlcicpLnZhbHVlIGlzIERhdGFUcmFuc2ZlcgorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0RhdGFUcmFuc2ZlcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RhdGFUcmFuc2Zlcicp
LmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdEYXRhVHJhbnNmZXInKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RvY3VtZW50JykudmFsdWUgaXMg
RG9jdW1lbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdE
b2N1bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0RvY3VtZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCg==
</data>
<flag name="review"
          id="253208"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>