<?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>177983</bug_id>
          
          <creation_ts>2017-10-05 17:42:54 -0700</creation_ts>
          <short_desc>Add basic support for getting a ImageBitmapRenderingContext</short_desc>
          <delta_ts>2017-10-06 14:30:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1357356</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 17:42:54 -0700</bug_when>
    <thetext>Add basic support for getting a ImageBitmapRenderingContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357358</commentid>
    <comment_count>1</comment_count>
      <attachid>322951</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 17:48:00 -0700</bug_when>
    <thetext>Created attachment 322951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357360</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-05 17:49:08 -0700</bug_when>
    <thetext>Attachment 322951 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 13 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>1357365</commentid>
    <comment_count>3</comment_count>
      <attachid>322954</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 17:59:09 -0700</bug_when>
    <thetext>Created attachment 322954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357367</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-05 18:01:54 -0700</bug_when>
    <thetext>Attachment 322954 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 13 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>1357432</commentid>
    <comment_count>5</comment_count>
      <attachid>322979</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 20:22:57 -0700</bug_when>
    <thetext>Created attachment 322979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357433</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-05 20:24:06 -0700</bug_when>
    <thetext>Attachment 322979 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 16 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>1357442</commentid>
    <comment_count>7</comment_count>
      <attachid>322982</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 20:58:29 -0700</bug_when>
    <thetext>Created attachment 322982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357443</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-05 21:01:02 -0700</bug_when>
    <thetext>Attachment 322982 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 16 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>1357444</commentid>
    <comment_count>9</comment_count>
      <attachid>322983</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 21:10:33 -0700</bug_when>
    <thetext>Created attachment 322983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357445</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-05 21:12:00 -0700</bug_when>
    <thetext>Attachment 322983 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 16 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>1357447</commentid>
    <comment_count>11</comment_count>
      <attachid>322984</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-05 21:19:50 -0700</bug_when>
    <thetext>Created attachment 322984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357539</commentid>
    <comment_count>12</comment_count>
      <attachid>323004</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-06 02:56:46 -0700</bug_when>
    <thetext>Created attachment 323004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357553</commentid>
    <comment_count>13</comment_count>
      <attachid>323006</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-06 03:33:06 -0700</bug_when>
    <thetext>Created attachment 323006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357578</commentid>
    <comment_count>14</comment_count>
      <attachid>323015</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-06 07:35:53 -0700</bug_when>
    <thetext>Created attachment 323015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357683</commentid>
    <comment_count>15</comment_count>
      <attachid>323033</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-06 11:40:45 -0700</bug_when>
    <thetext>Created attachment 323033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357735</commentid>
    <comment_count>16</comment_count>
      <attachid>323033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-06 14:29:05 -0700</bug_when>
    <thetext>Comment on attachment 323033
Patch

Clearing flags on attachment: 323033

Committed r222997: &lt;http://trac.webkit.org/changeset/222997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357736</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-06 14:29:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357738</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-06 14:30:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/34864336&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322951</attachid>
            <date>2017-10-05 17:48:00 -0700</date>
            <delta_ts>2017-10-05 17:59:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005174759.patch</filename>
            <type>text/plain</type>
            <size>41224</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQyRD4sCisgICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4KKz47CiAKIGNsYXNzIERvY3VtZW50CiAgICAgOiBwdWJsaWMgQ29udGFpbmVyTm9k
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHJldmlz
aW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIKQEAgLTIwNSwxMSArMjA2LDEzIEBAIEhh
c2hTZXQ8RWxlbWVudCo+IEhUTUxDYW52YXNFbGVtZW50Ojpjc3MKIAogdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogeworICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCB0aHJvdyBpZiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKQogICAgIHNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nOjpudW1i
ZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRIZWlnaHQpKSk7CiB9
CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVlKQogewor
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0aHJvdyBpZiBtX2NvbnRleHQtPmlzUGxhY2Vob2xk
ZXIoKQogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBB
dG9taWNTdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVm
YXVsdFdpZHRoKSkpOwogfQogCkBAIC0yMjUsMzYgKzIyOCw4NiBAQCBzdGF0aWMgaW5saW5lIHNp
emVfdCBtYXhBY3RpdmVQaXhlbE1lbW9yCiAKIEV4Y2VwdGlvbk9yPHN0ZDo6b3B0aW9uYWw8UmVu
ZGVyaW5nQ29udGV4dD4+IEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0SWQsIFZlY3RvcjxKU0M6OlN0cm9uZzxK
U0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKLSAgICBpZiAoaXMyZFR5cGUoY29udGV4dElk
KSkgewotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4dDJkKGNvbnRleHRJZCkp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJl
ZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29udGV4dCB9IH07CisgICAgaWYgKG1f
Y29udGV4dCkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgICAg
ICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgICAgIGlmICghaXMyZFR5cGUoY29u
dGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7
ICZkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzQml0bWFwUmVuZGVyZXIoKSkgewor
ICAgICAgICAgICAgaWYgKCFpc0JpdG1hcFJlbmRlcmVyVHlwZShjb250ZXh0SWQpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpu
dWxsb3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250
ZXh0PiB7IFJlZlB0cjxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PElt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICB9CisK
KyNpZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzV2ViR0woKSkgewor
ICAgICAgICAgICAgaWYgKCFpc1dlYkdMVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07
CisgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4oKm1fY29udGV4dCkgfSB9OworI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgICAg
ICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpOworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkgfSB9OworI2VuZGlmCisgICAgICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNXZWJHUFUoKSkgeworICAgICAgICAg
ICAgaWYgKCFpc1dlYkdQVVR5cGUoY29udGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2Vi
R1BVUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkgfSB9OworICAgICAgICB9CisjZW5kaWYKKworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4
dD4geyBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKKyAgICBpZiAoaXMyZFR5cGUoY29udGV4dElk
KSkgeworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0MmQoY29udGV4dElkKTsK
KyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8
UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEPiB7IGNvbnRleHQgfSB9OworICAgIH0KKworICAgIGlmIChpc0JpdG1hcFJlbmRlcmVyVHlw
ZShjb250ZXh0SWQpKSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRCaXRt
YXBSZW5kZXJlcihjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9
OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07CisgICAgfQorCiAj
aWYgRU5BQkxFKFdFQkdMKQotICAgIGlmIChpczNkVHlwZShjb250ZXh0SWQpKSB7CisgICAgaWYg
KGlzV2ViR0xUeXBlKGNvbnRleHRJZCkpIHsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoc3RhdGUudm0oKSk7CiAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnZl
cnQ8SURMRGljdGlvbmFyeTxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPj4oc3RhdGUsICFhcmd1bWVu
dHMuaXNFbXB0eSgpID8gYXJndW1lbnRzWzBdLmdldCgpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdF
eGNlcHRpb25FcnJvciB9KTsKIAotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4
dFdlYkdMKGNvbnRleHRJZCwgV1RGTW92ZShhdHRyaWJ1dGVzKSkpIHsKLSAgICAgICAgICAgIGlm
IChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQp
IH0gfTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dFdlYkdMKGNvbnRleHRJ
ZCwgV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0
IH07CisKKyAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQ
dHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+KCpjb250ZXh0KSB9IH07CiAjaWYgRU5BQkxFKFdFQkdMMikKLSAgICAgICAgICAgIGlmIChp
czxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVy
aW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQp
IH0gfTsKKyAgICAgICAgQVNTRVJUKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0
KSk7CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ+KCpjb250ZXh0KSB9IH07CiAjZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQg
fTsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgaWYgKGlzV2ViR1BV
VHlwZShjb250ZXh0SWQpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0
V2ViR1BVKGNvbnRleHRJZCkpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7IGNvbnRleHQg
fSB9OwotICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0
ZDo6bnVsbG9wdCB9OworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0V2ViR1BV
KGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJl
bmRlcmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07CiAgICAgfQogI2VuZGlmCiAKQEAgLTI2Niwx
MyArMzE5LDE2IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KICAg
ICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4g
Z2V0Q29udGV4dDJkKHR5cGUpOwogCisgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1h
cFJlbmRlcmVyVHlwZSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGdldENvbnRleHRCaXRtYXBSZW5k
ZXJlcih0eXBlKTsKKwogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgaWYgKEhUTUxDYW52YXNFbGVt
ZW50Ojppc1dlYkdQVVR5cGUodHlwZSkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0V2Vi
R1BVKHR5cGUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKEhUTUxDYW52
YXNFbGVtZW50OjppczNkVHlwZSh0eXBlKSkKKyAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6Omlz
V2ViR0xUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4gZ2V0Q29udGV4dFdlYkdMKHR5cGUpOwog
I2VuZGlmCiAKQEAgLTI4NCw0NiArMzQwLDU0IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6Omlz
MmRUeXBlKGNvbnN0IFMKICAgICByZXR1cm4gdHlwZSA9PSAiMmQiOwogfQogCi1DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3Ry
aW5nJiB0eXBlKQorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlQ29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlRfVU5VU0VE
KEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSwgdHlwZSk7CisgICAgQVNTRVJUKCFt
X2NvbnRleHQpOwogCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAg
Ym9vbCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBmYWxzZTsKKyAgICBib29sIHVz
ZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNlOwogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKLSAgICAgICAgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZG9j
dW1lbnQoKS5zZXR0aW5ncygpLnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KCk7CisgICAgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZG9jdW1lbnQoKS5zZXR0
aW5ncygpLnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7CiAjZW5kaWYK
IAotICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRo
YW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4KLSAgICAgICAgc2l6ZV90IHJlcXVlc3RlZFBpeGVs
TWVtb3J5ID0gNCAqIHdpZHRoKCkgKiBoZWlnaHQoKTsKLSAgICAgICAgaWYgKGFjdGl2ZVBpeGVs
TWVtb3J5ICsgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPiBtYXhBY3RpdmVQaXhlbE1lbW9yeSgpKSB7
Ci0gICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2Vl
ZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmROdW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKLSAgICAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgICAgIGRv
Y3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotICAgICAgICB9CisgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3Jl
IHBpeGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCisgICAgc2l6ZV90IHJl
cXVlc3RlZFBpeGVsTWVtb3J5ID0gNCAqIHdpZHRoKCkgKiBoZWlnaHQoKTsKKyAgICBpZiAoYWN0
aXZlUGl4ZWxNZW1vcnkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVt
b3J5KCkpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2Vl
ZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOworICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7CisgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCi0gICAgICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlKTsKKyAgICBtX2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCks
IHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAKLSAgICAgICAgZG93bmNhc3Q8Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRVc2VzRGlzcGxheUxpc3REcmF3
aW5nKG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZyk7Ci0gICAgICAgIGRvd25jYXN0PENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXko
bV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSk7CisgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRVc2VzRGlzcGxheUxpc3REcmF3aW5nKG1fdXNlc0Rp
c3BsYXlMaXN0RHJhd2luZyk7CisgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlM
aXN0UmVwbGF5KTsKIAotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CiAKICNpZiBVU0Uo
SU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQotICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBj
b21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwotICAgICAgICBpbnZh
bGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisgICAgLy8gTmVlZCB0byBtYWtlIHN1
cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRo
ZSBDYW52YXMKKyAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CiAjZW5k
aWYKLSAgICB9CiAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEKj4obV9jb250ZXh0LmdldCgpKTsKIH0KIAorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAg
ICBBU1NFUlRfVU5VU0VEKEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSwgdHlwZSk7
CisKKyAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzMmQoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZUNvbnRleHQyZCh0eXBlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogI2lmIEVOQUJMRShXRUJHTCkKIHN0
YXRpYyBib29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcldlYkdMKCkKIHsKQEAg
LTM0NSw3ICs0MDksNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRFbmFibGVXZWJHTChjb25zdCBTZXR0
CiAgICAgcmV0dXJuIHNldHRpbmdzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiB9
CiAKLWJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
K2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IHsKICAgICAvLyBSZXRhaW4gc3VwcG9ydCBmb3IgdGhlIGxlZ2FjeSAid2Via2l0LTNkIiBuYW1l
LgogICAgIHJldHVybiB0eXBlID09ICJ3ZWJnbCIgfHwgdHlwZSA9PSAiZXhwZXJpbWVudGFsLXdl
YmdsIgpAQCAtMzU1LDkgKzQxOSwyOCBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlw
ZShjb25zdCBTCiAgICAgICAgIHx8IHR5cGUgPT0gIndlYmtpdC0zZCI7CiB9CiAKK1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wo
Y29uc3QgU3RyaW5nJiB0eXBlLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCit7Cisg
ICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSk7CisgICAgQVNT
RVJUKCFtX2NvbnRleHQpOworCisgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChkb2N1bWVudCgp
LnNldHRpbmdzKCkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIG1fY29udGV4dCA9
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIHR5cGUpOwor
ICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5k
ZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMK
KyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworCisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCgqdGhpcyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYg
dHlwZSwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmIGF0dHJzKQogewotICAgIEFTU0VSVChIVE1M
Q2FudmFzRWxlbWVudDo6aXMzZFR5cGUodHlwZSkpOworICAgIEFTU0VSVChIVE1MQ2FudmFzRWxl
bWVudDo6aXNXZWJHTFR5cGUodHlwZSkpOwogCiAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChk
b2N1bWVudCgpLnNldHRpbmdzKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTM2NSwx
NiArNDQ4LDggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZQogICAg
IGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXNXZWJHTCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAgIG1fY29udGV4dCA9IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIHR5cGUpOwotICAg
ICAgICBpZiAobV9jb250ZXh0KSB7Ci0gICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBh
IFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENh
bnZhcwotICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwot
Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQoKnRoaXMpOwotICAgICAgICB9Ci0gICAgfQotCisgICAgaWYgKCFtX2Nv
bnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0V2ViR0wodHlwZSwgV1RGTW92ZShh
dHRycykpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Kj4obV9jb250ZXh0LmdldCgpKTsKIH0KICNlbmRpZgpAQCAtMzg1LDYgKzQ2MCwyNSBAQCBib29s
IEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUoY29uCiAgICAgcmV0dXJuIHR5cGUgPT0g
IndlYmdwdSI7CiB9CiAKK1dlYkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUodHlwZSkpOworICAg
IEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKCp0aGlz
KTsKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEg
UmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2Fu
dmFzCisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKworICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQoKnRoaXMpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0
eXBlKQogewogICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2Vi
R1BVVHlwZSh0eXBlKSk7CkBAIC0zOTYsMTkgKzQ5MCwzNCBAQCBXZWJHUFVSZW5kZXJpbmdDb250
ZXh0KiBIVE1MQ2FudmFzRWxlbWVuCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYg
KCFtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlKCp0aGlzKTsKLSAgICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAg
Ly8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIg
Z2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHlsZUFu
ZExheWVyQ29tcG9zaXRpb24oKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAgfQot
ICAgIH0KLQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdQVSh0eXBlKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQo
KSk7CiB9CiAjZW5kaWYKIAorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJl
clR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiB0eXBlID09ICJiaXRtYXBy
ZW5kZXJlciI7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0Vs
ZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmIHR5cGUpCit7
CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5k
ZXJlclR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIG1fY29udGV4
dCA9IG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0PigqdGhpcyk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0
IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVt
ZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgaWYgKCFtX2NvbnRleHQpIHsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcih0eXBlKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0
LmdldCgpKTsKK30KKwogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCwx
MSArODAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2
ZXImKTsKICAgICBIYXNoU2V0PEVsZW1lbnQqPiBjc3NDYW52YXNDbGllbnRzKCkgY29uc3Q7CiAK
KyAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKICAg
ICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgpOyB9CiAgICAg
dW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgpOyB9CiAKLSAg
ICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CiAKQEAgLTEwNCwxNyArMTA0LDI0IEBAIHB1Ymxp
YzoKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYp
OwogCiAgICAgc3RhdGljIGJvb2wgaXMyZFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKTsK
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGdldENvbnRleHQyZChjb25zdCBTdHJpbmcm
KTsKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBzdGF0aWMgYm9vbCBpczNkVHlwZShjb25zdCBT
dHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmKTsKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjcmVhdGVDb250ZXh0V2ViR0woY29uc3QgU3Ry
aW5nJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmID0geyB9KTsKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBnZXRDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiwgV2ViR0xDb250ZXh0
QXR0cmlidXRlcyYmID0geyB9KTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3Rh
dGljIGJvb2wgaXNXZWJHUFVUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIFdlYkdQVVJlbmRlcmlu
Z0NvbnRleHQqIGNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJik7CiAgICAgV2ViR1BV
UmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmKTsKICNlbmRp
ZgogCisgICAgc3RhdGljIGJvb2wgaXNCaXRtYXBSZW5kZXJlclR5cGUoY29uc3QgU3RyaW5nJik7
CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0Qml0bWFwUmVu
ZGVyZXIoY29uc3QgU3RyaW5nJik7CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBn
ZXRDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7CisKICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
UmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVl
IHF1YWxpdHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc0dQVUJh
c2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVy
YXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQml0bWFw
UmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Bs
YWNlaG9sZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBw
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpIHt9CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQ6OkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dChIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMp
Cit7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RydWN0IFNldHRpbmdzIHsKKyAg
ICAgICAgYm9vbCBhbHBoYSA9IHRydWU7CisgICAgfTsKKworICAgIEltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNC
aXRtYXBSZW5kZXJlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRXhwb3NlZD1XaW5kb3cKK10g
aW50ZXJmYWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhczsKKyAgICAvL3ZvaWQgdHJhbnNmZXJGcm9t
SW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7Cit9OworCitkaWN0aW9uYXJ5IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzIHsKKyAgICBib29sZWFuIGFscGhhID0gdHJ1
ZTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCisgICAgOiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKK3sKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmKTsKKworcHJp
dmF0ZToKKyAgICBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Cit9OworCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322954</attachid>
            <date>2017-10-05 17:59:09 -0700</date>
            <delta_ts>2017-10-05 20:22:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005175909.patch</filename>
            <type>text/plain</type>
            <size>41222</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lv
biAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMu
aCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCkBAIC0yMDUsMTEgKzIwNiwxMyBAQCBIYXNo
U2V0PEVsZW1lbnQqPiBIVE1MQ2FudmFzRWxlbWVudDo6Y3NzCiAKIHZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1ZSkKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdGhyb3cgaWYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkKICAgICBzZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVy
KGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0SGVpZ2h0KSkpOwogfQog
CiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIHsKKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdGhyb3cgaWYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVy
KCkKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0ciwgQXRv
bWljU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1
bHRXaWR0aCkpKTsKIH0KIApAQCAtMjI1LDM2ICsyMjgsODYgQEAgc3RhdGljIGlubGluZSBzaXpl
X3QgbWF4QWN0aXZlUGl4ZWxNZW1vcgogCiBFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ0NvbnRleHQ+PiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUsIGNvbnN0IFN0cmluZyYgY29udGV4dElkLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlND
OjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7Ci0gICAgaWYgKGlzMmRUeXBlKGNvbnRleHRJZCkp
IHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRleHQyZChjb250ZXh0SWQpKQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQ
dHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7IGNvbnRleHQgfSB9OworICAgIGlmIChtX2Nv
bnRleHQpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAg
aWYgKG1fY29udGV4dC0+aXMyZCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzMmRUeXBlKGNvbnRl
eHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29u
dGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAm
ZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAg
ICAgIH0KKworICAgICAgICBpZiAobV9jb250ZXh0LT5pc0JpdG1hcFJlbmRlcmVyKCkpIHsKKyAg
ICAgICAgICAgIGlmICghaXNCaXRtYXBSZW5kZXJlclR5cGUoY29udGV4dElkKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVs
bG9wdCB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4
dD4geyBSZWZQdHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgfQorCisj
aWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdMKCkpIHsKKyAg
ICAgICAgICAgIGlmICghaXNXZWJHTFR5cGUoY29udGV4dElkKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9Owor
ICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICAgICAg
QVNTRVJUKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpt
X2NvbnRleHQpIH0gfTsKKyNlbmRpZgorICAgICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShX
RUJHUFUpCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzV2ViR1BVKCkpIHsKKyAgICAgICAgICAg
IGlmICghaXNXZWJHUFVUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQ
VVJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+KCpt
X2NvbnRleHQpIH0gfTsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+
IHsgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCisgICAgaWYgKGlzMmRUeXBlKGNvbnRleHRJZCkp
IHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dDJkKGNvbnRleHRJZCk7Cisg
ICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJl
bmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIHJldHVybiBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RD4geyBjb250ZXh0IH0gfTsKKyAgICB9CisKKyAgICBpZiAoaXNCaXRtYXBSZW5kZXJlclR5cGUo
Y29udGV4dElkKSkgeworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0Qml0bWFw
UmVuZGVyZXIoY29udGV4dElkKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiB7IGNvbnRleHQgfSB9OworICAgIH0KKwogI2lm
IEVOQUJMRShXRUJHTCkKLSAgICBpZiAoaXMzZFR5cGUoY29udGV4dElkKSkgeworICAgIGlmIChp
c1dlYkdMVHlwZShjb250ZXh0SWQpKSB7CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHN0YXRlLnZtKCkpOwogICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb252ZXJ0
PElETERpY3Rpb25hcnk8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4+KHN0YXRlLCAhYXJndW1lbnRz
LmlzRW1wdHkoKSA/IGFyZ3VtZW50c1swXS5nZXQoKSA6IEpTQzo6anNVbmRlZmluZWQoKSk7CiAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhj
ZXB0aW9uRXJyb3IgfSk7CiAKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRleHRX
ZWJHTChjb250ZXh0SWQsIFdURk1vdmUoYXR0cmlidXRlcykpKSB7Ci0gICAgICAgICAgICBpZiAo
aXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSB9
IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRXZWJHTChjb250ZXh0SWQs
IFdURk1vdmUoYXR0cmlidXRlcykpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9
OworCisgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRy
PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PigqY29udGV4dCkgfSB9OwogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgICAgICAgICBpZiAoaXM8
V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSB9
IH07CisgICAgICAgIEFTU0VSVChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkp
OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OwogI2VuZGlmCi0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07
CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIGlmIChpc1dlYkdQVVR5
cGUoY29udGV4dElkKSkgewotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4dFdl
YkdQVShjb250ZXh0SWQpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0g
fTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6
Om51bGxvcHQgfTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dFdlYkdQVShj
b250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICBy
ZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0PiB7IGNvbnRleHQgfSB9OwogICAgIH0KICNlbmRpZgogCkBAIC0yNjYsMTMg
KzMxOSwxNiBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVuCiAgICAg
aWYgKEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIGdl
dENvbnRleHQyZCh0eXBlKTsKIAorICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBS
ZW5kZXJlclR5cGUodHlwZSkpCisgICAgICAgIHJldHVybiBnZXRDb250ZXh0Qml0bWFwUmVuZGVy
ZXIodHlwZSk7CisKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIGlmIChIVE1MQ2FudmFzRWxlbWVu
dDo6aXNXZWJHUFVUeXBlKHR5cGUpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZ2V0Q29udGV4dFdlYkdQ
VSh0eXBlKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIGlmIChIVE1MQ2FudmFz
RWxlbWVudDo6aXMzZFR5cGUodHlwZSkpCisgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50Ojppc1dl
YkdMVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIGdldENvbnRleHRXZWJHTCh0eXBlKTsKICNl
bmRpZgogCkBAIC0yODQsNDYgKzM0MCw1NCBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjppczJk
VHlwZShjb25zdCBTCiAgICAgcmV0dXJuIHR5cGUgPT0gIjJkIjsKIH0KIAotQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dDJkKGNvbnN0IFN0cmlu
ZyYgdHlwZSkKK0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmNy
ZWF0ZUNvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChI
VE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSksIHR5cGUpOworICAgIEFTU0VSVCghbV9j
b250ZXh0KTsKIAotICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgpKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAgIGJv
b2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CisgICAgYm9vbCB1c2Vz
RGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBmYWxzZTsKICNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCi0gICAgICAgIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS51c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgp
OworICAgIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS51c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwogI2VuZGlmCiAK
LSAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVsIG1lbW9yeSB0aGFu
IHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCi0gICAgICAgIHNpemVfdCByZXF1ZXN0ZWRQaXhlbE1l
bW9yeSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0KCk7Ci0gICAgICAgIGlmIChhY3RpdmVQaXhlbE1l
bW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgewot
ICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwotICAgICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRz
IHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKLSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7Ci0gICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgICAgICBkb2N1
bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAgICAgfQorICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBw
aXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgorICAgIHNpemVfdCByZXF1
ZXN0ZWRQaXhlbE1lbW9yeSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0KCk7CisgICAgaWYgKGFjdGl2
ZVBpeGVsTWVtb3J5ICsgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPiBtYXhBY3RpdmVQaXhlbE1lbW9y
eSgpKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRz
IHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1i
ZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKKyAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOworICAgICAgICBkb2N1bWVudCgpLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
IAotICAgICAgICBtX2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4oKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYm9hcmRD
b21wYXRpYmlsaXR5TW9kZSk7CisgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1
c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogCi0gICAgICAgIGRvd25jYXN0PENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2lu
ZyhtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpOwotICAgICAgICBkb3duY2FzdDxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1f
dHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOworICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4oKm1fY29udGV4dCkuc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhtX3VzZXNEaXNw
bGF5TGlzdERyYXdpbmcpOworICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4o
Km1fY29udGV4dCkuc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90cmFja3NEaXNwbGF5TGlz
dFJlcGxheSk7CiAKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVD
YW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOwogCiAjaWYgVVNFKElP
U1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NB
TlZBUykKLSAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29t
cG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgaW52YWxp
ZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJl
IGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUg
Q2FudmFzCisgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogI2VuZGlm
Ci0gICAgfQogCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCo+KG1fY29udGV4dC5nZXQoKSk7CiB9CiAKK0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRN
TENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
QVNTRVJUX1VOVVNFRChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSksIHR5cGUpOwor
CisgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVD
b250ZXh0MmQodHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKICNpZiBFTkFCTEUoV0VCR0wpCiBzdGF0
aWMgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JXZWJHTCgpCiB7CkBAIC0z
NDUsNyArNDA5LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxlV2ViR0woY29uc3QgU2V0dAog
ICAgIHJldHVybiBzZXR0aW5ncy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQog
Ci1ib29sIEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiti
b29sIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7
CiAgICAgLy8gUmV0YWluIHN1cHBvcnQgZm9yIHRoZSBsZWdhY3kgIndlYmtpdC0zZCIgbmFtZS4K
ICAgICByZXR1cm4gdHlwZSA9PSAid2ViZ2wiIHx8IHR5cGUgPT0gImV4cGVyaW1lbnRhbC13ZWJn
bCIKQEAgLTM1NSw5ICs0MTksMjggQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUo
Y29uc3QgUwogICAgICAgICB8fCB0eXBlID09ICJ3ZWJraXQtM2QiOwogfQogCitXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKGNv
bnN0IFN0cmluZyYgdHlwZSwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmIGF0dHJzKQoreworICAg
IEFTU0VSVChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUodHlwZSkpOworICAgIEFTU0VS
VCghbV9jb250ZXh0KTsKKworICAgIGlmICghc2hvdWxkRW5hYmxlV2ViR0woZG9jdW1lbnQoKS5z
ZXR0aW5ncygpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBtX2NvbnRleHQgPSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKKyAg
ICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVy
TGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCisg
ICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKworICAgICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQo
KnRoaXMpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmIHR5
cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKIHsKLSAgICBBU1NFUlQoSFRNTENh
bnZhc0VsZW1lbnQ6OmlzM2RUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1l
bnQ6OmlzV2ViR0xUeXBlKHR5cGUpKTsKIAogICAgIGlmICghc2hvdWxkRW5hYmxlV2ViR0woZG9j
dW1lbnQoKS5zZXR0aW5ncygpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zNjUsMTYg
KzQ0OCw4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGUKICAgICBp
ZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzV2ViR0woKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQgPSBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKLSAgICAg
ICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBS
ZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52
YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKLQot
ICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5k
ZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAgfQotICAgIH0KLQorICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdMKHR5cGUsIFdURk1vdmUoYXR0
cnMpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+
KG1fY29udGV4dC5nZXQoKSk7CiB9CiAjZW5kaWYKQEAgLTM4NSw2ICs0NjAsMjUgQEAgYm9vbCBI
VE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKGNvbgogICAgIHJldHVybiB0eXBlID09ICJ3
ZWJncHUiOwogfQogCitXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlQ29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VO
VVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpKTsKKyAgICBB
U1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIG1fY29udGV4dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSgqdGhpcyk7
CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJl
bmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZh
cworICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250
ZXh0KCp0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVy
aW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdQ
VVR5cGUodHlwZSkpOwpAQCAtMzk2LDE5ICs0OTAsMzQgQEAgV2ViR1BVUmVuZGVyaW5nQ29udGV4
dCogSFRNTENhbnZhc0VsZW1lbgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICgh
bV9jb250ZXh0KSB7Ci0gICAgICAgIG1fY29udGV4dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6
OmNyZWF0ZSgqdGhpcyk7Ci0gICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8v
IE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdl
dCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRM
YXllckNvbXBvc2l0aW9uKCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHUFUodHlwZSk7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkp
OwogfQogI2VuZGlmCiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJU
eXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICByZXR1cm4gdHlwZSA9PSAiYml0bWFwcmVu
ZGVyZXIiOworfQorCitJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVt
ZW50OjpjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJiB0eXBlKQorewor
ICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVy
ZXJUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBtX2NvbnRleHQg
PSBtX2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dD4oKnRoaXMpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBT
dHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVu
dDo6aXNCaXRtYXBSZW5kZXJlclR5cGUodHlwZSkpOworICAgIGlmICghbV9jb250ZXh0KSB7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIodHlwZSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5n
ZXQoKSk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODAsMTEg
KzgwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKENhbnZhc09ic2VydmVy
Jik7CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gY3NzQ2FudmFzQ2xpZW50cygpIGNvbnN0OwogCisg
ICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCiAgICAg
dW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBzaXplKCkud2lkdGgoKTsgfQogICAgIHVu
c2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS5oZWlnaHQoKTsgfQogCi0gICAg
Y29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQotCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRIZWlnaHQodW5zaWduZWQpOwogCkBAIC0xMDQsMTcgKzEwNCwyNCBAQCBwdWJsaWM6
CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dChjb25zdCBTdHJpbmcmKTsK
IAogICAgIHN0YXRpYyBib29sIGlzMmRUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCogY3JlYXRlQ29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAg
ICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5nJik7
CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgc3RhdGljIGJvb2wgaXMzZFR5cGUoY29uc3QgU3Ry
aW5nJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogY3JlYXRlQ29udGV4dFdlYkdMKGNvbnN0IFN0cmlu
ZyYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAgICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSogZ2V0Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYsIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMmJiA9IHsgfSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIHN0YXRp
YyBib29sIGlzV2ViR1BVVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBXZWJHUFVSZW5kZXJpbmdD
b250ZXh0KiBjcmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYpOwogICAgIFdlYkdQVVJl
bmRlcmluZ0NvbnRleHQqIGdldENvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYK
IAorICAgIHN0YXRpYyBib29sIGlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnN0IFN0cmluZyYpOwor
ICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogY3JlYXRlQ29udGV4dEJpdG1hcFJlbmRl
cmVyKGNvbnN0IFN0cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogZ2V0
Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworCiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0
aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBx
dWFsaXR5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAt
NTgsNiArNTgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNHUFVCYXNl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0JpdG1hcFJl
bmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGFj
ZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7fQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0OjpJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZh
c0VsZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQor
eworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0cnVjdCBTZXR0aW5ncyB7CisgICAg
ICAgIGJvb2wgYWxwaGEgPSB0cnVlOworICAgIH07CisKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzQml0
bWFwUmVuZGVyZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cit9OworCit9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEV4cG9zZWQ9V2luZG93CitdIGlu
dGVyZmFjZSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisgICAgLy92b2lkIHRyYW5zZmVyRnJvbUlt
YWdlQml0bWFwKEltYWdlQml0bWFwPyBiaXRtYXApOworfTsKKworZGljdGlvbmFyeSBJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyB7CisgICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7
Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OlBsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQorICAgIDogQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dChjYW52YXMpCit7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAg
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50Jik7CisKK3ByaXZh
dGU6CisgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQorfTsKKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322979</attachid>
            <date>2017-10-05 20:22:57 -0700</date>
            <delta_ts>2017-10-05 20:58:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005202256.patch</filename>
            <type>text/plain</type>
            <size>43138</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiSGFz
aENoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RS
ZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QCB0eXBlZGVmICgKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUK
ICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgb3IgCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJp
bmdDb250ZXh0OwogCiBbCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgpAQCAtMjA1LDEx
ICsyMDYsMTMgQEAgSGFzaFNldDxFbGVtZW50Kj4gSFRNTENhbnZhc0VsZW1lbnQ6OmNzcwogCiB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigp
CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9t
aWNTdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVs
dEhlaWdodCkpKTsKIH0KIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWdu
ZWQgdmFsdWUpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4
dC0+aXNQbGFjZWhvbGRlcigpCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih3aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0
aXZlKHZhbHVlLCBkZWZhdWx0V2lkdGgpKSk7CiB9CiAKQEAgLTIyNSwzNiArMjI4LDg2IEBAIHN0
YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFjdGl2ZVBpeGVsTWVtb3IKIAogRXhjZXB0aW9uT3I8c3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0Pj4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRJZCwgVmVjdG9y
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0
MmQoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0g
fTsKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzUGxhY2Vo
b2xkZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkgeworICAgICAgICAgICAgaWYg
KCFpczJkVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29u
dGV4dCkgfSB9OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNCaXRtYXBS
ZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoIWlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRl
eHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29u
dGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4g
eyAmZG93bmNhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07
CisgICAgICAgIH0KKworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+
aXNXZWJHTCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR0xUeXBlKGNvbnRleHRJZCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBz
dGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCptX2NvbnRleHQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdM
MikKKyAgICAgICAgICAgIEFTU0VSVChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdQVSgp
KSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR1BVVHlwZShjb250ZXh0SWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxs
b3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKyNlbmRpZgorCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAorICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHQy
ZChjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29udGV4dCB9IH07CisgICAgfQorCisgICAgaWYgKGlzQml0
bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3Jl
YXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsg
c3RkOjpudWxsb3B0IH07CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0Nv
bnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0g
fTsKKyAgICB9CisKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKGlzM2RUeXBlKGNvbnRleHRJ
ZCkpIHsKKyAgICBpZiAoaXNXZWJHTFR5cGUoY29udGV4dElkKSkgewogICAgICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKICAgICAgICAgYXV0byBhdHRy
aWJ1dGVzID0gY29udmVydDxJRExEaWN0aW9uYXJ5PFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+Pihz
dGF0ZSwgIWFyZ3VtZW50cy5pc0VtcHR5KCkgPyBhcmd1bWVudHNbMF0uZ2V0KCkgOiBKU0M6Ompz
VW5kZWZpbmVkKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRp
b24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogCi0gICAgICAgIGlmIChhdXRvIGNvbnRl
eHQgPSBnZXRDb250ZXh0V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKSkgewot
ICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0
V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4g
eyBzdGQ6Om51bGxvcHQgfTsKKworICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PigqY29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAg
ICAgICAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dD4oKmNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
Q29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNlbmRpZgotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAg
ICBpZiAoaXNXZWJHUFVUeXBlKGNvbnRleHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4
dCA9IGdldENvbnRleHRXZWJHUFUoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQ+IHsgY29udGV4dCB9IH07Ci0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0
ZUNvbnRleHRXZWJHUFUoY29udGV4dElkKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxv
cHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKICAgICB9CiAjZW5k
aWYKIApAQCAtMjY2LDEzICszMTksMTYgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENh
bnZhc0VsZW1lbgogICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSkpCiAg
ICAgICAgIHJldHVybiBnZXRDb250ZXh0MmQodHlwZSk7CiAKKyAgICBpZiAoSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJUeXBlKHR5cGUpKQorICAgICAgICByZXR1cm4gZ2V0Q29u
dGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUpOworCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAo
SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZSh0eXBlKSAmJiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
IGdldENvbnRleHRXZWJHUFUodHlwZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAg
ICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKHR5cGUpKQorICAgIGlmIChIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNXZWJHTFR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0
V2ViR0wodHlwZSk7CiAjZW5kaWYKIApAQCAtMjg0LDQ2ICszNDAsNTQgQEAgYm9vbCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aXMyZFR5cGUoY29uc3QgUwogICAgIHJldHVybiB0eXBlID09ICIyZCI7CiB9
CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAg
IEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsK
KyAgICBBU1NFUlQoIW1fY29udGV4dCk7CiAKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRl
eHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fY29udGV4
dCkgewotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNl
OworICAgIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgICAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKKyAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBk
b2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoKTsKICNlbmRpZgogCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBw
aXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgotICAgICAgICBzaXplX3Qg
cmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgpOwotICAgICAgICBp
ZiAoYWN0aXZlUGl4ZWxNZW1vcnkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBp
eGVsTWVtb3J5KCkpIHsKLSAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsK
LSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7Ci0gICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEw
MjQpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgd2Ug
ZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4K
KyAgICBzaXplX3QgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgp
OworICAgIGlmIChhY3RpdmVQaXhlbE1lbW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4
QWN0aXZlUGl4ZWxNZW1vcnkoKSkgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxk
ZXI7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CisgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7
CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAKLSAgICAgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgp
LCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOworICAgIG1fY29udGV4dCA9IHN0ZDo6
bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKIAotICAgICAg
ICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKLSAgICAgICAgZG93
bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNw
bGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTsKKyAgICBkb3duY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERy
YXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1f
dHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlz
KTsKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShB
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0gICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVu
ZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFz
Ci0gICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAvLyBO
ZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQg
Y3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9z
aXRpb24oKTsKICNlbmRpZgotICAgIH0KIAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogCitDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5n
JiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBl
KHR5cGUpLCB0eXBlKTsKKworICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV9jb250ZXh0KQorICAgICAg
ICByZXR1cm4gY3JlYXRlQ29udGV4dDJkKHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiAjaWYgRU5B
QkxFKFdFQkdMKQogc3RhdGljIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
V2ViR0woKQogewpAQCAtMzQ1LDcgKzQwOSw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZVdl
YkdMKGNvbnN0IFNldHQKICAgICByZXR1cm4gc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoKTsKIH0KIAotYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogewogICAgIC8vIFJldGFpbiBzdXBwb3J0IGZvciB0aGUgbGVnYWN5ICJ3
ZWJraXQtM2QiIG5hbWUuCiAgICAgcmV0dXJuIHR5cGUgPT0gIndlYmdsIiB8fCB0eXBlID09ICJl
eHBlcmltZW50YWwtd2ViZ2wiCkBAIC0zNTUsOSArNDE5LDI4IEBAIGJvb2wgSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFMKICAgICAgICAgfHwgdHlwZSA9PSAid2Via2l0LTNkIjsK
IH0KIAorV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0
ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMm
JiBhdHRycykKK3sKKyAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5
cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBpZiAoIXNob3VsZEVuYWJsZVdl
YkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBh
dHRycywgdHlwZSk7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1h
a2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBm
b3IgdGhlIENhbnZhcworICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9u
KCk7CisKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR0wo
Y29uc3QgU3RyaW5nJiB0eXBlLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCiB7Ci0g
ICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZSh0eXBlKSk7CisgICAgQVNTRVJU
KEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSk7CiAKICAgICBpZiAoIXNob3Vs
ZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMzY1LDE2ICs0NDgsOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1M
Q2FudmFzRWxlCiAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pc1dlYkdMKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAg
bV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRy
cywgdHlwZSk7Ci0gICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQg
dG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVh
dGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNv
bXBvc2l0aW9uKCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
KyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHTCh0
eXBlLCBXVEZNb3ZlKGF0dHJzKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC0zODUsNiAr
NDYwLDI1IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZShjb24KICAgICBy
ZXR1cm4gdHlwZSA9PSAid2ViZ3B1IjsKIH0KIAorV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlw
ZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOworCisgICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBtX2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGUoKnRoaXMpOworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0
byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0
ZWQgZm9yIHRoZSBDYW52YXMKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3Np
dGlvbigpOworCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJH
UFVSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVShj
b25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFz
RWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpKTsKQEAgLTM5NiwxOSArNDkwLDM0IEBAIFdlYkdQ
VVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQgPSBXZWJHUFVS
ZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoKnRoaXMpOwotICAgICAgICBpZiAobV9jb250ZXh0KSB7
Ci0gICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21w
b3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwotICAgICAgICAgICAgaW52
YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwotCi0gICAgICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMp
OwotICAgICAgICB9Ci0gICAgfQotCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0V2ViR1BV
KHR5cGUpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHUFVSZW5kZXJpbmdDb250ZXh0Kj4o
bV9jb250ZXh0LmdldCgpKTsKIH0KICNlbmRpZgogCitib29sIEhUTUxDYW52YXNFbGVtZW50Ojpp
c0JpdG1hcFJlbmRlcmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHR5
cGUgPT0gImJpdG1hcHJlbmRlcmVyIjsKK30KKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0
cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50
Ojppc0JpdG1hcFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOwor
CisgICAgbV9jb250ZXh0ID0gbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCitJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0Qml0bWFw
UmVuZGVyZXIoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwg
SFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJUeXBlKHR5cGUpKTsKKyAgICBpZiAo
IW1fY29udGV4dCkgeworICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVy
KHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpkaWRE
cmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCShyZXZpc2lvbiAyMjI5
NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgwLDExICs4MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVPYnNlcnZl
cihDYW52YXNPYnNlcnZlciYpOwogICAgIEhhc2hTZXQ8RWxlbWVudCo+IGNzc0NhbnZhc0NsaWVu
dHMoKSBjb25zdDsKIAorICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KKwogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLndp
ZHRoKCk7IH0KICAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXplKCkuaGVp
Z2h0KCk7IH0KIAotICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3Np
emU7IH0KLQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2lkdGgodW5zaWduZWQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkKTsKIApAQCAtMTA0LDE3ICsx
MDQsMjQgQEAgcHVibGljOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHQo
Y29uc3QgU3RyaW5nJik7CiAKICAgICBzdGF0aWMgYm9vbCBpczJkVHlwZShjb25zdCBTdHJpbmcm
KTsKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNyZWF0ZUNvbnRleHQyZChjb25zdCBT
dHJpbmcmIHR5cGUpOwogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogZ2V0Q29udGV4dDJk
KGNvbnN0IFN0cmluZyYpOwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHN0YXRpYyBib29sIGlz
M2RUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGlzV2ViR0xUeXBlKGNvbnN0
IFN0cmluZyYpOworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNyZWF0ZUNvbnRleHRX
ZWJHTChjb25zdCBTdHJpbmcmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgPSB7IH0pOwogICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGdldENvbnRleHRXZWJHTChjb25zdCBTdHJpbmcm
LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgPSB7IH0pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdF
QkdQVSkKICAgICBzdGF0aWMgYm9vbCBpc1dlYkdQVVR5cGUoY29uc3QgU3RyaW5nJik7CisgICAg
V2ViR1BVUmVuZGVyaW5nQ29udGV4dCogY3JlYXRlQ29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcm
KTsKICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0V2ViR1BVKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpc0JpdG1hcFJlbmRlcmVyVHlwZShj
b25zdCBTdHJpbmcmKTsKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIGNyZWF0ZUNv
bnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKKyAgICBJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQqIGdldENvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKKwog
ICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkpOwogICAgIFdFQkNP
UkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdG9CbG9iKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmlkbAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDE3ICsyNCwxOCBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotIHR5cGVkZWYgKAotICNpZiBkZWZpbmVkKEVOQUJM
RV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdMCi0gICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvcgot
ICNlbmRpZgotICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTDIpICYmIEVOQUJMRV9XRUJHTDIKLSAg
ICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBvcgotICNlbmRpZgotICNpZiBkZWZpbmVkKEVOQUJM
RV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUKLSAgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCBv
cgotICNlbmRpZgotICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJlbmRlcmluZ0NvbnRl
eHQ7Cit0eXBlZGVmICgKKyNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdM
CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yCisjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJM
RV9XRUJHTDIpICYmIEVOQUJMRV9XRUJHTDIKKyAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IG9y
CisjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUKKyAg
ICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCisjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQgb3IgCisgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJpbmdD
b250ZXh0OwogCiBbCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAko
cmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoK
ICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc0dQVUJhc2VkKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQml0bWFwUmVuZGVyZXIoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcygpIHt9CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgeyByZXR1cm4gMDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ6Oklt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQorICAg
IDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCit7Cit9CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7Citw
dWJsaWM6CisgICAgc3RydWN0IFNldHRpbmdzIHsKKyAgICAgICAgYm9vbCBhbHBoYSA9IHRydWU7
CisgICAgfTsKKworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxl
bWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52YXNFbGVtZW50
IGNhbnZhczsKKyAgICAvL3ZvaWQgdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/
IGJpdG1hcCk7Cit9OworCitkaWN0aW9uYXJ5IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNl
dHRpbmdzIHsKKyAgICBib29sZWFuIGFscGhhID0gdHJ1ZTsKK307CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52
YXNFbGVtZW50JiBjYW52YXMpCisgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykK
K3sKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52
YXNSZW5kZXJpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQoSFRNTENhbnZhc0VsZW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzUGxhY2Vo
b2xkZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cit9OworCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322982</attachid>
            <date>2017-10-05 20:58:29 -0700</date>
            <delta_ts>2017-10-05 21:10:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005205828.patch</filename>
            <type>text/plain</type>
            <size>43203</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiSGFz
aENoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RS
ZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QCB0eXBlZGVmICgKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUK
ICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgb3IgCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJp
bmdDb250ZXh0OwogCiBbCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgpAQCAtMjA1LDEx
ICsyMDYsMTMgQEAgSGFzaFNldDxFbGVtZW50Kj4gSFRNTENhbnZhc0VsZW1lbnQ6OmNzcwogCiB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigp
CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9t
aWNTdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVs
dEhlaWdodCkpKTsKIH0KIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWdu
ZWQgdmFsdWUpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4
dC0+aXNQbGFjZWhvbGRlcigpCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih3aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0
aXZlKHZhbHVlLCBkZWZhdWx0V2lkdGgpKSk7CiB9CiAKQEAgLTIyNSwzNiArMjI4LDg2IEBAIHN0
YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFjdGl2ZVBpeGVsTWVtb3IKIAogRXhjZXB0aW9uT3I8c3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0Pj4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRJZCwgVmVjdG9y
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0
MmQoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0g
fTsKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzUGxhY2Vo
b2xkZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkgeworICAgICAgICAgICAgaWYg
KCFpczJkVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29u
dGV4dCkgfSB9OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNCaXRtYXBS
ZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoIWlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRl
eHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29u
dGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4g
eyAmZG93bmNhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07
CisgICAgICAgIH0KKworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+
aXNXZWJHTCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR0xUeXBlKGNvbnRleHRJZCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBz
dGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCptX2NvbnRleHQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdM
MikKKyAgICAgICAgICAgIEFTU0VSVChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdQVSgp
KSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR1BVVHlwZShjb250ZXh0SWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxs
b3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKyNlbmRpZgorCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAorICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHQy
ZChjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29udGV4dCB9IH07CisgICAgfQorCisgICAgaWYgKGlzQml0
bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3Jl
YXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsg
c3RkOjpudWxsb3B0IH07CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0Nv
bnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0g
fTsKKyAgICB9CisKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKGlzM2RUeXBlKGNvbnRleHRJ
ZCkpIHsKKyAgICBpZiAoaXNXZWJHTFR5cGUoY29udGV4dElkKSkgewogICAgICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKICAgICAgICAgYXV0byBhdHRy
aWJ1dGVzID0gY29udmVydDxJRExEaWN0aW9uYXJ5PFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+Pihz
dGF0ZSwgIWFyZ3VtZW50cy5pc0VtcHR5KCkgPyBhcmd1bWVudHNbMF0uZ2V0KCkgOiBKU0M6Ompz
VW5kZWZpbmVkKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRp
b24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogCi0gICAgICAgIGlmIChhdXRvIGNvbnRl
eHQgPSBnZXRDb250ZXh0V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKSkgewot
ICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0
V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4g
eyBzdGQ6Om51bGxvcHQgfTsKKworICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PigqY29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAg
ICAgICAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dD4oKmNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
Q29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNlbmRpZgotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAg
ICBpZiAoaXNXZWJHUFVUeXBlKGNvbnRleHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4
dCA9IGdldENvbnRleHRXZWJHUFUoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQ+IHsgY29udGV4dCB9IH07Ci0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0
ZUNvbnRleHRXZWJHUFUoY29udGV4dElkKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxv
cHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKICAgICB9CiAjZW5k
aWYKIApAQCAtMjY2LDEzICszMTksMTYgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENh
bnZhc0VsZW1lbgogICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSkpCiAg
ICAgICAgIHJldHVybiBnZXRDb250ZXh0MmQodHlwZSk7CiAKKyAgICBpZiAoSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJUeXBlKHR5cGUpKQorICAgICAgICByZXR1cm4gZ2V0Q29u
dGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUpOworCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAo
SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZSh0eXBlKSAmJiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
IGdldENvbnRleHRXZWJHUFUodHlwZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAg
ICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKHR5cGUpKQorICAgIGlmIChIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNXZWJHTFR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0
V2ViR0wodHlwZSk7CiAjZW5kaWYKIApAQCAtMjg0LDQ2ICszNDAsNTQgQEAgYm9vbCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aXMyZFR5cGUoY29uc3QgUwogICAgIHJldHVybiB0eXBlID09ICIyZCI7CiB9
CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAg
IEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsK
KyAgICBBU1NFUlQoIW1fY29udGV4dCk7CiAKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRl
eHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fY29udGV4
dCkgewotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNl
OworICAgIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgICAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKKyAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBk
b2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoKTsKICNlbmRpZgogCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBw
aXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgotICAgICAgICBzaXplX3Qg
cmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgpOwotICAgICAgICBp
ZiAoYWN0aXZlUGl4ZWxNZW1vcnkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBp
eGVsTWVtb3J5KCkpIHsKLSAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsK
LSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7Ci0gICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEw
MjQpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgd2Ug
ZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4K
KyAgICBzaXplX3QgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgp
OworICAgIGlmIChhY3RpdmVQaXhlbE1lbW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4
QWN0aXZlUGl4ZWxNZW1vcnkoKSkgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxk
ZXI7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CisgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7
CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAKLSAgICAgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgp
LCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOworICAgIG1fY29udGV4dCA9IHN0ZDo6
bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKIAotICAgICAg
ICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKLSAgICAgICAgZG93
bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNw
bGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTsKKyAgICBkb3duY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERy
YXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1f
dHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlz
KTsKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShB
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0gICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVu
ZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFz
Ci0gICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAvLyBO
ZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQg
Y3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9z
aXRpb24oKTsKICNlbmRpZgotICAgIH0KIAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogCitDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5n
JiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBl
KHR5cGUpLCB0eXBlKTsKKworICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV9jb250ZXh0KQorICAgICAg
ICByZXR1cm4gY3JlYXRlQ29udGV4dDJkKHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiAjaWYgRU5B
QkxFKFdFQkdMKQogc3RhdGljIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
V2ViR0woKQogewpAQCAtMzQ1LDcgKzQwOSw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZVdl
YkdMKGNvbnN0IFNldHQKICAgICByZXR1cm4gc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoKTsKIH0KIAotYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogewogICAgIC8vIFJldGFpbiBzdXBwb3J0IGZvciB0aGUgbGVnYWN5ICJ3
ZWJraXQtM2QiIG5hbWUuCiAgICAgcmV0dXJuIHR5cGUgPT0gIndlYmdsIiB8fCB0eXBlID09ICJl
eHBlcmltZW50YWwtd2ViZ2wiCkBAIC0zNTUsOSArNDE5LDI4IEBAIGJvb2wgSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFMKICAgICAgICAgfHwgdHlwZSA9PSAid2Via2l0LTNkIjsK
IH0KIAorV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0
ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMm
JiBhdHRycykKK3sKKyAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5
cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBpZiAoIXNob3VsZEVuYWJsZVdl
YkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBh
dHRycywgdHlwZSk7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1h
a2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBm
b3IgdGhlIENhbnZhcworICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9u
KCk7CisKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR0wo
Y29uc3QgU3RyaW5nJiB0eXBlLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCiB7Ci0g
ICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZSh0eXBlKSk7CisgICAgQVNTRVJU
KEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSk7CiAKICAgICBpZiAoIXNob3Vs
ZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMzY1LDE2ICs0NDgsOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1M
Q2FudmFzRWxlCiAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pc1dlYkdMKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAg
bV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRy
cywgdHlwZSk7Ci0gICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQg
dG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVh
dGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNv
bXBvc2l0aW9uKCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
KyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHTCh0
eXBlLCBXVEZNb3ZlKGF0dHJzKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC0zODUsNiAr
NDYwLDI1IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZShjb24KICAgICBy
ZXR1cm4gdHlwZSA9PSAid2ViZ3B1IjsKIH0KIAorV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlw
ZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOworCisgICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBtX2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGUoKnRoaXMpOworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0
byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0
ZWQgZm9yIHRoZSBDYW52YXMKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3Np
dGlvbigpOworCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJH
UFVSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVShj
b25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFz
RWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpKTsKQEAgLTM5NSwyMCArNDg5LDM1IEBAIFdlYkdQ
VVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KICAgICBpZiAobV9jb250ZXh0ICYm
ICFtX2NvbnRleHQtPmlzV2ViR1BVKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dDo6Y3JlYXRlKCp0aGlzKTsKLSAgICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAg
ICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5
ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAg
fQotICAgIH0KLQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29u
dGV4dFdlYkdQVSh0eXBlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5n
Q29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7CiB9CiAjZW5kaWYKIAorYm9vbCBIVE1MQ2FudmFz
RWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAg
IHJldHVybiB0eXBlID09ICJiaXRtYXByZW5kZXJlciI7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJl
cihjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9j
b250ZXh0KTsKKworICAgIG1fY29udGV4dCA9IG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30K
KworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29u
dGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZSh0eXBlKSk7
CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0Qml0bWFw
UmVuZGVyZXIodHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGNsZWFyQ29waWVkSW1h
Z2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlz
aW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtODAsMTEgKzgwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92
ZU9ic2VydmVyKENhbnZhc09ic2VydmVyJik7CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gY3NzQ2Fu
dmFzQ2xpZW50cygpIGNvbnN0OwogCisgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZTsgfQorCiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBz
aXplKCkud2lkdGgoKTsgfQogICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHNp
emUoKS5oZWlnaHQoKTsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRXaWR0aCh1bnNpZ25l
ZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIZWlnaHQodW5zaWduZWQpOwogCkBAIC0x
MDQsMTcgKzEwNCwyNCBAQCBwdWJsaWM6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogZ2V0
Q29udGV4dChjb25zdCBTdHJpbmcmKTsKIAogICAgIHN0YXRpYyBib29sIGlzMmRUeXBlKGNvbnN0
IFN0cmluZyYpOworICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogY3JlYXRlQ29udGV4dDJk
KGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBnZXRD
b250ZXh0MmQoY29uc3QgU3RyaW5nJik7CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgc3RhdGlj
IGJvb2wgaXMzZFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFR5
cGUoY29uc3QgU3RyaW5nJik7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogY3JlYXRl
Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsg
fSk7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogZ2V0Q29udGV4dFdlYkdMKGNvbnN0
IFN0cmluZyYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAjZW5kaWYKICNpZiBF
TkFCTEUoV0VCR1BVKQogICAgIHN0YXRpYyBib29sIGlzV2ViR1BVVHlwZShjb25zdCBTdHJpbmcm
KTsKKyAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0
IFN0cmluZyYpOwogICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHRXZWJHUFUo
Y29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGlzQml0bWFwUmVuZGVy
ZXJUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCog
Y3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworICAgIEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmlu
ZyYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRv
RGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTcg
KzI0LDE4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0gdHlwZWRlZiAoCi0gI2lmIGRlZmlu
ZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKLSAgICAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IG9yCi0gI2VuZGlmCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMMikgJiYgRU5BQkxFX1dF
QkdMMgotICAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2VuZGlmCi0gI2lmIGRlZmlu
ZWQoRU5BQkxFX1dFQkdQVSkgJiYgRU5BQkxFX1dFQkdQVQotICAgICBXZWJHUFVSZW5kZXJpbmdD
b250ZXh0IG9yCi0gI2VuZGlmCi0gICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgUmVuZGVy
aW5nQ29udGV4dDsKK3R5cGVkZWYgKAorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFC
TEVfV0VCR0wKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorI2lmIGRlZmlu
ZWQoRU5BQkxFX1dFQkdMMikgJiYgRU5BQkxFX1dFQkdMMgorICAgIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQgb3IKKyNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdQVSkgJiYgRU5BQkxFX1dF
QkdQVQorICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorICAgIEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dCBvciAKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJl
bmRlcmluZ0NvbnRleHQ7CiAKIFsKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAg
cHVibGljOgogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlzR1BVQmFzZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVuZGVyaW5nUmVz
dWx0c1RvQ2FudmFzKCkge30KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dDo6SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52
YXMpCisgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKK3sKK30KKworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250
ZXh0IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgU2V0dGluZ3MgeworICAgICAgICBib29sIGFscGhh
ID0gdHJ1ZTsKKyAgICB9OworCisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxD
YW52YXNFbGVtZW50Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0JpdG1hcFJlbmRlcmVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuaWRsCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZh
c0VsZW1lbnQgY2FudmFzOworICAgIC8vdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChJbWFn
ZUJpdG1hcD8gYml0bWFwKTsKK307CisKK2RpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0U2V0dGluZ3MgeworICAgIGJvb2xlYW4gYWxwaGEgPSB0cnVlOworfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQo
Y2FudmFzKQoreworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFj
ZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVi
bGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIFBsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wg
aXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322983</attachid>
            <date>2017-10-05 21:10:33 -0700</date>
            <delta_ts>2017-10-05 21:19:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005211032.patch</filename>
            <type>text/plain</type>
            <size>43191</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiSGFz
aENoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RS
ZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QCB0eXBlZGVmICgKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUK
ICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgb3IgCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJp
bmdDb250ZXh0OwogCiBbCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgpAQCAtMjA1LDEx
ICsyMDYsMTMgQEAgSGFzaFNldDxFbGVtZW50Kj4gSFRNTENhbnZhc0VsZW1lbnQ6OmNzcwogCiB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigp
CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9t
aWNTdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVs
dEhlaWdodCkpKTsKIH0KIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWdu
ZWQgdmFsdWUpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRocm93IGlmIG1fY29udGV4
dC0+aXNQbGFjZWhvbGRlcigpCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih3aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0
aXZlKHZhbHVlLCBkZWZhdWx0V2lkdGgpKSk7CiB9CiAKQEAgLTIyNSwzNiArMjI4LDg2IEBAIHN0
YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFjdGl2ZVBpeGVsTWVtb3IKIAogRXhjZXB0aW9uT3I8c3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0Pj4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRJZCwgVmVjdG9y
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0
MmQoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0g
fTsKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzUGxhY2Vo
b2xkZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkgeworICAgICAgICAgICAgaWYg
KCFpczJkVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29u
dGV4dCkgfSB9OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNCaXRtYXBS
ZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoIWlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRl
eHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29u
dGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4g
eyAmZG93bmNhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07
CisgICAgICAgIH0KKworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+
aXNXZWJHTCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR0xUeXBlKGNvbnRleHRJZCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBz
dGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCptX2NvbnRleHQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdM
MikKKyAgICAgICAgICAgIEFTU0VSVChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdQVSgp
KSB7CisgICAgICAgICAgICBpZiAoIWlzV2ViR1BVVHlwZShjb250ZXh0SWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxs
b3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKyNlbmRpZgorCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KIAorICAgIGlmIChpczJk
VHlwZShjb250ZXh0SWQpKSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHQy
ZChjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29udGV4dCB9IH07CisgICAgfQorCisgICAgaWYgKGlzQml0
bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3Jl
YXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4
dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsg
c3RkOjpudWxsb3B0IH07CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0Nv
bnRleHQ+IHsgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0g
fTsKKyAgICB9CisKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKGlzM2RUeXBlKGNvbnRleHRJ
ZCkpIHsKKyAgICBpZiAoaXNXZWJHTFR5cGUoY29udGV4dElkKSkgewogICAgICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKICAgICAgICAgYXV0byBhdHRy
aWJ1dGVzID0gY29udmVydDxJRExEaWN0aW9uYXJ5PFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+Pihz
dGF0ZSwgIWFyZ3VtZW50cy5pc0VtcHR5KCkgPyBhcmd1bWVudHNbMF0uZ2V0KCkgOiBKU0M6Ompz
VW5kZWZpbmVkKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRp
b24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogCi0gICAgICAgIGlmIChhdXRvIGNvbnRl
eHQgPSBnZXRDb250ZXh0V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKSkgewot
ICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0
V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4g
eyBzdGQ6Om51bGxvcHQgfTsKKworICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PigqY29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAg
ICAgICAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250
ZXh0PigqY29udGV4dCkgfSB9OworICAgICAgICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dD4oKmNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
Q29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0gfTsKICNlbmRpZgotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAg
ICBpZiAoaXNXZWJHUFVUeXBlKGNvbnRleHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4
dCA9IGdldENvbnRleHRXZWJHUFUoY29udGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQ+IHsgY29udGV4dCB9IH07Ci0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0
ZUNvbnRleHRXZWJHUFUoY29udGV4dElkKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxv
cHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKICAgICB9CiAjZW5k
aWYKIApAQCAtMjY2LDEzICszMTksMTYgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENh
bnZhc0VsZW1lbgogICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSkpCiAg
ICAgICAgIHJldHVybiBnZXRDb250ZXh0MmQodHlwZSk7CiAKKyAgICBpZiAoSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJUeXBlKHR5cGUpKQorICAgICAgICByZXR1cm4gZ2V0Q29u
dGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUpOworCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAo
SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZSh0eXBlKSAmJiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
IGdldENvbnRleHRXZWJHUFUodHlwZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAg
ICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKHR5cGUpKQorICAgIGlmIChIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNXZWJHTFR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0
V2ViR0wodHlwZSk7CiAjZW5kaWYKIApAQCAtMjg0LDQ2ICszNDAsNTQgQEAgYm9vbCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aXMyZFR5cGUoY29uc3QgUwogICAgIHJldHVybiB0eXBlID09ICIyZCI7CiB9
CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAg
IEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsK
KyAgICBBU1NFUlQoIW1fY29udGV4dCk7CiAKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRl
eHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fY29udGV4
dCkgewotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNl
OworICAgIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgICAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKKyAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBk
b2N1bWVudCgpLnNldHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoKTsKICNlbmRpZgogCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBw
aXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgotICAgICAgICBzaXplX3Qg
cmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgpOwotICAgICAgICBp
ZiAoYWN0aXZlUGl4ZWxNZW1vcnkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBp
eGVsTWVtb3J5KCkpIHsKLSAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsK
LSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7Ci0gICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEw
MjQpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgd2Ug
ZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4K
KyAgICBzaXplX3QgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgp
OworICAgIGlmIChhY3RpdmVQaXhlbE1lbW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4
QWN0aXZlUGl4ZWxNZW1vcnkoKSkgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxk
ZXI7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CisgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7
CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAKLSAgICAgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgp
LCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOworICAgIG1fY29udGV4dCA9IHN0ZDo6
bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKIAotICAgICAg
ICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKLSAgICAgICAgZG93
bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNw
bGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTsKKyAgICBkb3duY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERy
YXdpbmcobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1f
dHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlz
KTsKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShB
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0gICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVu
ZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFz
Ci0gICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAvLyBO
ZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQg
Y3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9z
aXRpb24oKTsKICNlbmRpZgotICAgIH0KIAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogCitDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5n
JiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBl
KHR5cGUpLCB0eXBlKTsKKworICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV9jb250ZXh0KQorICAgICAg
ICByZXR1cm4gY3JlYXRlQ29udGV4dDJkKHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiAjaWYgRU5B
QkxFKFdFQkdMKQogc3RhdGljIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
V2ViR0woKQogewpAQCAtMzQ1LDcgKzQwOSw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZVdl
YkdMKGNvbnN0IFNldHQKICAgICByZXR1cm4gc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoKTsKIH0KIAotYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogewogICAgIC8vIFJldGFpbiBzdXBwb3J0IGZvciB0aGUgbGVnYWN5ICJ3
ZWJraXQtM2QiIG5hbWUuCiAgICAgcmV0dXJuIHR5cGUgPT0gIndlYmdsIiB8fCB0eXBlID09ICJl
eHBlcmltZW50YWwtd2ViZ2wiCkBAIC0zNTUsOSArNDE5LDI4IEBAIGJvb2wgSFRNTENhbnZhc0Vs
ZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFMKICAgICAgICAgfHwgdHlwZSA9PSAid2Via2l0LTNkIjsK
IH0KIAorV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0
ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMm
JiBhdHRycykKK3sKKyAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5
cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBpZiAoIXNob3VsZEVuYWJsZVdl
YkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBh
dHRycywgdHlwZSk7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1h
a2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBm
b3IgdGhlIENhbnZhcworICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9u
KCk7CisKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR0wo
Y29uc3QgU3RyaW5nJiB0eXBlLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCiB7Ci0g
ICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZSh0eXBlKSk7CisgICAgQVNTRVJU
KEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSk7CiAKICAgICBpZiAoIXNob3Vs
ZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGluZ3MoKSkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMzY1LDE2ICs0NDgsOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1M
Q2FudmFzRWxlCiAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pc1dlYkdMKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAg
bV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRy
cywgdHlwZSk7Ci0gICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQg
dG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVh
dGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNv
bXBvc2l0aW9uKCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
KyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHTCh0
eXBlLCBXVEZNb3ZlKGF0dHJzKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UqPihtX2NvbnRleHQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC0zODUsNiAr
NDYwLDI1IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZShjb24KICAgICBy
ZXR1cm4gdHlwZSA9PSAid2ViZ3B1IjsKIH0KIAorV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlw
ZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOworCisgICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBtX2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGUoKnRoaXMpOworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0
byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0
ZWQgZm9yIHRoZSBDYW52YXMKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3Np
dGlvbigpOworCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJH
UFVSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVShj
b25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFz
RWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpKTsKQEAgLTM5NSwyMCArNDg5LDM1IEBAIFdlYkdQ
VVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KICAgICBpZiAobV9jb250ZXh0ICYm
ICFtX2NvbnRleHQtPmlzV2ViR1BVKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dDo6Y3JlYXRlKCp0aGlzKTsKLSAgICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAg
ICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5
ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAg
fQotICAgIH0KLQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29u
dGV4dFdlYkdQVSh0eXBlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5n
Q29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7CiB9CiAjZW5kaWYKIAorYm9vbCBIVE1MQ2FudmFz
RWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAg
IHJldHVybiB0eXBlID09ICJiaXRtYXByZW5kZXJlciI7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJl
cihjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9j
b250ZXh0KTsKKworICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKworSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dEJpdG1hcFJl
bmRlcmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhU
TUxDYW52YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgaWYgKCFt
X2NvbnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIodHlw
ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCo+
KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXco
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDIyMjk0NykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtODAsMTEgKzgwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKENh
bnZhc09ic2VydmVyJik7CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gY3NzQ2FudmFzQ2xpZW50cygp
IGNvbnN0OwogCisgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6
ZTsgfQorCiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBzaXplKCkud2lkdGgo
KTsgfQogICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS5oZWlnaHQo
KTsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsg
fQotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRIZWlnaHQodW5zaWduZWQpOwogCkBAIC0xMDQsMTcgKzEwNCwy
NCBAQCBwdWJsaWM6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dChjb25z
dCBTdHJpbmcmKTsKIAogICAgIHN0YXRpYyBib29sIGlzMmRUeXBlKGNvbnN0IFN0cmluZyYpOwor
ICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogY3JlYXRlQ29udGV4dDJkKGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBnZXRDb250ZXh0MmQoY29u
c3QgU3RyaW5nJik7CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgc3RhdGljIGJvb2wgaXMzZFR5
cGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFR5cGUoY29uc3QgU3Ry
aW5nJik7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogY3JlYXRlQ29udGV4dFdlYkdM
KGNvbnN0IFN0cmluZyYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSogZ2V0Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYsIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BV
KQogICAgIHN0YXRpYyBib29sIGlzV2ViR1BVVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBXZWJH
UFVSZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYpOwog
ICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5n
Jik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnN0
IFN0cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogY3JlYXRlQ29udGV4
dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dCogZ2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEpT
Qzo6SlNWYWx1ZSBxdWFsaXR5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaWRsCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTcgKzI0LDE4IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCi0gdHlwZWRlZiAoCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dF
QkdMKSAmJiBFTkFCTEVfV0VCR0wKLSAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2Vu
ZGlmCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMMikgJiYgRU5BQkxFX1dFQkdMMgotICAgICBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2VuZGlmCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dF
QkdQVSkgJiYgRU5BQkxFX1dFQkdQVQotICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCi0g
I2VuZGlmCi0gICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgUmVuZGVyaW5nQ29udGV4dDsK
K3R5cGVkZWYgKAorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dF
QkdMMikgJiYgRU5BQkxFX1dFQkdMMgorICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgb3IKKyNl
bmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdQVSkgJiYgRU5BQkxFX1dFQkdQVQorICAgIFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorICAgIEltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dCBvciAKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJlbmRlcmluZ0NvbnRl
eHQ7CiAKIFsKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCShyZXZp
c2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdmlydHVhbCBib29sIGlzR1BVQmFzZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFz
KCkge30KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7
IHJldHVybiAwOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6SW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCisgICAgOiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKK3sKK30KKworfQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKK3B1Ymxp
YzoKKyAgICBzdHJ1Y3QgU2V0dGluZ3MgeworICAgICAgICBib29sIGFscGhhID0gdHJ1ZTsKKyAg
ICB9OworCisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50
Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0JpdG1hcFJlbmRlcmVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZhc0VsZW1lbnQgY2Fu
dmFzOworICAgIC8vdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChJbWFnZUJpdG1hcD8gYml0
bWFwKTsKK307CisKK2RpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGlu
Z3MgeworICAgIGJvb2xlYW4gYWxwaGEgPSB0cnVlOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0Vs
ZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQorewor
fQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dChIVE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNQbGFjZWhvbGRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322984</attachid>
            <date>2017-10-05 21:19:50 -0700</date>
            <delta_ts>2017-10-06 02:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171005211950.patch</filename>
            <type>text/plain</type>
            <size>43573</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSBidWlsZC10aW1lIHNldHRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMyw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BV
QnVmZmVyLmlkbApAQCAtMTk4MSw3ICsxOTgyLDkgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKICAg
ICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIy
Mjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzI2NSw2ICszMjY1LDkgQEAKIAkJN0M3N0MzRDcxREVGODUw
QTAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDYxREVGODUwQTAwQTUwQkZBIC8qIEJsb2JMaW5l
RW5kaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDNzdDM0RCMURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovOyB9OwogCQk3Qzc3QzNEQzFE
RUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0RBMURFRjg2RDcwMEE1MEJGQSAvKiBK
U0Jsb2JMaW5lRW5kaW5ncy5oICovOyB9OworCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CisJCTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi87IH07CisJCTdDNzkwM0I1MUY4NkY5NUMwMDQ2
M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4
RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4
NkEwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0
cmlidXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExNTIyLDYgKzExNTI1LDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBC
bG9iTGluZUVuZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5l
RW5kaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JM
aW5lRW5kaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4
MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1
NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThF
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMyLDYgKzE4NTQyLDkgQEAKIAkJCQk3NzI4Njk0
QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJ
CQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5pZGwgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNC
MjFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywK
IAkJCQk3QzE5M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5Lmgg
Ki8sCiAJCQkJN0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0
eS5pZGwgKi8sCiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovLApAQCAtMTg1NTgsNiArMTg1NzEsOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBF
QUYwMDg4RjNFNiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNF
NiAvKiBQYXRoMkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJE
LmlkbCAqLywKKwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1
MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQx
QTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIx
MzIsNiArMjIxNDcsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBK
U0hUTUxWaWRlb0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZE
RTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCUE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8sCiAJCQkJQTc3OTc5
MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8sCiAJCQkJN0MxOTNCRkIxRjVF
MTBDNDAwODhGM0U2IC8qIEpTSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmNwcCAqLywKQEAgLTI4MzA4
LDYgKzI4MzI1LDcgQEAKIAkJCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3Bl
bnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1
MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QTMz
NkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0M3OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY3RjEzNTM2MjVDMDA5QkQxMDIg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMkJEOUY4MTEzNTM2NEZF
MDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcs
NiArMzExMTUsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0
QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyog
SUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXph
YmxlLnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMjM0MSw2
ICszMjM2MCw3IEBACiAJCQkJQzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAz
QjQxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0M0QyNTk3NzEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVG
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMjI5NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiSGFz
aENoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RS
ZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHJldmlzaW9uIDIyMjk0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7
CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAt
Mjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVO
QUJMRShXRUJHUFUpCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
Ci0gICAgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QCB0eXBlZGVmICgKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUK
ICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgb3IgCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJp
bmdDb250ZXh0OwogCiBbCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgpAQCAtMjAzLDE0
ICsyMDQsMjAgQEAgSGFzaFNldDxFbGVtZW50Kj4gSFRNTENhbnZhc0VsZW1lbnQ6OmNzcwogICAg
IHJldHVybiBjc3NDYW52YXNDbGllbnRzOwogfQogCi12b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpz
ZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxl
bWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogeworICAgIGlmIChtX2NvbnRleHQgJiYg
bV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oaGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVn
YXRpdmUodmFsdWUsIGRlZmF1bHRIZWlnaHQpKSk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCitFeGNlcHRpb25P
cjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiB7Cisg
ICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxp
bWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0V2lkdGgpKSk7CisgICAgcmV0
dXJuIHsgfTsKIH0KIAogc3RhdGljIGlubGluZSBzaXplX3QgbWF4QWN0aXZlUGl4ZWxNZW1vcnko
KQpAQCAtMjI1LDM2ICsyMzIsODYgQEAgc3RhdGljIGlubGluZSBzaXplX3QgbWF4QWN0aXZlUGl4
ZWxNZW1vcgogCiBFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+PiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0
IFN0cmluZyYgY29udGV4dElkLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBh
cmd1bWVudHMpCiB7Ci0gICAgaWYgKGlzMmRUeXBlKGNvbnRleHRJZCkpIHsKLSAgICAgICAgaWYg
KGF1dG8gY29udGV4dCA9IGdldENvbnRleHQyZChjb250ZXh0SWQpKQotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPiB7IGNvbnRleHQgfSB9OworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAg
ICAgaWYgKG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgaWYgKG1fY29udGV4dC0+
aXMyZCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzMmRUeXBlKGNvbnRleHRJZCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51
bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRl
eHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKworICAgICAg
ICBpZiAobV9jb250ZXh0LT5pc0JpdG1hcFJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmICgh
aXNCaXRtYXBSZW5kZXJlclR5cGUoY29udGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8SW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgfQorCisjaWYgRU5BQkxFKFdFQkdM
KQorICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdMKCkpIHsKKyAgICAgICAgICAgIGlmICgh
aXNXZWJHTFR5cGUoY29udGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRp
b25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAgICAgaWYg
KGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRl
eHQpIH0gfTsKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICAgICAgQVNTRVJUKGlzPFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsK
KyNlbmRpZgorICAgICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAg
IGlmIChtX2NvbnRleHQtPmlzV2ViR1BVKCkpIHsKKyAgICAgICAgICAgIGlmICghaXNXZWJHUFVU
eXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVu
ZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQ+IHsgJmRvd25jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsK
KyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0
IH07CiAgICAgfQogCisgICAgaWYgKGlzMmRUeXBlKGNvbnRleHRJZCkpIHsKKyAgICAgICAgYXV0
byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dDJkKGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+
IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0g
fTsKKyAgICB9CisKKyAgICBpZiAoaXNCaXRtYXBSZW5kZXJlclR5cGUoY29udGV4dElkKSkgewor
ICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29udGV4
dElkKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8SW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0PiB7IGNvbnRleHQgfSB9OworICAgIH0KKwogI2lmIEVOQUJMRShXRUJHTCkK
LSAgICBpZiAoaXMzZFR5cGUoY29udGV4dElkKSkgeworICAgIGlmIChpc1dlYkdMVHlwZShjb250
ZXh0SWQpKSB7CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRl
LnZtKCkpOwogICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb252ZXJ0PElETERpY3Rpb25hcnk8
V2ViR0xDb250ZXh0QXR0cmlidXRlcz4+KHN0YXRlLCAhYXJndW1lbnRzLmlzRW1wdHkoKSA/IGFy
Z3VtZW50c1swXS5nZXQoKSA6IEpTQzo6anNVbmRlZmluZWQoKSk7CiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7
CiAKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRleHRXZWJHTChjb250ZXh0SWQs
IFdURk1vdmUoYXR0cmlidXRlcykpKSB7Ci0gICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PigqY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZk
b3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSB9IH07CisgICAgICAgIGF1
dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRXZWJHTChjb250ZXh0SWQsIFdURk1vdmUoYXR0cmli
dXRlcykpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworCisgICAgICAgIGlm
IChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9
OwogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgICAgICAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5n
Q29udGV4dD4oKmNvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRv
d25jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSB9IH07CisgICAgICAgIEFT
U0VSVChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpOworICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkg
fSB9OwogI2VuZGlmCi0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CiAgICAgfQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIGlmIChpc1dlYkdQVVR5cGUoY29udGV4dElkKSkg
ewotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4dFdlYkdQVShjb250ZXh0SWQp
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKLSAgICAgICAgcmV0
dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAg
ICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dFdlYkdQVShjb250ZXh0SWQpOworICAg
ICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICByZXR1cm4gc3RkOjpvcHRp
b25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7
IGNvbnRleHQgfSB9OwogICAgIH0KICNlbmRpZgogCkBAIC0yNjYsMTMgKzMyMywxNiBAQCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVuCiAgICAgaWYgKEhUTUxDYW52YXNF
bGVtZW50OjppczJkVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIGdldENvbnRleHQyZCh0eXBl
KTsKIAorICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUodHlw
ZSkpCisgICAgICAgIHJldHVybiBnZXRDb250ZXh0Qml0bWFwUmVuZGVyZXIodHlwZSk7CisKICNp
ZiBFTkFCTEUoV0VCR1BVKQogICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBl
KHR5cGUpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR1BV
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZ2V0Q29udGV4dFdlYkdQVSh0eXBlKTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5
cGUodHlwZSkpCisgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSkK
ICAgICAgICAgcmV0dXJuIGdldENvbnRleHRXZWJHTCh0eXBlKTsKICNlbmRpZgogCkBAIC0yODQs
NDYgKzM0NCw1NCBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZShjb25zdCBTCiAg
ICAgcmV0dXJuIHR5cGUgPT0gIjJkIjsKIH0KIAotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKK0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZChj
b25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChIVE1MQ2FudmFzRWxlbWVu
dDo6aXMyZFR5cGUodHlwZSksIHR5cGUpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKIAotICAg
IGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgpKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAgIGJvb2wgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CisgICAgYm9vbCB1c2VzRGFzaGJvYXJkQ29tcGF0
aWJpbGl0eU1vZGUgPSBmYWxzZTsKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAg
ICAgIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS51c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOworICAgIHVzZXNEYXNo
Ym9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS51c2VzRGFzaGJv
YXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwogI2VuZGlmCiAKLSAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2Fu
IHN1cHBvcnQuCi0gICAgICAgIHNpemVfdCByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA9IDQgKiB3aWR0
aCgpICogaGVpZ2h0KCk7Ci0gICAgICAgIGlmIChhY3RpdmVQaXhlbE1lbW9yeSArIHJlcXVlc3Rl
ZFBpeGVsTWVtb3J5ID4gbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgewotICAgICAgICAgICAgU3Ry
aW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxp
bWl0ICgiKTsKLSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2
ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7Ci0gICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAg
ICAgfQorICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkgdGhh
biB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgorICAgIHNpemVfdCByZXF1ZXN0ZWRQaXhlbE1lbW9y
eSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0KCk7CisgICAgaWYgKGFjdGl2ZVBpeGVsTWVtb3J5ICsg
cmVxdWVzdGVkUGl4ZWxNZW1vcnkgPiBtYXhBY3RpdmVQaXhlbE1lbW9yeSgpKSB7CisgICAgICAg
IFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxp
bWl0ICgiKTsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZlUGl4
ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgTUIpLiIpOworICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAotICAgICAgICBtX2Nv
bnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMs
IGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9k
ZSk7CisgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29t
cGF0aWJpbGl0eU1vZGUpOwogCi0gICAgICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRD4oKm1fY29udGV4dCkuc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhtX3VzZXNEaXNwbGF5
TGlzdERyYXdpbmcpOwotICAgICAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxp
c3RSZXBsYXkpOworICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29u
dGV4dCkuc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcp
OworICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0
VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSk7CiAKLSAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdD
b250ZXh0KCp0aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOwogCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNf
QkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLSAgICAgICAg
Ly8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIg
Z2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5
ZXJDb21wb3NpdGlvbigpOworICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIg
YW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCisgICAgaW52
YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogI2VuZGlmCi0gICAgfQogCiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29udGV4dC5n
ZXQoKSk7CiB9CiAKK0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6
OmdldENvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRChI
VE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSksIHR5cGUpOworCisgICAgaWYgKG1fY29u
dGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0MmQodHlwZSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29u
dGV4dC5nZXQoKSk7Cit9CisKICNpZiBFTkFCTEUoV0VCR0wpCiBzdGF0aWMgYm9vbCByZXF1aXJl
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JXZWJHTCgpCiB7CkBAIC0zNDUsNyArNDEzLDcgQEAg
c3RhdGljIGJvb2wgc2hvdWxkRW5hYmxlV2ViR0woY29uc3QgU2V0dAogICAgIHJldHVybiBzZXR0
aW5ncy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQogCi1ib29sIEhUTUxDYW52
YXNFbGVtZW50OjppczNkVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCitib29sIEhUTUxDYW52YXNF
bGVtZW50Ojppc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgLy8gUmV0YWlu
IHN1cHBvcnQgZm9yIHRoZSBsZWdhY3kgIndlYmtpdC0zZCIgbmFtZS4KICAgICByZXR1cm4gdHlw
ZSA9PSAid2ViZ2wiIHx8IHR5cGUgPT0gImV4cGVyaW1lbnRhbC13ZWJnbCIKQEAgLTM1NSw5ICs0
MjMsMjggQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3QgUwogICAgICAg
ICB8fCB0eXBlID09ICJ3ZWJraXQtM2QiOwogfQogCitXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYgdHlw
ZSwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmIGF0dHJzKQoreworICAgIEFTU0VSVChIVE1MQ2Fu
dmFzRWxlbWVudDo6aXNXZWJHTFR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsK
KworICAgIGlmICghc2hvdWxkRW5hYmxlV2ViR0woZG9jdW1lbnQoKS5zZXR0aW5ncygpKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKKyAgICBpZiAobV9jb250ZXh0
KSB7CisgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBv
c2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCisgICAgICAgIGludmFsaWRh
dGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKworICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOworICAgIH0K
KworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4obV9j
b250ZXh0LmdldCgpKTsKK30KKwogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZh
c0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMmJiBhdHRycykKIHsKLSAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6Omlz
M2RUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBl
KHR5cGUpKTsKIAogICAgIGlmICghc2hvdWxkRW5hYmxlV2ViR0woZG9jdW1lbnQoKS5zZXR0aW5n
cygpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zNjUsMTYgKzQ1Miw4IEBAIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGUKICAgICBpZiAobV9jb250ZXh0ICYm
ICFtX2NvbnRleHQtPmlzV2ViR0woKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBp
ZiAoIW1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKLSAgICAgICAgaWYgKG1fY29udGV4
dCkgewotICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQg
Y29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgICAg
IGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKLQotICAgICAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0
aGlzKTsKLSAgICAgICAgfQotICAgIH0KLQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICBy
ZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdMKHR5cGUsIFdURk1vdmUoYXR0cnMpKTsKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KG1fY29udGV4dC5nZXQo
KSk7CiB9CiAjZW5kaWYKQEAgLTM4NSw2ICs0NjQsMjUgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVu
dDo6aXNXZWJHUFVUeXBlKGNvbgogICAgIHJldHVybiB0eXBlID09ICJ3ZWJncHUiOwogfQogCitX
ZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdl
YkdQVShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1M
Q2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4
dCk7CisKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
d2ViR1BVRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIG1fY29udGV4
dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSgqdGhpcyk7CisgICAgaWYgKG1fY29u
dGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBj
b21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgICAgICBpbnZh
bGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisKKyAgICAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dCo+KG1f
Y29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NF
UlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUodHlwZSkpOwpA
QCAtMzk1LDIwICs0OTMsMzUgQEAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0Vs
ZW1lbgogICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXNXZWJHUFUoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBtX2Nv
bnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoKnRoaXMpOwotICAgICAgICBp
ZiAobV9jb250ZXh0KSB7Ci0gICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRl
ckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwot
ICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwotCi0gICAg
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQoKnRoaXMpOwotICAgICAgICB9Ci0gICAgfQotCisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0V2ViR1BVKHR5cGUpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJHUFVSZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKIH0K
ICNlbmRpZgogCitib29sIEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gImJpdG1hcHJlbmRlcmVy
IjsKK30KKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlw
ZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOworCisgICAgbV9jb250ZXh0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRl
eHQuZ2V0KCkpOworfQorCitJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJiB0eXBlKQorewor
ICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVy
ZXJUeXBlKHR5cGUpKTsKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZUNvbnRleHRCaXRtYXBSZW5kZXJlcih0eXBlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogdm9pZCBI
VE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAg
Y2xlYXJDb3BpZWRJbWFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaAkocmV2aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MywxMCArODMsMTAgQEAgcHVibGljOgog
ICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLndpZHRoKCk7IH0KICAg
ICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXplKCkuaGVpZ2h0KCk7IH0KIAot
ICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAgICBX
RUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXaWR0aCh1bnNpZ25lZCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SGVpZ2h0KHVuc2lnbmVkKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2lkdGgodW5zaWduZWQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkKTsKKyAgICBjb25zdCBJbnRTaXplJiBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50
U2l6ZSYgbmV3U2l6ZSkKICAgICB7IApAQCAtMTA0LDE3ICsxMDQsMjQgQEAgcHVibGljOgogICAg
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHQoY29uc3QgU3RyaW5nJik7CiAKICAg
ICBzdGF0aWMgYm9vbCBpczJkVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIGNyZWF0ZUNvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCogZ2V0Q29udGV4dDJkKGNvbnN0IFN0cmluZyYpOwogCiAj
aWYgRU5BQkxFKFdFQkdMKQotICAgIHN0YXRpYyBib29sIGlzM2RUeXBlKGNvbnN0IFN0cmluZyYp
OworICAgIHN0YXRpYyBib29sIGlzV2ViR0xUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIGNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmLCBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgPSB7IH0pOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqIGdldENvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmLCBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzJiYgPSB7IH0pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBzdGF0aWMgYm9v
bCBpc1dlYkdQVVR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4
dCogY3JlYXRlQ29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmKTsKICAgICBXZWJHUFVSZW5kZXJp
bmdDb250ZXh0KiBnZXRDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAg
ICBzdGF0aWMgYm9vbCBpc0JpdG1hcFJlbmRlcmVyVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIGNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihj
b25zdCBTdHJpbmcmKTsKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIGdldENvbnRl
eHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIEV4
Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9y
PFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gdG9CbG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8Qmxv
YkNhbGxiYWNrPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0
eSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAkocmV2
aXNpb24gMjIyOTQ3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDE3ICsyNCwxOCBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAotIHR5cGVkZWYgKAotICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dF
QkdMCi0gICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvcgotICNlbmRpZgotICNpZiBkZWZpbmVk
KEVOQUJMRV9XRUJHTDIpICYmIEVOQUJMRV9XRUJHTDIKLSAgICAgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dCBvcgotICNlbmRpZgotICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9X
RUJHUFUKLSAgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCBvcgotICNlbmRpZgotICAgICBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJlbmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmICgKKyNpZiBk
ZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdMCisgICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0IG9yCisjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTDIpICYmIEVOQUJMRV9X
RUJHTDIKKyAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IG9yCisjZW5kaWYKKyNpZiBkZWZpbmVk
KEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUKKyAgICBXZWJHUFVSZW5kZXJpbmdDb250
ZXh0IG9yCisjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgCisgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJpbmdDb250ZXh0OwogCiBbCiAgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gMjIyOTQ3KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwg
Ym9vbCBpc0dQVUJhc2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzQml0bWFwUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpIHt9CiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ6OkltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dChIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dChjYW52YXMpCit7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgZmluYWwg
OiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RydWN0IFNl
dHRpbmdzIHsKKyAgICAgICAgYm9vbCBhbHBoYSA9IHRydWU7CisgICAgfTsKKworICAgIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgor
ICAgIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
K307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRXhwb3Nl
ZD1XaW5kb3cKK10gaW50ZXJmYWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhczsKKyAgICAvL3ZvaWQg
dHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7Cit9OworCitkaWN0
aW9uYXJ5IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzIHsKKyAgICBib29sZWFu
IGFscGhhID0gdHJ1ZTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFj
ZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCisg
ICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKK3sKK30KKworfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsK
K3B1YmxpYzoKKyAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9Cit9OworCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323004</attachid>
            <date>2017-10-06 02:56:46 -0700</date>
            <delta_ts>2017-10-06 03:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171006025645.patch</filename>
            <type>text/plain</type>
            <size>46038</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDYgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1N0cmVhbWVyXVtNU0VdIExpa2VseSByYWNlIGNvbmRpdGlvbiBjYXVzZXMgV1RGOjpE
ZXF1ZSB0byBjcmFzaCBvbiBkZWJ1ZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03MTQsNiArNzE0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNUcmFuc2Zvcm0uaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5p
ZGwKKyAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAg
aHRtbC9jYW52YXMvSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmlkbAogICAgIGh0bWwvY2FudmFzL1Bh
dGgyRC5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsCkBAIC0xOTgzLDcgKzE5
ODQsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisgICAgaHRtbC9jYW52YXMvSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5jcHAK
KyAgICBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRt
bC9jYW52YXMvV2ViR1BVQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRC
dWZmZXIuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MzgsNiArNjM4
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhU
U2hhZGVyVGV4dHVyZUxPRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9F
WFRzUkdCLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0ltYWdlU21vb3Ro
aW5nUXVhbGl0eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjU5
LDEyICszMjU5LDE3IEBACiAJCTdDNzNGQjBEMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBCMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlcnNOYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0M3M0ZCMTExOTFFRjZGNDAwN0RFMDYxIC8qIEpT
VXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBGMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlci5jcHAgKi87IH07CiAJCTdDNzNGQjEyMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M3M0ZCMTAxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmggKi87
IH07CisJCTdDNzc2MUE4MUY4NzhBOEIwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuY3BwICovOyB9OworCQk3Qzc3NjFBQTFGODc4QUE1MDBGODY5RkMgLyogSlNJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNzkwM0I4MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dC5oICovOyB9OwogCQk3Qzc3QzNEMTFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlBy
b3BlcnR5QmFnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc3QzNEMDFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlByb3BlcnR5QmFnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M3N0MzRDQxREVGMTc4
RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0QyMURFRjE3OEUwMEE1MEJGQSAvKiBKU0Js
b2JQcm9wZXJ0eUJhZy5jcHAgKi87IH07CiAJCTdDNzdDM0Q1MURFRjE3OEUwMEE1MEJGQSAvKiBK
U0Jsb2JQcm9wZXJ0eUJhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M3N0MzRDMxREVGMTc4RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmgg
Ki87IH07CiAJCTdDNzdDM0Q3MURFRjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0Q2MURF
Rjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qzc3QzNEQjFERUY4NkQ3MDBBNTBCRkEgLyog
SlNCbG9iTGluZUVuZGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M3N0MzRDkxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdz
LmNwcCAqLzsgfTsKIAkJN0M3N0MzREMxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRp
bmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3
QzNEQTFERUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCAqLzsgfTsKKwkJN0M3
OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjAxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovOyB9OworCQk3
Qzc5MDNCNDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzkwM0Ix
MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovOyB9
OworCQk3Qzc5MDNCNTFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M3OTAzQjIxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5p
ZGwgKi87IH07CiAJCTdDNzk0MUU0MUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29y
ZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
bW0gKi87IH07CiAJCTdDNzk0MUU1MUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29y
ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc5NDFFMzFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5o
ICovOyB9OwogCQk3QzgxMzlBNjFFRDYyODZBMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODEzOUEzMUVE
NjI4MUQwMENFMjZFOCAvKiBKU0RPTUF0dHJpYnV0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTUyMiw2ICsxMTUyNywxMyBAQAogCQk3Qzc3
QzNEODFERUY4NTQwMDBBNTBCRkEgLyogQmxvYkxpbmVFbmRpbmdzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iTGlu
ZUVuZGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzc3QzNEOTFERUY4
NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iTGluZUVuZGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Qzc3QzNEQTFERUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGlu
Z3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCbG9iTGluZUVuZGluZ3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQjAxRjg2Rjk1QzAwNDYzQTcw
IC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3
OTAzQjExRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMjFGODZGOTVDMDA0NjNBNzAgLyogSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCNzFGODZGREU0
MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Qzc5MDNCODFGODZGREU2MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQkExRjg2RkYz
MzAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAg
LyogUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0Nv
cmVTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERh
dGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvcnNDb3JlU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M4MTM5QTMxRUQ2MjgxRDAwQ0Uy
NkU4IC8qIEpTRE9NQXR0cmlidXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRE9NQXR0cmlidXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODUzMiw2
ICsxODU0NCw5IEBACiAJCQkJNzcyODY5NEMxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oICovLAogCQkJCTc3Mjg2OTREMTRGODg4MjUwMEY0ODREQyAvKiBF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsICovLAogCQkJCTMxMTUxOEZCMUU3OEMxNUYw
MEVDNTE0QSAvKiBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5
MDNCMTFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAq
LywKKwkJCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmggKi8sCisJCQkJN0M3OTAzQjIxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5pZGwgKi8sCiAJCQkJN0MxOTNCQUYxRjVFMEVCNDAwODhGM0U2IC8q
IEltYWdlU21vb3RoaW5nUXVhbGl0eS5oICovLAogCQkJCTdDMTkzQkE4MUY1RTBFQUYwMDg4RjNF
NiAvKiBJbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsICovLAogCQkJCTdFNUQ3QTczMTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLywKQEAgLTE4NTU4LDYgKzE4NTcz
LDggQEAKIAkJCQk3QzE5M0JBNzFGNUUwRUFGMDA4OEYzRTYgLyogUGF0aDJELmNwcCAqLywKIAkJ
CQk3QzE5M0JBQjFGNUUwRUIxMDA4OEYzRTYgLyogUGF0aDJELmggKi8sCiAJCQkJN0MxOTNCQjQx
RjVFMEVCNzAwODhGM0U2IC8qIFBhdGgyRC5pZGwgKi8sCisJCQkJN0M3OTAzQkExRjg2RkYzMzAw
NDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJCQkJN0M3OTAz
QkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAog
CQkJCUQzRjNEMzVCMUE2OUE1MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cCAqLywKIAkJCQlEM0YzRDM1QzFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5oICovLAogCQkJCUQzRjNEMzVEMUE2OUE1MDYwMDU5RkMyQiAvKiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmlkbCAqLywKQEAgLTIyMTMyLDYgKzIyMTQ5LDggQEAKIAkJCQk2RTRBQkNEMzEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLywKIAkJCQlFNDQ2MTQw
RTBDRDY4MjY5MDBGQURBNzUgLyogSlNIVE1MVmlkZW9FbGVtZW50LmNwcCAqLywKIAkJCQlFNDQ2
MTQwRjBDRDY4MjY5MDBGQURBNzUgLyogSlNIVE1MVmlkZW9FbGVtZW50LmggKi8sCisJCQkJN0M3
OTAzQjcxRjg2RkRFNDAwNDYzQTcwIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cCAqLywKKwkJCQk3Qzc5MDNCODFGODZGREU2MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaCAqLywKIAkJCQlBNzc5NzkyNDBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFn
ZURhdGEuY3BwICovLAogCQkJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0
YS5oICovLAogCQkJCTdDMTkzQkZCMUY1RTEwQzQwMDg4RjNFNiAvKiBKU0ltYWdlU21vb3RoaW5n
UXVhbGl0eS5jcHAgKi8sCkBAIC0yODMwOCw2ICsyODMyNyw3IEBACiAJCQkJNDY3MzAyMDIxQzRF
RkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzAwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNr
aW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDNzkwM0IzMUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQTEw
QjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MjJCRDlGN0YxMzUzNjI1QzAwOUJEMTAyIC8qIEltYWdlQnVmZmVyRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjJCRDlGODExMzUzNjRGRTAwOUJEMTAyIC8qIEltYWdlQnVmZmVyRGF0YUNHLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI5Mzk0LDYgKzI5NDE0LDcgQEAKIAkJCQlDREM4QjVBNzE4MDQ3
NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q2MUZFNjgxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlh
U291cmNlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDNzc2MUFBMUY4NzhBQTUwMEY4
NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc4RTA5MTUxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDk0QzE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzEwOTcsNiAr
MzExMTgsNyBAQAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJh
c2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0QjMx
NDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngu
cG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyogSURO
U2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjUxRjg2Rjk1
QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJQkNBRDE4MEExMzFDN0EwRDAwOTkwNDA2IC8qIExvY2FsaXphYmxl
LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5RiAv
KiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0zMTY5OSw2ICsz
MTcyMSw3IEBACiAJCQkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIENTU0ZvbnRGZWF0dXJl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0REIwQ0I0Mjk4QTAwNUYyQjYyIC8q
IENTU0ZvbnRTZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMkUzOEYwMTFFODQ1NzM1
MDBDQTNBREYgLyogQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3Qzc3NjFBODFGODc4QThCMDBGODY5RkMgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzJFMzhFRkQxRTgzOTZGRDAwQ0EzQURGIC8qIENT
U0ZvbnRTdHlsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0YxMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIxREYyRTkx
RDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMyMzQxLDYgKzMyMzY0LDcgQEAKIAkJCQlDM0NGMTdBNDE1QjAwNjNGMDAyNzZEMzkg
LyogSWRUYXJnZXRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDM0NGMTdBNjE1QjAw
NjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUIyNzUzNTZGMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3Qzc5MDNCNDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzRDI1OTc3MTNDODE2RjQwMDYwODU1OSAv
KiBJbWFnZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkExMEI5NDBCMzgxOEQ3MDAw
OTlBQTQgLyogSW1hZ2VCdWZmZXJDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyMjkyQjI3QzEz
NTY2Njk0MDBDRjExRUYgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAK
ICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5j
bHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsNyBAQCBjbGFz
cyBIVE1MUGljdHVyZUVsZW1lbnQ7CiBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhp
dFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKK2NsYXNzIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dDsKIGNsYXNzIEludFBvaW50OwogY2xhc3MgSlNOb2RlOwogY2xhc3MgTGF5
b3V0UG9pbnQ7CkBAIC0yOTYsNyArMjk3LDkgQEAgdXNpbmcgUmVuZGVyaW5nQ29udGV4dCA9IFZh
cmlhbnQ8CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBSZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29u
dGV4dD4sCiAjZW5kaWYKLSAgICBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPj47Cisg
ICAgUmVmUHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4sCisgICAgUmVmUHRyPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4KKz47CiAKIGNsYXNzIERvY3VtZW50CiAgICAgOiBwdWJsaWMg
Q29udGFpbmVyTm9kZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMjI5
NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBAIHR5cGVkZWYgKAogI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdQVSkgJiYg
RU5BQkxFX1dFQkdQVQogICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQgb3IKICNlbmRpZgorICAg
IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBvciAKICAgICBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQpIFJlbmRlcmluZ0NvbnRleHQ7CiAKIFsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5
LmgiCkBAIC0yMDMsMTQgKzIwNCwyMCBAQCBIYXNoU2V0PEVsZW1lbnQqPiBIVE1MQ2FudmFzRWxl
bWVudDo6Y3NzCiAgICAgcmV0dXJuIGNzc0NhbnZhc0NsaWVudHM7CiB9CiAKLXZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7CisgICAgaWYg
KG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJlcihsaW1pdFRv
T25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdEhlaWdodCkpKTsKKyAgICByZXR1cm4g
eyB9OwogfQogCi12b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1
ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25l
ZCB2YWx1ZSkKIHsKKyAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRl
cigpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICAg
ICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0ciwgQXRvbWljU3Ry
aW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0
aCkpKTsKKyAgICByZXR1cm4geyB9OwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBtYXhBY3Rp
dmVQaXhlbE1lbW9yeSgpCkBAIC0yMjUsMzYgKzIzMiw4NiBAQCBzdGF0aWMgaW5saW5lIHNpemVf
dCBtYXhBY3RpdmVQaXhlbE1lbW9yCiAKIEV4Y2VwdGlvbk9yPHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nQ29udGV4dD4+IEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0SWQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6
OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKLSAgICBpZiAoaXMyZFR5cGUoY29udGV4dElkKSkg
ewotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4dDJkKGNvbnRleHRJZCkpCi0g
ICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0
cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29udGV4dCB9IH07CisgICAgaWYgKG1fY29u
dGV4dCkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgICAgICBp
ZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgICAgIGlmICghaXMyZFR5cGUoY29udGV4
dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250
ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8
UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZk
b3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzQml0bWFwUmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgaWYgKCFpc0JpdG1hcFJlbmRlcmVyVHlwZShjb250ZXh0SWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxs
b3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IFJlZlB0cjxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICB9CisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzV2ViR0woKSkgeworICAg
ICAgICAgICAgaWYgKCFpc1dlYkdMVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07Cisg
ICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJl
ZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4oKm1fY29udGV4dCkgfSB9OworI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgICAgICBB
U1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpOworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wy
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm1f
Y29udGV4dCkgfSB9OworI2VuZGlmCisgICAgICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNXZWJHUFUoKSkgeworICAgICAgICAgICAg
aWYgKCFpc1dlYkdQVVR5cGUoY29udGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR1BV
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dD4oKm1f
Y29udGV4dCkgfSB9OworICAgICAgICB9CisjZW5kaWYKKworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4g
eyBzdGQ6Om51bGxvcHQgfTsKICAgICB9CiAKKyAgICBpZiAoaXMyZFR5cGUoY29udGV4dElkKSkg
eworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0MmQoY29udGV4dElkKTsKKyAg
ICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVu
ZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PiB7IGNvbnRleHQgfSB9OworICAgIH0KKworICAgIGlmIChpc0JpdG1hcFJlbmRlcmVyVHlwZShj
b250ZXh0SWQpKSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRCaXRtYXBS
ZW5kZXJlcihjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9Owor
ICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07CisgICAgfQorCiAjaWYg
RU5BQkxFKFdFQkdMKQotICAgIGlmIChpczNkVHlwZShjb250ZXh0SWQpKSB7CisgICAgaWYgKGlz
V2ViR0xUeXBlKGNvbnRleHRJZCkpIHsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoc3RhdGUudm0oKSk7CiAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnZlcnQ8
SURMRGljdGlvbmFyeTxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPj4oc3RhdGUsICFhcmd1bWVudHMu
aXNFbXB0eSgpID8gYXJndW1lbnRzWzBdLmdldCgpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9KTsKIAotICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gZ2V0Q29udGV4dFdl
YkdMKGNvbnRleHRJZCwgV1RGTW92ZShhdHRyaWJ1dGVzKSkpIHsKLSAgICAgICAgICAgIGlmIChp
czxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0g
fTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dFdlYkdMKGNvbnRleHRJZCwg
V1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07
CisKKyAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCpjb250ZXh0KSB9IH07CiAjaWYgRU5BQkxFKFdFQkdMMikKLSAgICAgICAgICAgIGlmIChpczxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVyaW5n
Q29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpIH0g
fTsKKyAgICAgICAgQVNTRVJUKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRy
PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ+KCpjb250ZXh0KSB9IH07CiAjZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsK
ICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgaWYgKGlzV2ViR1BVVHlw
ZShjb250ZXh0SWQpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0V2Vi
R1BVKGNvbnRleHRJZCkpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7IGNvbnRleHQgfSB9
OwotICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6
bnVsbG9wdCB9OworICAgICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0V2ViR1BVKGNv
bnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgIHJl
dHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRl
cmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07CiAgICAgfQogI2VuZGlmCiAKQEAgLTI2NiwxMyAr
MzIzLDE2IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KICAgICBp
ZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4gZ2V0
Q29udGV4dDJkKHR5cGUpOwogCisgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1hcFJl
bmRlcmVyVHlwZSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGdldENvbnRleHRCaXRtYXBSZW5kZXJl
cih0eXBlKTsKKwogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50
Ojppc1dlYkdQVVR5cGUodHlwZSkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0V2ViR1BV
KHR5cGUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKEhUTUxDYW52YXNF
bGVtZW50OjppczNkVHlwZSh0eXBlKSkKKyAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2Vi
R0xUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4gZ2V0Q29udGV4dFdlYkdMKHR5cGUpOwogI2Vu
ZGlmCiAKQEAgLTI4NCw0NiArMzQ0LDU0IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRU
eXBlKGNvbnN0IFMKICAgICByZXR1cm4gdHlwZSA9PSAiMmQiOwogfQogCi1DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5n
JiB0eXBlKQorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlQ29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKEhU
TUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSwgdHlwZSk7CisgICAgQVNTRVJUKCFtX2Nv
bnRleHQpOwogCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAgYm9v
bCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBmYWxzZTsKKyAgICBib29sIHVzZXNE
YXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNlOwogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKLSAgICAgICAgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZG9jdW1l
bnQoKS5zZXR0aW5ncygpLnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7
CisgICAgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZG9jdW1lbnQoKS5zZXR0aW5n
cygpLnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7CiAjZW5kaWYKIAot
ICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4g
dGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4KLSAgICAgICAgc2l6ZV90IHJlcXVlc3RlZFBpeGVsTWVt
b3J5ID0gNCAqIHdpZHRoKCkgKiBoZWlnaHQoKTsKLSAgICAgICAgaWYgKGFjdGl2ZVBpeGVsTWVt
b3J5ICsgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPiBtYXhBY3RpdmVQaXhlbE1lbW9yeSgpKSB7Ci0g
ICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMg
dGhlIG1heGltdW0gbGltaXQgKCIpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRO
dW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKLSAgICAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgICAgICB9CisgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBp
eGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCisgICAgc2l6ZV90IHJlcXVl
c3RlZFBpeGVsTWVtb3J5ID0gNCAqIHdpZHRoKCkgKiBoZWlnaHQoKTsKKyAgICBpZiAoYWN0aXZl
UGl4ZWxNZW1vcnkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVtb3J5
KCkpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMg
dGhlIG1heGltdW0gbGltaXQgKCIpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJl
cihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOworICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQog
Ci0gICAgICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2FyZENv
bXBhdGliaWxpdHlNb2RlKTsKKyAgICBtX2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVz
ZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAKLSAgICAgICAgZG93bmNhc3Q8Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5zZXRVc2VzRGlzcGxheUxpc3REcmF3aW5n
KG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZyk7Ci0gICAgICAgIGRvd25jYXN0PENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90
cmFja3NEaXNwbGF5TGlzdFJlcGxheSk7CisgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPigqbV9jb250ZXh0KS5zZXRVc2VzRGlzcGxheUxpc3REcmF3aW5nKG1fdXNlc0Rpc3Bs
YXlMaXN0RHJhd2luZyk7CisgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigq
bV9jb250ZXh0KS5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0
UmVwbGF5KTsKIAotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7CiAKICNpZiBVU0UoSU9T
VVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQotICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21w
b3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwotICAgICAgICBpbnZhbGlk
YXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUg
YSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBD
YW52YXMKKyAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CiAjZW5kaWYK
LSAgICB9CiAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Kj4obV9jb250ZXh0LmdldCgpKTsKIH0KIAorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSwgdHlwZSk7CisK
KyAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzMmQoKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNv
bnRleHQyZCh0eXBlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEKj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogI2lmIEVOQUJMRShXRUJHTCkKIHN0YXRp
YyBib29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcldlYkdMKCkKIHsKQEAgLTM0
NSw3ICs0MTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRFbmFibGVXZWJHTChjb25zdCBTZXR0CiAg
ICAgcmV0dXJuIHNldHRpbmdzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiB9CiAK
LWJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK2Jv
b2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsK
ICAgICAvLyBSZXRhaW4gc3VwcG9ydCBmb3IgdGhlIGxlZ2FjeSAid2Via2l0LTNkIiBuYW1lLgog
ICAgIHJldHVybiB0eXBlID09ICJ3ZWJnbCIgfHwgdHlwZSA9PSAiZXhwZXJpbWVudGFsLXdlYmds
IgpAQCAtMzU1LDkgKzQyMywyOCBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZShj
b25zdCBTCiAgICAgICAgIHx8IHR5cGUgPT0gIndlYmtpdC0zZCI7CiB9CiAKK1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0woY29u
c3QgU3RyaW5nJiB0eXBlLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCit7CisgICAg
QVNTRVJUKEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSk7CisgICAgQVNTRVJU
KCFtX2NvbnRleHQpOworCisgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChkb2N1bWVudCgpLnNl
dHRpbmdzKCkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIG1fY29udGV4dCA9IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIHR5cGUpOworICAg
IGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJM
YXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKKyAg
ICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworCisgICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgq
dGhpcyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYgdHlw
ZSwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmIGF0dHJzKQogewotICAgIEFTU0VSVChIVE1MQ2Fu
dmFzRWxlbWVudDo6aXMzZFR5cGUodHlwZSkpOworICAgIEFTU0VSVChIVE1MQ2FudmFzRWxlbWVu
dDo6aXNXZWJHTFR5cGUodHlwZSkpOwogCiAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChkb2N1
bWVudCgpLnNldHRpbmdzKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTM2NSwxNiAr
NDUyLDggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZQogICAgIGlm
IChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXNXZWJHTCgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAgIG1fY29udGV4dCA9IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIHR5cGUpOwotICAgICAg
ICBpZiAobV9jb250ZXh0KSB7Ci0gICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJl
bmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZh
cwotICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwotCi0g
ICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQoKnRoaXMpOwotICAgICAgICB9Ci0gICAgfQotCisgICAgaWYgKCFtX2NvbnRl
eHQpCisgICAgICAgIHJldHVybiBjcmVhdGVDb250ZXh0V2ViR0wodHlwZSwgV1RGTW92ZShhdHRy
cykpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4o
bV9jb250ZXh0LmdldCgpKTsKIH0KICNlbmRpZgpAQCAtMzg1LDYgKzQ2NCwyNSBAQCBib29sIEhU
TUxDYW52YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUoY29uCiAgICAgcmV0dXJuIHR5cGUgPT0gIndl
YmdwdSI7CiB9CiAKK1dlYkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUodHlwZSkpOworICAgIEFT
U0VSVCghbV9jb250ZXh0KTsKKworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKCp0aGlzKTsK
KyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVu
ZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFz
CisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKworICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQoKnRoaXMpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHUFVSZW5kZXJp
bmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogV2ViR1BVUmVuZGVyaW5nQ29udGV4
dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBl
KQogewogICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BV
VHlwZSh0eXBlKSk7CkBAIC0zOTUsMjAgKzQ5MywzNSBAQCBXZWJHUFVSZW5kZXJpbmdDb250ZXh0
KiBIVE1MQ2FudmFzRWxlbWVuCiAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pc1dl
YkdQVSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmICghbV9jb250ZXh0KSB7
Ci0gICAgICAgIG1fY29udGV4dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSgqdGhp
cyk7Ci0gICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQgdG8gbWFr
ZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZv
ciB0aGUgQ2FudmFzCi0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0
aW9uKCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KKyAgICBp
ZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHUFUodHlwZSk7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRl
eHQuZ2V0KCkpOwogfQogI2VuZGlmCiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFw
UmVuZGVyZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICByZXR1cm4gdHlwZSA9PSAi
Yml0bWFwcmVuZGVyZXIiOworfQorCitJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJiB0
eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0
bWFwUmVuZGVyZXJUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBt
X2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4o
KnRoaXMpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJp
bmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6
aXNCaXRtYXBSZW5kZXJlclR5cGUodHlwZSkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAg
ICByZXR1cm4gY3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkp
OworfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDEwICs4Mywx
MCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBzaXplKCku
d2lkdGgoKTsgfQogICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS5o
ZWlnaHQoKTsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2l6ZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFdpZHRoKHVu
c2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQo
dW5zaWduZWQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIZWlnaHQodW5zaWduZWQpOworICAgIGNvbnN0
IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgIHZvaWQgc2V0
U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAgIHsgCkBAIC0xMDQsMTcgKzEwNCwyNCBA
QCBwdWJsaWM6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dChjb25zdCBT
dHJpbmcmKTsKIAogICAgIHN0YXRpYyBib29sIGlzMmRUeXBlKGNvbnN0IFN0cmluZyYpOworICAg
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogY3JlYXRlQ29udGV4dDJkKGNvbnN0IFN0cmluZyYg
dHlwZSk7CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBnZXRDb250ZXh0MmQoY29uc3Qg
U3RyaW5nJik7CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgc3RhdGljIGJvb2wgaXMzZFR5cGUo
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFR5cGUoY29uc3QgU3RyaW5n
Jik7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogY3JlYXRlQ29udGV4dFdlYkdMKGNv
bnN0IFN0cmluZyYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSogZ2V0Q29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMmJiA9IHsgfSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BVKQog
ICAgIHN0YXRpYyBib29sIGlzV2ViR1BVVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBXZWJHUFVS
ZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0V2ViR1BVKGNvbnN0IFN0cmluZyYpOwogICAg
IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJik7
CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnN0IFN0
cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogY3JlYXRlQ29udGV4dEJp
dG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dCogZ2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOworCiAgICAgV0VC
Q09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEpTQzo6
SlNWYWx1ZSBxdWFsaXR5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaWRsCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTcgKzI0LDE4IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKICAqLwogCi0gdHlwZWRlZiAoCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdM
KSAmJiBFTkFCTEVfV0VCR0wKLSAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2VuZGlm
Ci0gI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMMikgJiYgRU5BQkxFX1dFQkdMMgotICAgICBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2VuZGlmCi0gI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdQ
VSkgJiYgRU5BQkxFX1dFQkdQVQotICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCi0gI2Vu
ZGlmCi0gICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgUmVuZGVyaW5nQ29udGV4dDsKK3R5
cGVkZWYgKAorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKKyAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdM
MikgJiYgRU5BQkxFX1dFQkdMMgorICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRp
ZgorI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdQVSkgJiYgRU5BQkxFX1dFQkdQVQorICAgIFdlYkdQ
VVJlbmRlcmluZ0NvbnRleHQgb3IKKyNlbmRpZgorICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dCBvciAKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJlbmRlcmluZ0NvbnRleHQ7
CiAKIFsKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lv
biAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogI2VuZGlm
CiAgICAgdmlydHVhbCBib29sIGlzR1BVQmFzZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkg
e30KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiAwOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6SW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCisgICAgOiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKK3sKK30KKworfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKK3B1YmxpYzoK
KyAgICBzdHJ1Y3QgU2V0dGluZ3MgeworICAgICAgICBib29sIGFscGhhID0gdHJ1ZTsKKyAgICB9
OworCisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50Jik7
CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0JpdG1hcFJlbmRlcmVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZhc0VsZW1lbnQgY2FudmFz
OworICAgIC8vdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChJbWFnZUJpdG1hcD8gYml0bWFw
KTsKK307CisKK2RpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3Mg
eworICAgIGJvb2xlYW4gYWxwaGEgPSB0cnVlOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNw
cAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQoreworfQor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmlu
Z0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFj
ZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQgeworcHVibGljOgorICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNQbGFjZWhvbGRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323006</attachid>
            <date>2017-10-06 03:33:06 -0700</date>
            <delta_ts>2017-10-06 07:35:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171006033306.patch</filename>
            <type>text/plain</type>
            <size>45290</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDYgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1N0cmVhbWVyXVtNU0VdIExpa2VseSByYWNlIGNvbmRpdGlvbiBjYXVzZXMgV1RGOjpE
ZXF1ZSB0byBjcmFzaCBvbiBkZWJ1ZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03MTQsNiArNzE0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNUcmFuc2Zvcm0uaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5p
ZGwKKyAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAg
aHRtbC9jYW52YXMvSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmlkbAogICAgIGh0bWwvY2FudmFzL1Bh
dGgyRC5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsCkBAIC0xOTgzLDcgKzE5
ODQsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisgICAgaHRtbC9jYW52YXMvSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5jcHAK
KyAgICBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRt
bC9jYW52YXMvV2ViR1BVQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRC
dWZmZXIuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MzgsNiArNjM4
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhU
U2hhZGVyVGV4dHVyZUxPRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9F
WFRzUkdCLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0ltYWdlU21vb3Ro
aW5nUXVhbGl0eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjU5
LDEyICszMjU5LDE2IEBACiAJCTdDNzNGQjBEMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBCMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlcnNOYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0M3M0ZCMTExOTFFRjZGNDAwN0RFMDYxIC8qIEpT
VXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBGMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlci5jcHAgKi87IH07CiAJCTdDNzNGQjEyMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M3M0ZCMTAxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmggKi87
IH07CisJCTdDNzc2MUE4MUY4NzhBOEIwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuY3BwICovOyB9OworCQk3Qzc3NjFBQTFGODc4QUE1MDBGODY5RkMgLyogSlNJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNzkwM0I4MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dC5oICovOyB9OwogCQk3Qzc3QzNEMTFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlBy
b3BlcnR5QmFnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc3QzNEMDFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlByb3BlcnR5QmFnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M3N0MzRDQxREVGMTc4
RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0QyMURFRjE3OEUwMEE1MEJGQSAvKiBKU0Js
b2JQcm9wZXJ0eUJhZy5jcHAgKi87IH07CiAJCTdDNzdDM0Q1MURFRjE3OEUwMEE1MEJGQSAvKiBK
U0Jsb2JQcm9wZXJ0eUJhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M3N0MzRDMxREVGMTc4RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmgg
Ki87IH07CiAJCTdDNzdDM0Q3MURFRjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0Q2MURF
Rjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qzc3QzNEQjFERUY4NkQ3MDBBNTBCRkEgLyog
SlNCbG9iTGluZUVuZGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M3N0MzRDkxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdz
LmNwcCAqLzsgfTsKIAkJN0M3N0MzREMxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRp
bmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3
QzNEQTFERUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCAqLzsgfTsKKwkJN0M3
OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjAxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovOyB9OworCQk3
Qzc5MDNCNDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzkwM0Ix
MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovOyB9
OwogCQk3Qzc5NDFFNDFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0
MUUyMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovOyB9
OwogCQk3Qzc5NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQx
RTMxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLzsgfTsK
IAkJN0M4MTM5QTYxRUQ2Mjg2QTAwQ0UyNkU4IC8qIEpTRE9NQXR0cmlidXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgxMzlBMzFFRDYyODFEMDBD
RTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTE1MjIsNiArMTE1MjYsMTMgQEAKIAkJN0M3N0MzRDgxREVG
ODU0MDAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmxvYkxpbmVFbmRpbmdz
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3N0MzRDkxREVGODZENzAwQTUw
QkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQmxvYkxpbmVFbmRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M3N0MzREExREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYkxpbmVFbmRpbmdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0IwMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0IxMUY4
NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQjIxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQjcxRjg2RkRFNDAwNDYzQTcw
IC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0M3OTAzQjgxRjg2RkRFNjAwNDYzQTcwIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0JBMUY4NkZGMzMwMDQ2M0E3
MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExp
bmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0ZWN0
b3JzQ29yZVNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzc5NDFF
MzFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDODEzOUEzMUVENjI4MUQwMENFMjZFOCAvKiBK
U0RPTUF0dHJpYnV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUF0
dHJpYnV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg1MzIsNiArMTg1NDMs
OSBAQAogCQkJCTc3Mjg2OTRDMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaCAqLywKIAkJCQk3NzI4Njk0RDE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmlkbCAqLywKIAkJCQkzMTE1MThGQjFFNzhDMTVGMDBFQzUxNEEg
LyogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggKi8sCisJCQkJN0M3OTAzQjExRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJCQkJ
N0M3OTAzQjAxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5o
ICovLAorCQkJCTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQuaWRsICovLAogCQkJCTdDMTkzQkFGMUY1RTBFQjQwMDg4RjNFNiAvKiBJbWFnZVNt
b290aGluZ1F1YWxpdHkuaCAqLywKIAkJCQk3QzE5M0JBODFGNUUwRUFGMDA4OEYzRTYgLyogSW1h
Z2VTbW9vdGhpbmdRdWFsaXR5LmlkbCAqLywKIAkJCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQg
LyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8sCkBAIC0xODU1OCw2ICsxODU3Miw4IEBACiAJ
CQkJN0MxOTNCQTcxRjVFMEVBRjAwODhGM0U2IC8qIFBhdGgyRC5jcHAgKi8sCiAJCQkJN0MxOTNC
QUIxRjVFMEVCMTAwODhGM0U2IC8qIFBhdGgyRC5oICovLAogCQkJCTdDMTkzQkI0MUY1RTBFQjcw
MDg4RjNFNiAvKiBQYXRoMkQuaWRsICovLAorCQkJCTdDNzkwM0JBMUY4NkZGMzMwMDQ2M0E3MCAv
KiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0JDMUY4NkZG
MzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQlEM0Yz
RDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCAq
LywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4
dC5pZGwgKi8sCkBAIC0yMjEzMiw2ICsyMjE0OCw4IEBACiAJCQkJNkU0QUJDRDMxMzhFQTBCNzAw
NzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggKi8sCiAJCQkJRTQ0NjE0MEUwQ0Q2ODI2
OTAwRkFEQTc1IC8qIEpTSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjE0MEYwQ0Q2
ODI2OTAwRkFEQTc1IC8qIEpTSFRNTFZpZGVvRWxlbWVudC5oICovLAorCQkJCTdDNzkwM0I3MUY4
NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJ
CQkJN0M3OTAzQjgxRjg2RkRFNjAwNDYzQTcwIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmggKi8sCiAJCQkJQTc3OTc5MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNw
cCAqLywKIAkJCQlBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLywK
IAkJCQk3QzE5M0JGQjFGNUUxMEM0MDA4OEYzRTYgLyogSlNJbWFnZVNtb290aGluZ1F1YWxpdHku
Y3BwICovLApAQCAtMjgzMDgsNiArMjgzMjYsNyBAQAogCQkJCTQ2NzMwMjAyMUM0RUZFNzgwMEJD
QjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyNzUzNTcwMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3Jl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkExMEI5MjBCMzgx
OEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTIyQkQ5RjdG
MTM1MzYyNUMwMDlCRDEwMiAvKiBJbWFnZUJ1ZmZlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTIyQkQ5RjgxMTM1MzY0RkUwMDlCRDEwMiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTM5NCw2ICsyOTQxMyw3IEBACiAJCQkJQ0RDOEI1QTcxODA0NzRGNzAwMTZF
Njg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
REMxRTdBMThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNENjFGRTY4MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Qzc3NjFBQTFGODc4QUE1MDBGODY5RkMgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUw
OTE1MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4RTA5NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjk5LDYgKzMxNzE5LDcg
QEAKIAkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogQ1NTRm9udEZlYXR1cmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0QjREQjBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9u
dFNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyRTM4RjAxMUU4NDU3MzUwMENBM0FE
RiAvKiBDU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDNzc2
MUE4MUY4NzhBOEIwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDMkUzOEVGRDFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9udFN0
eWxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjEwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0ZvbnRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjFERjJFOTFEOUU0RTk5
MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzIzNDEsNiArMzIzNjIsNyBAQAogCQkJCUMzQ0YxN0E0MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMzQ0YxN0E2MTVCMDA2M0YwMDI3
NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1NkYwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDNEMjU5NzcxM0M4MTZGNDAwNjA4NTU5IC8qIEltYWdl
QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAv
KiBJbWFnZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIyOTJCMjdDMTM1NjY2OTQw
MENGMTFFRiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksNyBAQAogI2luY2x1
ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJI
aXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIEhUTUxQ
aWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50OwogY2xhc3MgSGl0VGVzdFJl
cXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2lu
dDsKQEAgLTI5Niw3ICsyOTcsOSBAQCB1c2luZyBSZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDwK
ICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiwK
ICNlbmRpZgotICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+PjsKKyAgICBSZWZQ
dHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiwKKyAgICBSZWZQdHI8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPgorPjsKIAogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDIyMjk3MikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAgdHlwZWRlZiAoCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBFTkFCTEVf
V0VCR1BVCiAgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCBvcgogI2VuZGlmCisgICAgSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIAogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkg
UmVuZGVyaW5nQ29udGV4dDsKIAogWwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIKQEAg
LTIwMywxNCArMjA0LDIwIEBAIEhhc2hTZXQ8RWxlbWVudCo+IEhUTUxDYW52YXNFbGVtZW50Ojpj
c3MKICAgICByZXR1cm4gY3NzQ2FudmFzQ2xpZW50czsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQorRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENh
bnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1ZSkKIHsKKyAgICBpZiAobV9jb250
ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRN
TE5vbk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0SGVpZ2h0KSkpOworICAgIHJldHVybiB7IH07CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVlKQorRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVl
KQogeworICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9taWNTdHJpbmc6Om51
bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdFdpZHRoKSkpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFjdGl2ZVBpeGVs
TWVtb3J5KCkKQEAgLTIyNSwzNiArMjMyLDg2IEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFj
dGl2ZVBpeGVsTWVtb3IKIAogRXhjZXB0aW9uT3I8c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250
ZXh0Pj4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRJZCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChpczJkVHlwZShjb250ZXh0SWQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0MmQoY29udGV4dElkKSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0gfTsKKyAgICBpZiAobV9jb250ZXh0KSB7
CisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgICAgIGlmIChtX2Nv
bnRleHQtPmlzMmQoKSkgeworICAgICAgICAgICAgaWYgKCFpczJkVHlwZShjb250ZXh0SWQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsg
c3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICB9CisK
KyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNCaXRtYXBSZW5kZXJlcigpKSB7CisgICAgICAgICAg
ICBpZiAoIWlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKworI2lmIEVOQUJM
RShXRUJHTCkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNXZWJHTCgpKSB7CisgICAgICAgICAg
ICBpZiAoIWlzV2ViR0xUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAg
ICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Pigq
bV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgICAgIEFTU0VSVChp
czxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSk7CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0
KSB9IH07CisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
ICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdQVSgpKSB7CisgICAgICAgICAgICBpZiAoIWlz
V2ViR1BVVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0
KSB9IH07CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6
bnVsbG9wdCB9OwogICAgIH0KIAorICAgIGlmIChpczJkVHlwZShjb250ZXh0SWQpKSB7CisgICAg
ICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHQyZChjb250ZXh0SWQpOworICAgICAgICBp
ZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29u
dGV4dCB9IH07CisgICAgfQorCisgICAgaWYgKGlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJ
ZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVy
KGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKKyAgICB9CisKICNpZiBFTkFCTEUo
V0VCR0wpCi0gICAgaWYgKGlzM2RUeXBlKGNvbnRleHRJZCkpIHsKKyAgICBpZiAoaXNXZWJHTFR5
cGUoY29udGV4dElkKSkgewogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShzdGF0ZS52bSgpKTsKICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udmVydDxJRExEaWN0
aW9uYXJ5PFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+PihzdGF0ZSwgIWFyZ3VtZW50cy5pc0VtcHR5
KCkgPyBhcmd1bWVudHNbMF0uZ2V0KCkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH0pOwogCi0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0V2ViR0woY29u
dGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKSkgewotICAgICAgICAgICAgaWYgKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OworICAg
ICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0V2ViR0woY29udGV4dElkLCBXVEZNb3Zl
KGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKworICAg
ICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRl
eHQpIH0gfTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICAgICAgaWYgKGlzPFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0
PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OworICAg
ICAgICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wy
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNv
bnRleHQpIH0gfTsKICNlbmRpZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAoaXNXZWJHUFVUeXBlKGNvbnRl
eHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRleHRXZWJHUFUoY29u
dGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRl
eHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07Ci0gICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0
IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRXZWJHUFUoY29udGV4dElk
KTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29u
dGV4dD4geyBjb250ZXh0IH0gfTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjY2LDEzICszMjMsMTYg
QEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbgogICAgIGlmIChIVE1M
Q2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0
MmQodHlwZSk7CiAKKyAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJU
eXBlKHR5cGUpKQorICAgICAgICByZXR1cm4gZ2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUp
OworCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2Vi
R1BVVHlwZSh0eXBlKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkdQVUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGdldENvbnRleHRXZWJHUFUodHlwZSk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6
OmlzM2RUeXBlKHR5cGUpKQorICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUo
dHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0V2ViR0wodHlwZSk7CiAjZW5kaWYKIApA
QCAtMjg0LDQ2ICszNDQsNTQgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUoY29u
c3QgUwogICAgIHJldHVybiB0eXBlID09ICIyZCI7CiB9CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUp
CitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250
ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIEFTU0VSVF9VTlVTRUQoSFRNTENhbnZh
c0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7
CiAKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzMmQoKSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBib29sIHVzZXNE
YXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNlOworICAgIGJvb2wgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQotICAgICAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBkb2N1bWVudCgpLnNl
dHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKKyAgICB1
c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNl
c0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKICNlbmRpZgogCi0gICAgICAg
IC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lz
dGVtIGNhbiBzdXBwb3J0LgotICAgICAgICBzaXplX3QgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0
ICogd2lkdGgoKSAqIGhlaWdodCgpOwotICAgICAgICBpZiAoYWN0aXZlUGl4ZWxNZW1vcnkgKyBy
ZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkpIHsKLSAgICAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4
aW11bSBsaW1pdCAoIik7Ci0gICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlciht
YXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwotICAgICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwotICAgICAgICAgICAgZG9jdW1lbnQoKS5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVt
b3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4KKyAgICBzaXplX3QgcmVxdWVzdGVkUGl4
ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgpOworICAgIGlmIChhY3RpdmVQaXhlbE1l
bW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4
aW11bSBsaW1pdCAoIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFj
dGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CisgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICAg
ICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUpOworICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rhc2hi
b2FyZENvbXBhdGliaWxpdHlNb2RlKTsKIAotICAgICAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcobV91c2Vz
RGlzcGxheUxpc3REcmF3aW5nKTsKLSAgICAgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rp
c3BsYXlMaXN0UmVwbGF5KTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRl
eHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkp
OwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKIAogI2lmIFVTRShJT1NVUkZBQ0Vf
Q0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0g
ICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5n
IGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRl
ckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwor
ICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKICNlbmRpZgotICAgIH0K
IAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2Nv
bnRleHQuZ2V0KCkpOwogfQogCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9V
TlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsKKworICAgIGlm
IChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dDJk
KHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQq
PihtX2NvbnRleHQuZ2V0KCkpOworfQorCiAjaWYgRU5BQkxFKFdFQkdMKQogc3RhdGljIGJvb2wg
cmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKQogewpAQCAtMzQ1LDcgKzQx
Myw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZVdlYkdMKGNvbnN0IFNldHQKICAgICByZXR1
cm4gc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKIH0KIAotYm9vbCBI
VE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQorYm9vbCBIVE1M
Q2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIC8v
IFJldGFpbiBzdXBwb3J0IGZvciB0aGUgbGVnYWN5ICJ3ZWJraXQtM2QiIG5hbWUuCiAgICAgcmV0
dXJuIHR5cGUgPT0gIndlYmdsIiB8fCB0eXBlID09ICJleHBlcmltZW50YWwtd2ViZ2wiCkBAIC0z
NTUsOSArNDIzLDI4IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFMK
ICAgICAgICAgfHwgdHlwZSA9PSAid2Via2l0LTNkIjsKIH0KIAorV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJp
bmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKK3sKKyAgICBBU1NFUlQo
SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29u
dGV4dCk7CisKKyAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7CisgICAgaWYgKG1f
Y29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFu
ZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgICAgICBp
bnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisKKyAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsK
KyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhU
TUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiB0eXBlLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCiB7Ci0gICAgQVNTRVJUKEhUTUxDYW52YXNFbGVt
ZW50OjppczNkVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50Ojppc1dl
YkdMVHlwZSh0eXBlKSk7CiAKICAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKGRvY3VtZW50KCku
c2V0dGluZ3MoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMzY1LDE2ICs0NTIsOCBA
QCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlCiAgICAgaWYgKG1fY29u
dGV4dCAmJiAhbV9jb250ZXh0LT5pc1dlYkdMKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7Ci0gICAgICAgIGlmICht
X2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5
ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCi0gICAg
ICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7Ci0KLSAgICAgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KKyAgICBpZiAoIW1fY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHTCh0eXBlLCBXVEZNb3ZlKGF0dHJzKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPihtX2NvbnRl
eHQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC0zODUsNiArNDY0LDI1IEBAIGJvb2wgSFRNTENhbnZh
c0VsZW1lbnQ6OmlzV2ViR1BVVHlwZShjb24KICAgICByZXR1cm4gdHlwZSA9PSAid2ViZ3B1IjsK
IH0KIAorV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNv
bnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQodHlw
ZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFt
X2NvbnRleHQpOworCisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBt
X2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoKnRoaXMpOworICAgIGlm
IChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKKyAgICAg
ICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworCisgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhp
cyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5
cGUpKTsKQEAgLTM5NSwyMCArNDkzLDM1IEBAIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxD
YW52YXNFbGVtZW4KICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzV2ViR1BVKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAg
ICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKCp0aGlzKTsKLSAg
ICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUg
YSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBD
YW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsK
LQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAgfQotICAgIH0KLQorICAgIGlmICghbV9j
b250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdQVSh0eXBlKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQo
KSk7CiB9CiAjZW5kaWYKIAorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJl
clR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiB0eXBlID09ICJiaXRtYXBy
ZW5kZXJlciI7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0Vs
ZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmIHR5cGUpCit7
CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5k
ZXJlclR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIG1fY29udGV4
dCA9IHN0ZDo6bWFrZV91bmlxdWU8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7
CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4o
bV9jb250ZXh0LmdldCgpKTsKK30KKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYgdHlw
ZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1h
cFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVy
biBjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIodHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisK
IHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODMsMTAgKzgzLDEwIEBAIHB1
YmxpYzoKICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgp
OyB9CiAgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgp
OyB9CiAKLSAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgodW5zaWduZWQp
OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEhlaWdodCh1bnNpZ25l
ZCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgY29uc3QgSW50U2l6
ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCiAgICAgdm9pZCBzZXRTaXplKGNv
bnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgeyAKQEAgLTEwNCwxNyArMTA0LDI0IEBAIHB1Ymxp
YzoKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYp
OwogCiAgICAgc3RhdGljIGJvb2wgaXMyZFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKTsK
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGdldENvbnRleHQyZChjb25zdCBTdHJpbmcm
KTsKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBzdGF0aWMgYm9vbCBpczNkVHlwZShjb25zdCBT
dHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmKTsKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjcmVhdGVDb250ZXh0V2ViR0woY29uc3QgU3Ry
aW5nJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmID0geyB9KTsKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBnZXRDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiwgV2ViR0xDb250ZXh0
QXR0cmlidXRlcyYmID0geyB9KTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3Rh
dGljIGJvb2wgaXNXZWJHUFVUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIFdlYkdQVVJlbmRlcmlu
Z0NvbnRleHQqIGNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJik7CiAgICAgV2ViR1BV
UmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmKTsKICNlbmRp
ZgogCisgICAgc3RhdGljIGJvb2wgaXNCaXRtYXBSZW5kZXJlclR5cGUoY29uc3QgU3RyaW5nJik7
CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0Qml0bWFwUmVu
ZGVyZXIoY29uc3QgU3RyaW5nJik7CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBn
ZXRDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7CisKICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
UmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVl
IHF1YWxpdHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNyArMjQsMTggQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKLSB0eXBlZGVmICgKLSAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVO
QUJMRV9XRUJHTAotICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAjaWYg
ZGVmaW5lZChFTkFCTEVfV0VCR0wyKSAmJiBFTkFCTEVfV0VCR0wyCi0gICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBF
TkFCTEVfV0VCR1BVCi0gICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAg
ICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJpbmdDb250ZXh0OwordHlwZWRlZiAo
CisjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVOQUJMRV9XRUJHTAorICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCBvcgorI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wyKSAmJiBF
TkFCTEVfV0VCR0wyCisgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBvcgorI2VuZGlmCisjaWYg
ZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBFTkFCTEVfV0VCR1BVCisgICAgV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCBvcgorI2VuZGlmCisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9y
IAorICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgUmVuZGVyaW5nQ29udGV4dDsKIAogWwog
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDIyMjk3
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2
aXJ0dWFsIGJvb2wgaXNHUFVCYXNlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc0JpdG1hcFJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7fQogICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQoY2FudmFzKQoreworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0
cnVjdCBTZXR0aW5ncyB7CisgICAgICAgIGJvb2wgYWxwaGEgPSB0cnVlOworICAgIH07CisKKyAg
ICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmKTsKKworcHJp
dmF0ZToKKyAgICBib29sIGlzQml0bWFwUmVuZGVyZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQg
eworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisgICAg
Ly92b2lkIHRyYW5zZmVyRnJvbUltYWdlQml0bWFwKEltYWdlQml0bWFwPyBiaXRtYXApOworfTsK
KworZGljdGlvbmFyeSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyB7CisgICAg
Ym9vbGVhbiBhbHBoYSA9IHRydWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgY2Fu
dmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCit7Cit9CisKK30KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGFj
ZWhvbGRlclJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dCB7CitwdWJsaWM6CisgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52
YXNFbGVtZW50Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323015</attachid>
            <date>2017-10-06 07:35:53 -0700</date>
            <delta_ts>2017-10-06 11:40:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171006073545.patch</filename>
            <type>text/plain</type>
            <size>45593</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE3LTEwLTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHUFUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6aXNHUFVCYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25Db3B5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbGVhc2VJbWFnZUJ1ZmZlckFuZENvbnRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvRW5jb2RpbmdNaW1lVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpxdWFsaXR5RnJvbUpTVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRvTWVkaWFTYW1wbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNhcHR1cmVTdHJl
YW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNlY3Vy
aXR5T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzaG91bGRBY2NlbGVyYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjptZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpleHRlcm5hbE1lbW9yeUNvc3QgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFVzZXNE
aXNwbGF5TGlzdERyYXdpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaXNwbGF5TGlzdEFzVGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVwbGF5RGlzcGxh
eUxpc3RBc1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6ZHJhd2luZ0NvbnRleHQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmV4aXN0
aW5nRHJhd2luZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmJ1ZmZlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVk
SW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmJh
c2VUcmFuc2Zvcm0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojppc0JpdG1hcFJlbmRl
cmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Omlz
UGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTctMTAt
MDYgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1N0cmVhbWVyXVtNU0VdIExpa2VseSByYWNlIGNvbmRpdGlvbiBjYXVzZXMgV1RGOjpE
ZXF1ZSB0byBjcmFzaCBvbiBkZWJ1ZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03MTQsNiArNzE0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNUcmFuc2Zvcm0uaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5p
ZGwKKyAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAg
aHRtbC9jYW52YXMvSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmlkbAogICAgIGh0bWwvY2FudmFzL1Bh
dGgyRC5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsCkBAIC0xOTgzLDcgKzE5
ODQsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisgICAgaHRtbC9jYW52YXMvSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5jcHAK
KyAgICBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRt
bC9jYW52YXMvV2ViR1BVQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRC
dWZmZXIuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MzgsNiArNjM4
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhU
U2hhZGVyVGV4dHVyZUxPRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9F
WFRzUkdCLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0ltYWdlU21vb3Ro
aW5nUXVhbGl0eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjU5
LDEyICszMjU5LDE2IEBACiAJCTdDNzNGQjBEMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBCMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlcnNOYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0M3M0ZCMTExOTFFRjZGNDAwN0RFMDYxIC8qIEpT
VXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNzNGQjBGMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFu
ZGxlci5jcHAgKi87IH07CiAJCTdDNzNGQjEyMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNz
YWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M3M0ZCMTAxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmggKi87
IH07CisJCTdDNzc2MUE4MUY4NzhBOEIwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuY3BwICovOyB9OworCQk3Qzc3NjFBQTFGODc4QUE1MDBGODY5RkMgLyogSlNJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNzkwM0I4MUY4NkZERTYwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dC5oICovOyB9OwogCQk3Qzc3QzNEMTFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlBy
b3BlcnR5QmFnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc3QzNEMDFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlByb3BlcnR5QmFnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M3N0MzRDQxREVGMTc4
RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0QyMURFRjE3OEUwMEE1MEJGQSAvKiBKU0Js
b2JQcm9wZXJ0eUJhZy5jcHAgKi87IH07CiAJCTdDNzdDM0Q1MURFRjE3OEUwMEE1MEJGQSAvKiBK
U0Jsb2JQcm9wZXJ0eUJhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M3N0MzRDMxREVGMTc4RTAwQTUwQkZBIC8qIEpTQmxvYlByb3BlcnR5QmFnLmgg
Ki87IH07CiAJCTdDNzdDM0Q3MURFRjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0Q2MURF
Rjg1MEEwMEE1MEJGQSAvKiBCbG9iTGluZUVuZGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qzc3QzNEQjFERUY4NkQ3MDBBNTBCRkEgLyog
SlNCbG9iTGluZUVuZGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M3N0MzRDkxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdz
LmNwcCAqLzsgfTsKIAkJN0M3N0MzREMxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRp
bmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3
QzNEQTFERUY4NkQ3MDBBNTBCRkEgLyogSlNCbG9iTGluZUVuZGluZ3MuaCAqLzsgfTsKKwkJN0M3
OTAzQjMxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjAxRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovOyB9OworCQk3
Qzc5MDNCNDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzkwM0Ix
MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovOyB9
OwogCQk3Qzc5NDFFNDFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0
MUUyMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovOyB9
OwogCQk3Qzc5NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQx
RTMxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLzsgfTsK
IAkJN0M4MTM5QTYxRUQ2Mjg2QTAwQ0UyNkU4IC8qIEpTRE9NQXR0cmlidXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgxMzlBMzFFRDYyODFEMDBD
RTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTE1MjIsNiArMTE1MjYsMTMgQEAKIAkJN0M3N0MzRDgxREVG
ODU0MDAwQTUwQkZBIC8qIEJsb2JMaW5lRW5kaW5ncy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmxvYkxpbmVFbmRpbmdz
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3N0MzRDkxREVGODZENzAwQTUw
QkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQmxvYkxpbmVFbmRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M3N0MzREExREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYkxpbmVFbmRpbmdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0IwMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0IxMUY4
NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQjIxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQjcxRjg2RkRFNDAwNDYzQTcw
IC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0M3OTAzQjgxRjg2RkRFNjAwNDYzQTcwIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0JBMUY4NkZGMzMwMDQ2M0E3
MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExp
bmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0ZWN0
b3JzQ29yZVNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzc5NDFF
MzFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDODEzOUEzMUVENjI4MUQwMENFMjZFOCAvKiBK
U0RPTUF0dHJpYnV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUF0
dHJpYnV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg1MzIsNiArMTg1NDMs
OSBAQAogCQkJCTc3Mjg2OTRDMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaCAqLywKIAkJCQk3NzI4Njk0RDE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmlkbCAqLywKIAkJCQkzMTE1MThGQjFFNzhDMTVGMDBFQzUxNEEg
LyogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggKi8sCisJCQkJN0M3OTAzQjExRjg2
Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJCQkJ
N0M3OTAzQjAxRjg2Rjk1QzAwNDYzQTcwIC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5o
ICovLAorCQkJCTdDNzkwM0IyMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQuaWRsICovLAogCQkJCTdDMTkzQkFGMUY1RTBFQjQwMDg4RjNFNiAvKiBJbWFnZVNt
b290aGluZ1F1YWxpdHkuaCAqLywKIAkJCQk3QzE5M0JBODFGNUUwRUFGMDA4OEYzRTYgLyogSW1h
Z2VTbW9vdGhpbmdRdWFsaXR5LmlkbCAqLywKIAkJCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQg
LyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8sCkBAIC0xODU1OCw2ICsxODU3Miw4IEBACiAJ
CQkJN0MxOTNCQTcxRjVFMEVBRjAwODhGM0U2IC8qIFBhdGgyRC5jcHAgKi8sCiAJCQkJN0MxOTNC
QUIxRjVFMEVCMTAwODhGM0U2IC8qIFBhdGgyRC5oICovLAogCQkJCTdDMTkzQkI0MUY1RTBFQjcw
MDg4RjNFNiAvKiBQYXRoMkQuaWRsICovLAorCQkJCTdDNzkwM0JBMUY4NkZGMzMwMDQ2M0E3MCAv
KiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0JDMUY4NkZG
MzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQlEM0Yz
RDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCAq
LywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4
dC5pZGwgKi8sCkBAIC0yMjEzMiw2ICsyMjE0OCw4IEBACiAJCQkJNkU0QUJDRDMxMzhFQTBCNzAw
NzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggKi8sCiAJCQkJRTQ0NjE0MEUwQ0Q2ODI2
OTAwRkFEQTc1IC8qIEpTSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjE0MEYwQ0Q2
ODI2OTAwRkFEQTc1IC8qIEpTSFRNTFZpZGVvRWxlbWVudC5oICovLAorCQkJCTdDNzkwM0I3MUY4
NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJ
CQkJN0M3OTAzQjgxRjg2RkRFNjAwNDYzQTcwIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmggKi8sCiAJCQkJQTc3OTc5MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNw
cCAqLywKIAkJCQlBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLywK
IAkJCQk3QzE5M0JGQjFGNUUxMEM0MDA4OEYzRTYgLyogSlNJbWFnZVNtb290aGluZ1F1YWxpdHku
Y3BwICovLApAQCAtMjgzMDgsNiArMjgzMjYsNyBAQAogCQkJCTQ2NzMwMjAyMUM0RUZFNzgwMEJD
QjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyNzUzNTcwMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3Jl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Qzc5MDNCMzFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkExMEI5MjBCMzgx
OEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTIyQkQ5RjdG
MTM1MzYyNUMwMDlCRDEwMiAvKiBJbWFnZUJ1ZmZlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTIyQkQ5RjgxMTM1MzY0RkUwMDlCRDEwMiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTM5NCw2ICsyOTQxMyw3IEBACiAJCQkJQ0RDOEI1QTcxODA0NzRGNzAwMTZF
Njg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
REMxRTdBMThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNENjFGRTY4MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3Qzc3NjFBQTFGODc4QUE1MDBGODY5RkMgLyog
SlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUw
OTE1MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4RTA5NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjk5LDYgKzMxNzE5LDcg
QEAKIAkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogQ1NTRm9udEZlYXR1cmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0QjREQjBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9u
dFNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyRTM4RjAxMUU4NDU3MzUwMENBM0FE
RiAvKiBDU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDNzc2
MUE4MUY4NzhBOEIwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDMkUzOEVGRDFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9udFN0
eWxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjEwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0ZvbnRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjFERjJFOTFEOUU0RTk5
MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzIzNDEsNiArMzIzNjIsNyBAQAogCQkJCUMzQ0YxN0E0MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMzQ0YxN0E2MTVCMDA2M0YwMDI3
NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1NkYwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdDNzkwM0I0MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDNEMjU5NzcxM0M4MTZGNDAwNjA4NTU5IC8qIEltYWdl
QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAv
KiBJbWFnZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIyOTJCMjdDMTM1NjY2OTQw
MENGMTFFRiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjIyOTcyKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksNyBAQAogI2luY2x1
ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJI
aXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyMjI5NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIEhUTUxQ
aWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50OwogY2xhc3MgSGl0VGVzdFJl
cXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2lu
dDsKQEAgLTI5Niw3ICsyOTcsOSBAQCB1c2luZyBSZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDwK
ICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiwK
ICNlbmRpZgotICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+PjsKKyAgICBSZWZQ
dHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiwKKyAgICBSZWZQdHI8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPgorPjsKIAogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDIyMjk3MikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAgdHlwZWRlZiAoCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBFTkFCTEVf
V0VCR1BVCiAgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCBvcgogI2VuZGlmCisgICAgSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIAogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkg
UmVuZGVyaW5nQ29udGV4dDsKIAogWwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIKQEAg
LTIwMywxNCArMjA0LDIwIEBAIEhhc2hTZXQ8RWxlbWVudCo+IEhUTUxDYW52YXNFbGVtZW50Ojpj
c3MKICAgICByZXR1cm4gY3NzQ2FudmFzQ2xpZW50czsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQorRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENh
bnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1ZSkKIHsKKyAgICBpZiAobV9jb250
ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRN
TE5vbk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0SGVpZ2h0KSkpOworICAgIHJldHVybiB7IH07CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVlKQorRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVl
KQogeworICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9taWNTdHJpbmc6Om51
bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdFdpZHRoKSkpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFjdGl2ZVBpeGVs
TWVtb3J5KCkKQEAgLTIyNSwzNiArMjMyLDg2IEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1heEFj
dGl2ZVBpeGVsTWVtb3IKIAogRXhjZXB0aW9uT3I8c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250
ZXh0Pj4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRJZCwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChpczJkVHlwZShjb250ZXh0SWQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0MmQoY29udGV4dElkKSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0gfTsKKyAgICBpZiAobV9jb250ZXh0KSB7
CisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgICAgIGlmIChtX2Nv
bnRleHQtPmlzMmQoKSkgeworICAgICAgICAgICAgaWYgKCFpczJkVHlwZShjb250ZXh0SWQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsg
c3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICB9CisK
KyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNCaXRtYXBSZW5kZXJlcigpKSB7CisgICAgICAgICAg
ICBpZiAoIWlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIH0KKworI2lmIEVOQUJM
RShXRUJHTCkKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNXZWJHTCgpKSB7CisgICAgICAgICAg
ICBpZiAoIWlzV2ViR0xUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAg
ICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Pigq
bV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgICAgIEFTU0VSVChp
czxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSk7CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0
KSB9IH07CisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
ICAgICAgICBpZiAobV9jb250ZXh0LT5pc1dlYkdQVSgpKSB7CisgICAgICAgICAgICBpZiAoIWlz
V2ViR1BVVHlwZShjb250ZXh0SWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHUFVSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0
KSB9IH07CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6
bnVsbG9wdCB9OwogICAgIH0KIAorICAgIGlmIChpczJkVHlwZShjb250ZXh0SWQpKSB7CisgICAg
ICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHQyZChjb250ZXh0SWQpOworICAgICAgICBp
ZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgY29u
dGV4dCB9IH07CisgICAgfQorCisgICAgaWYgKGlzQml0bWFwUmVuZGVyZXJUeXBlKGNvbnRleHRJ
ZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4dEJpdG1hcFJlbmRlcmVy
KGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAgICAg
IHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dD4geyBjb250ZXh0IH0gfTsKKyAgICB9CisKICNpZiBFTkFCTEUo
V0VCR0wpCi0gICAgaWYgKGlzM2RUeXBlKGNvbnRleHRJZCkpIHsKKyAgICBpZiAoaXNXZWJHTFR5
cGUoY29udGV4dElkKSkgewogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShzdGF0ZS52bSgpKTsKICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udmVydDxJRExEaWN0
aW9uYXJ5PFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+PihzdGF0ZSwgIWFyZ3VtZW50cy5pc0VtcHR5
KCkgPyBhcmd1bWVudHNbMF0uZ2V0KCkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH0pOwogCi0gICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBnZXRDb250ZXh0V2ViR0woY29u
dGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKSkgewotICAgICAgICAgICAgaWYgKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OworICAg
ICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVDb250ZXh0V2ViR0woY29udGV4dElkLCBXVEZNb3Zl
KGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKworICAg
ICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRl
eHQpIH0gfTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICAgICAgaWYgKGlzPFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ+KCpjb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0
PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OworICAg
ICAgICBBU1NFUlQoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wy
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNv
bnRleHQpIH0gfTsKICNlbmRpZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4g
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OwogICAgIH0K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAoaXNXZWJHUFVUeXBlKGNvbnRl
eHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRleHRXZWJHUFUoY29u
dGV4dElkKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRl
eHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+IHsgY29udGV4dCB9IH07Ci0gICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0
IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRleHRXZWJHUFUoY29udGV4dElk
KTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29u
dGV4dD4geyBjb250ZXh0IH0gfTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjY2LDEzICszMjMsMTYg
QEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbgogICAgIGlmIChIVE1M
Q2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0
MmQodHlwZSk7CiAKKyAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJU
eXBlKHR5cGUpKQorICAgICAgICByZXR1cm4gZ2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKHR5cGUp
OworCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2Vi
R1BVVHlwZSh0eXBlKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkdQVUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGdldENvbnRleHRXZWJHUFUodHlwZSk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBpZiAoSFRNTENhbnZhc0VsZW1lbnQ6
OmlzM2RUeXBlKHR5cGUpKQorICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUo
dHlwZSkpCiAgICAgICAgIHJldHVybiBnZXRDb250ZXh0V2ViR0wodHlwZSk7CiAjZW5kaWYKIApA
QCAtMjg0LDQ2ICszNDQsNTQgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUoY29u
c3QgUwogICAgIHJldHVybiB0eXBlID09ICIyZCI7CiB9CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUp
CitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250
ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIEFTU0VSVF9VTlVTRUQoSFRNTENhbnZh
c0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7
CiAKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzMmQoKSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBib29sIHVzZXNE
YXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9IGZhbHNlOworICAgIGJvb2wgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2U7CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQotICAgICAgICB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBkb2N1bWVudCgpLnNl
dHRpbmdzKCkudXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKKyAgICB1
c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkudXNl
c0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKICNlbmRpZgogCi0gICAgICAg
IC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lz
dGVtIGNhbiBzdXBwb3J0LgotICAgICAgICBzaXplX3QgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPSA0
ICogd2lkdGgoKSAqIGhlaWdodCgpOwotICAgICAgICBpZiAoYWN0aXZlUGl4ZWxNZW1vcnkgKyBy
ZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkpIHsKLSAgICAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4
aW11bSBsaW1pdCAoIik7Ci0gICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlciht
YXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwotICAgICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwotICAgICAgICAgICAgZG9jdW1lbnQoKS5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVt
b3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4KKyAgICBzaXplX3QgcmVxdWVzdGVkUGl4
ZWxNZW1vcnkgPSA0ICogd2lkdGgoKSAqIGhlaWdodCgpOworICAgIGlmIChhY3RpdmVQaXhlbE1l
bW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4
aW11bSBsaW1pdCAoIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFj
dGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CisgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICAg
ICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUpOworICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rhc2hi
b2FyZENvbXBhdGliaWxpdHlNb2RlKTsKIAotICAgICAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcobV91c2Vz
RGlzcGxheUxpc3REcmF3aW5nKTsKLSAgICAgICAgZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPigqbV9jb250ZXh0KS5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rp
c3BsYXlMaXN0UmVwbGF5KTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpLnNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKTsKKyAgICBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRl
eHQpLnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkp
OwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCgqdGhpcyk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKIAogI2lmIFVTRShJT1NVUkZBQ0Vf
Q0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0g
ICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5n
IGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCi0gICAgICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRl
ckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwor
ICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKICNlbmRpZgotICAgIH0K
IAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2Nv
bnRleHQuZ2V0KCkpOwogfQogCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9V
TlVTRUQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzMmRUeXBlKHR5cGUpLCB0eXBlKTsKKworICAgIGlm
IChtX2NvbnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dDJk
KHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQq
PihtX2NvbnRleHQuZ2V0KCkpOworfQorCiAjaWYgRU5BQkxFKFdFQkdMKQogc3RhdGljIGJvb2wg
cmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKQogewpAQCAtMzQ1LDcgKzQx
Myw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZVdlYkdMKGNvbnN0IFNldHQKICAgICByZXR1
cm4gc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKIH0KIAotYm9vbCBI
VE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQorYm9vbCBIVE1M
Q2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIC8v
IFJldGFpbiBzdXBwb3J0IGZvciB0aGUgbGVnYWN5ICJ3ZWJraXQtM2QiIG5hbWUuCiAgICAgcmV0
dXJuIHR5cGUgPT0gIndlYmdsIiB8fCB0eXBlID09ICJleHBlcmltZW50YWwtd2ViZ2wiCkBAIC0z
NTUsOSArNDIzLDI4IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKGNvbnN0IFMK
ICAgICAgICAgfHwgdHlwZSA9PSAid2Via2l0LTNkIjsKIH0KIAorV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJp
bmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKK3sKKyAgICBBU1NFUlQo
SFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29u
dGV4dCk7CisKKyAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7CisgICAgaWYgKG1f
Y29udGV4dCkgeworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFu
ZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgICAgICBp
bnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisKKyAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsK
KyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhU
TUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiB0eXBlLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzJiYgYXR0cnMpCiB7Ci0gICAgQVNTRVJUKEhUTUxDYW52YXNFbGVt
ZW50OjppczNkVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKEhUTUxDYW52YXNFbGVtZW50Ojppc1dl
YkdMVHlwZSh0eXBlKSk7CiAKICAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKGRvY3VtZW50KCku
c2V0dGluZ3MoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMzY1LDE2ICs0NTIsOCBA
QCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlCiAgICAgaWYgKG1fY29u
dGV4dCAmJiAhbV9jb250ZXh0LT5pc1dlYkdMKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7Ci0gICAgICAgIGlmICht
X2NvbnRleHQpIHsKLSAgICAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5
ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCi0gICAg
ICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7Ci0KLSAgICAgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dCgqdGhpcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KKyAgICBpZiAoIW1fY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRXZWJHTCh0eXBlLCBXVEZNb3ZlKGF0dHJzKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPihtX2NvbnRl
eHQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC0zODUsNiArNDY0LDI1IEBAIGJvb2wgSFRNTENhbnZh
c0VsZW1lbnQ6OmlzV2ViR1BVVHlwZShjb24KICAgICByZXR1cm4gdHlwZSA9PSAid2ViZ3B1IjsK
IH0KIAorV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNv
bnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQodHlw
ZSwgSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR1BVVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFt
X2NvbnRleHQpOworCisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBt
X2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoKnRoaXMpOworICAgIGlm
IChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKKyAgICAg
ICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworCisgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhp
cyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCiBXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5
cGUpKTsKQEAgLTM5NSwyMCArNDkzLDM1IEBAIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxD
YW52YXNFbGVtZW4KICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzV2ViR1BVKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAg
ICAgbV9jb250ZXh0ID0gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKCp0aGlzKTsKLSAg
ICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUg
YSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBD
YW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsK
LQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAgfQotICAgIH0KLQorICAgIGlmICghbV9j
b250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdQVSh0eXBlKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQo
KSk7CiB9CiAjZW5kaWYKIAorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJl
clR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiB0eXBlID09ICJiaXRtYXBy
ZW5kZXJlciI7Cit9CisKK0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0Vs
ZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmIHR5cGUpCit7
CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5k
ZXJlclR5cGUodHlwZSkpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIG1fY29udGV4
dCA9IHN0ZDo6bWFrZV91bmlxdWU8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7
CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Kj4o
bV9jb250ZXh0LmdldCgpKTsKK30KKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKGNvbnN0IFN0cmluZyYgdHlw
ZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52YXNFbGVtZW50Ojppc0JpdG1h
cFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVy
biBjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIodHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisK
IHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODMsMTAgKzgzLDEwIEBAIHB1
YmxpYzoKICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgp
OyB9CiAgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgp
OyB9CiAKLSAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgodW5zaWduZWQp
OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEhlaWdodCh1bnNpZ25l
ZCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgY29uc3QgSW50U2l6
ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCiAgICAgdm9pZCBzZXRTaXplKGNv
bnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgeyAKQEAgLTEwNCwxNyArMTA0LDI0IEBAIHB1Ymxp
YzoKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYp
OwogCiAgICAgc3RhdGljIGJvb2wgaXMyZFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKTsK
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGdldENvbnRleHQyZChjb25zdCBTdHJpbmcm
KTsKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBzdGF0aWMgYm9vbCBpczNkVHlwZShjb25zdCBT
dHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmKTsKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjcmVhdGVDb250ZXh0V2ViR0woY29uc3QgU3Ry
aW5nJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmID0geyB9KTsKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBnZXRDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiwgV2ViR0xDb250ZXh0
QXR0cmlidXRlcyYmID0geyB9KTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3Rh
dGljIGJvb2wgaXNXZWJHUFVUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIFdlYkdQVVJlbmRlcmlu
Z0NvbnRleHQqIGNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3RyaW5nJik7CiAgICAgV2ViR1BV
UmVuZGVyaW5nQ29udGV4dCogZ2V0Q29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmKTsKICNlbmRp
ZgogCisgICAgc3RhdGljIGJvb2wgaXNCaXRtYXBSZW5kZXJlclR5cGUoY29uc3QgU3RyaW5nJik7
CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBjcmVhdGVDb250ZXh0Qml0bWFwUmVu
ZGVyZXIoY29uc3QgU3RyaW5nJik7CisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBn
ZXRDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7CisKICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
UmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVl
IHF1YWxpdHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDIyMjk3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNyArMjQsMTggQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKLSB0eXBlZGVmICgKLSAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVO
QUJMRV9XRUJHTAotICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAjaWYg
ZGVmaW5lZChFTkFCTEVfV0VCR0wyKSAmJiBFTkFCTEVfV0VCR0wyCi0gICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBF
TkFCTEVfV0VCR1BVCi0gICAgIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQgb3IKLSAjZW5kaWYKLSAg
ICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJpbmdDb250ZXh0OwordHlwZWRlZiAo
CisjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVOQUJMRV9XRUJHTAorICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCBvcgorI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wyKSAmJiBF
TkFCTEVfV0VCR0wyCisgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBvcgorI2VuZGlmCisjaWYg
ZGVmaW5lZChFTkFCTEVfV0VCR1BVKSAmJiBFTkFCTEVfV0VCR1BVCisgICAgV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCBvcgorI2VuZGlmCisgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9y
IAorICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgUmVuZGVyaW5nQ29udGV4dDsKIAogWwog
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDIyMjk3
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2
aXJ0dWFsIGJvb2wgaXNHUFVCYXNlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc0JpdG1hcFJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7fQogICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQoY2FudmFzKQoreworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0
cnVjdCBTZXR0aW5ncyB7CisgICAgICAgIGJvb2wgYWxwaGEgPSB0cnVlOworICAgIH07CisKKyAg
ICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmKTsKKworcHJp
dmF0ZToKKyAgICBib29sIGlzQml0bWFwUmVuZGVyZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9Cit9OworCit9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5H
Q09OVEVYVChXZWJDb3JlOjpJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQsIGlzQml0bWFwUmVu
ZGVyZXIoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRXhwb3Nl
ZD1XaW5kb3cKK10gaW50ZXJmYWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhczsKKworICAgIC8vIEZJ
WE1FOiBBZGQgc3VwcG9ydCBmb3IgdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAgb25jZSB3ZSBoYXZl
IEltYWdlQml0bWFwIHN1cHBvcnQuCisgICAgLy8gdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJpdG1h
cChJbWFnZUJpdG1hcD8gYml0bWFwKTsKK307CisKK2RpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0U2V0dGluZ3MgeworICAgIGJvb2xlYW4gYWxwaGEgPSB0cnVlOworfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQoY2FudmFzKQoreworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFs
IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgeworcHVibGljOgorICAgIFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAg
IGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisK
K30KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNv
cmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCwgaXNQbGFjZWhvbGRlcigpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323033</attachid>
            <date>2017-10-06 11:40:45 -0700</date>
            <delta_ts>2017-10-06 14:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177983-20171006114044.patch</filename>
            <type>text/plain</type>
            <size>62714</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDE3LTEwLTA2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdl
dHRpbmcgYSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAKKyAgICAgICAgICAgIEFkZCBuZXcgZmlsZXMuCisg
ICAgICAgIAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgCisgICAgICAgICAg
ICBBZGQgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IHRvIFJlbmRlcmluZ0NvbnRleHQgdmFy
aWFudCBzbyBpdCB3aWwgYmUgYWJsZSB0bworICAgICAgICAgICAgYmUgdXNlZCB3aXRoIERvY3Vt
ZW50LmdldENTU0NhbnZhc0NvbnRleHQuCisgICAgICAgIAorICAgICAgICAqIGh0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKToKKyAgICAgICAgCisgICAgICAg
ICAgICBUaHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGNvbnRleHQgaXMgaW4gdGhlIHBsYWNlaG9s
ZGVyIG1vZGUgKHdoaWNoIHdlCisgICAgICAgICAgICBzaWduaWZ5IHZpYSBhIHNwZWNpYWwgUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KSBhcyBzcGVjZWQuIFRoaXMgY2FuJ3QKKyAgICAgICAg
ICAgIGN1cnJlbnRseSBiZSBoaXQsIGFzIHNldHRpbmcgYSBwbGFjZWhvbGRlciByZXF1aXJlcyBv
ZmZzY3JlZW4gY2FudmFzCisgICAgICAgICAgICBzdXBwb3J0LCBjb21pbmcgc29vbi4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIAorICAgICAgICAgICAgUmUtd29yayB0byBtYXRjaCB0aGUgc3BlYydzIG1hdHJpeCBv
ZiBvcHRpb25zLCBhZGRpbmcgaW4gc3VwcG9ydAorICAgICAgICAgICAgZm9yICdiaXRtYXByZW5k
ZXJlcicvIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB0eXBlIGFzIHdlbGwgYXMgCisgICAg
ICAgICAgICB0aGUgcGxhY2Vob2xkZXIgbW9kZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0MmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0wpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJHTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dFdlYkdQVSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dEJpdG1hcFJlbmRlcmVyKToK
KworICAgICAgICAgICAgU3BsaXQgY3JlYXRpb24gb3V0IG9mIHRoZSBnZXQgZnVuY3Rpb25zIHNv
IGl0IGNhbiBiZSBjYWxsZWQKKyAgICAgICAgICAgIGJ5IGdldENvbnRleHQsIHdoZXJlIHdlIGtu
b3cgaWYgdGhlIGNhbnZhcyBpcyBudWxsIG9yIG5vdC4KKworICAgICAgICAqIGh0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaWRsOgorICAgICAgICAKKyAgICAgICAgICAgIEFkZCBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQgdG8gUmVuZGVyaW5nQ29udGV4dCB2YXJpYW50IHNvIGl0IHdpbCBiZSBh
YmxlIHRvCisgICAgICAgICAgICBiZSB1c2VkIHdpdGggSFRNTENhbnZhc0VsZW1lbnQuZ2V0Q29u
dGV4dC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmlzQml0bWFwUmVuZGVy
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6aXNQ
bGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIAorICAgICAgICAgICAgQWRkIHByZWRpY2F0ZXMg
Zm9yIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBhbmQgCisgICAgICAgICAgICBQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQuCisgICAgICAgIAorICAgICAgICAqIGh0bWwvY2FudmFzL0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5n
Q29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIAorICAg
ICAgICAgICAgQWRkIHN0dWJiZWQgb3V0IGltcGxlbWVudGF0aW9ucyBmb3IgdGhlIG5ldyBjb250
ZXh0cy4KKwogMjAxNy0xMC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3Zpbmcgc29tZSBkZWFkIGNvZGUgaW4gUlRDUGVlckNvbm5lY3Rpb24KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjI5ODkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzE2LDYgKzcxNiw3IEBAIHNldChX
ZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdp
bmdTdHlsZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAogICAgIGh0
bWwvY2FudmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCisgICAgaHRtbC9jYW52YXMvSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAogICAgIGh0bWwvY2FudmFzL0ltYWdlU21vb3RoaW5n
UXVhbGl0eS5pZGwKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuaWRsCiAgICAgaHRtbC9jYW52YXMv
V2ViR1BVQnVmZmVyLmlkbApAQCAtMTk4Niw3ICsxOTg3LDkgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZh
c1N0eWxlLmNwcAorICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5j
cHAKICAgICBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCisgICAgaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAK
ICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFz
L1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQkocmV2aXNpb24gMjIyOTg5KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtNjQwLDYgKzY0MCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwg
XAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUc1JHQi5pZGwgXAorICAgICQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9JbWFnZVNtb290aGluZ1F1YWxpdHkuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDIyMjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzI2NiwxMiArMzI2NiwxNiBAQAogCQk3QzczRkIw
RDE5MUVGNUE4MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzczRkIwQjE5MUVG
NUE4MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmggKi87IH07CiAJ
CTdDNzNGQjExMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzczRkIwRjE5MUVG
NkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovOyB9OwogCQk3QzczRkIx
MjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzNGQjEwMTkxRUY2RjQwMDdERTA2
MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlci5oICovOyB9OworCQk3Qzc3NjFBODFGODc4QThCMDBG
ODY5RkMgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTAzQjcxRjg2RkRFNDAwNDYzQTcw
IC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLzsgfTsKKwkJN0M3NzYxQUEx
Rjg3OEFBNTAwRjg2OUZDIC8qIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCODFGODZGREU2
MDA0NjNBNzAgLyogSlNJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLzsgfTsKIAkJN0M3
N0MzRDExREVFNDcyNDAwQTUwQkZBIC8qIEJsb2JQcm9wZXJ0eUJhZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzRDAxREVFNDcyNDAwQTUwQkZB
IC8qIEJsb2JQcm9wZXJ0eUJhZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdDNzdDM0Q0MURFRjE3OEUwMEE1MEJGQSAvKiBKU0Jsb2JQcm9wZXJ0
eUJhZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Qzc3QzNEMjFERUYxNzhFMDBBNTBCRkEgLyogSlNCbG9iUHJvcGVydHlCYWcuY3BwICovOyB9Owog
CQk3Qzc3QzNENTFERUYxNzhFMDBBNTBCRkEgLyogSlNCbG9iUHJvcGVydHlCYWcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0QzMURFRjE3OEUw
MEE1MEJGQSAvKiBKU0Jsb2JQcm9wZXJ0eUJhZy5oICovOyB9OwogCQk3Qzc3QzNENzFERUY4NTBB
MDBBNTBCRkEgLyogQmxvYkxpbmVFbmRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc3QzNENjFERUY4NTBBMDBBNTBCRkEgLyogQmxvYkxpbmVF
bmRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0M3N0MzREIxREVGODZENzAwQTUwQkZBIC8qIEpTQmxvYkxpbmVFbmRpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzdDM0Q5MURFRjg2
RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5jcHAgKi87IH07CiAJCTdDNzdDM0RDMURF
Rjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3N0MzREExREVGODZENzAwQTUwQkZBIC8qIEpT
QmxvYkxpbmVFbmRpbmdzLmggKi87IH07CisJCTdDNzkwM0IzMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzkwM0IwMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuaCAqLzsgfTsKKwkJN0M3OTAzQjQxRjg2Rjk1QzAwNDYzQTcwIC8q
IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLzsgfTsKIAkJN0M3OTQxRTQxQzU2QzI5MzAwQTRD
NThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1OEUgLyogRGF0
YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJN0M3OTQxRTUxQzU2QzI5MzAwQTRD
NThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi87IH07CiAJCTdDODEzOUE2MUVENjI4NkEwMENFMjZF
OCAvKiBKU0RPTUF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M4MTM5QTMxRUQ2MjgxRDAwQ0UyNkU4IC8qIEpTRE9NQXR0cmlidXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNTM5
LDYgKzExNTQzLDEzIEBACiAJCTdDNzdDM0Q4MURFRjg1NDAwMEE1MEJGQSAvKiBCbG9iTGluZUVu
ZGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEJsb2JMaW5lRW5kaW5ncy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDNzdDM0Q5MURFRjg2RDcwMEE1MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JMaW5lRW5kaW5n
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzdDM0RBMURFRjg2RDcwMEE1
MEJGQSAvKiBKU0Jsb2JMaW5lRW5kaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0Jsb2JMaW5lRW5kaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0Iy
MUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDNzkwM0I3MUY4NkZERTQwMDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5n
Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNzkwM0I4MUY4NkZERTYw
MDQ2M0E3MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5kZXJpbmdD
b250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdD
NzkwM0JDMUY4NkZGMzQwMDQ2M0E3MCAvKiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzk0MUUyMUM1NkMyOTMwMEE0
QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QzgxMzlBMzFFRDYyODFEMDBDRTI2RTggLyogSlNET01BdHRyaWJ1dGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BdHRyaWJ1dGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE4NTQ5LDYgKzE4NTYwLDkgQEAKIAkJCQk3NzI4Njk0QzE0Rjg4ODI1
MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNzcyODY5
NEQxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgKi8s
CiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5n
Q29udGV4dC5oICovLAorCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0IwMUY4NkY5NUMwMDQ2M0E3MCAv
KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKKwkJCQk3Qzc5MDNCMjFGODZGOTVD
MDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywKIAkJCQk3QzE5
M0JBRjFGNUUwRUI0MDA4OEYzRTYgLyogSW1hZ2VTbW9vdGhpbmdRdWFsaXR5LmggKi8sCiAJCQkJ
N0MxOTNCQTgxRjVFMEVBRjAwODhGM0U2IC8qIEltYWdlU21vb3RoaW5nUXVhbGl0eS5pZGwgKi8s
CiAJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3Bw
ICovLApAQCAtMTg1NzUsNiArMTg1ODksOCBAQAogCQkJCTdDMTkzQkE3MUY1RTBFQUYwMDg4RjNF
NiAvKiBQYXRoMkQuY3BwICovLAogCQkJCTdDMTkzQkFCMUY1RTBFQjEwMDg4RjNFNiAvKiBQYXRo
MkQuaCAqLywKIAkJCQk3QzE5M0JCNDFGNUUwRUI3MDA4OEYzRTYgLyogUGF0aDJELmlkbCAqLywK
KwkJCQk3Qzc5MDNCQTFGODZGRjMzMDA0NjNBNzAgLyogUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmNwcCAqLywKKwkJCQk3Qzc5MDNCQzFGODZGRjM0MDA0NjNBNzAgLyogUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUIxQTY5QTUwNjAwNTlGQzJCIC8qIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQzRjNEMzVDMUE2OUE1MDYwMDU5RkMy
QiAvKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDNGM0QzNUQxQTY5QTUwNjAw
NTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjIxNTUsNiArMjIx
NzEsOCBAQAogCQkJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxl
bWVudC5oICovLAogCQkJCUU0NDYxNDBFMENENjgyNjkwMEZBREE3NSAvKiBKU0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwICovLAogCQkJCUU0NDYxNDBGMENENjgyNjkwMEZBREE3NSAvKiBKU0hUTUxWaWRl
b0VsZW1lbnQuaCAqLywKKwkJCQk3Qzc5MDNCNzFGODZGREU0MDA0NjNBNzAgLyogSlNJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAorCQkJCTdDNzkwM0I4MUY4NkZERTYwMDQ2M0E3
MCAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCTMxRDI2QkM2MUY4
NkQyNjkwMDhGRjI1NSAvKiBKU0ltYWdlQml0bWFwLmNwcCAqLywKIAkJCQkzMUQyNkJDMzFGODZE
MjY1MDA4RkYyNTUgLyogSlNJbWFnZUJpdG1hcC5oICovLAogCQkJCTMxRDI2QkM0MUY4NkQyNjYw
MDhGRjI1NSAvKiBKU0ltYWdlQml0bWFwT3B0aW9ucy5jcHAgKi8sCkBAIC0yODMzNiw2ICsyODM1
NCw3IEBACiAJCQkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5n
VW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzAwQjA1
MzgxNDAwMkNFNjRGIC8qIEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUEzMzZGOTFEODIx
RTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdD
NzkwM0IzMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQTEwQjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjJCRDlGN0YxMzUzNjI1QzAwOUJEMTAyIC8qIEltYWdl
QnVmZmVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjJCRDlGODExMzUzNjRGRTAwOUJEMTAy
IC8qIEltYWdlQnVmZmVyRGF0YUNHLmggaW4gSGVhZGVycyAqLywKQEAgLTI5NDIzLDYgKzI5NDQy
LDcgQEAKIAkJCQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8q
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q2MUZFNjgx
Nzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAor
CQkJCTdDNzc2MUFBMUY4NzhBQTUwMEY4NjlGQyAvKiBKU0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTUxN0QxNEQxQzAwNDIwQUExIC8qIE1l
ZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDk0QzE3RDE3MDk2MDA0MjBBQTEg
LyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzE3MjksNiArMzE3NDksNyBAQAogCQkJCTRBNkU5RkMzMTNDMTdEMUQw
MDQ2QTdGOCAvKiBDU1NGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NjRCNERCMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250U2VsZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzJFMzhGMDExRTg0NTczNTAwQ0EzQURGIC8qIENTU0ZvbnRTdHlsZVJhbmdlVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3NzYxQTgxRjg3OEE4QjAwRjg2OUZDIC8qIEpT
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyRTM4
RUZEMUU4Mzk2RkQwMENBM0FERiAvKiBDU1NGb250U3R5bGVWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODBFNkNGMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udFZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyMURGMkU5MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0
aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjM3MSw2ICszMjM5Miw3IEBACiAJCQkJ
QzNDRjE3QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJS
ZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2RjBCMDUzODE0MDAyQ0U2NEYg
LyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M3OTAzQjQxRjg2Rjk1QzAwNDYzQTcw
IC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MUQyNkJDQjFGODcwNjVCMDA4RkYyNTUgLyogSW1hZ2VCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDNEMjU5NzcxM0M4MTZGNDAwNjA4NTU5IC8qIEltYWdlQnVmZmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAy
MjI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDIyMjk4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzIsNiArMTMyLDcgQEAgY2xhc3MgSFRNTFBpY3R1cmVFbGVtZW50OwogY2xhc3MgSFRNTFNjcmlw
dEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Citj
bGFzcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNz
IEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwpAQCAtMjk2LDcgKzI5Nyw5IEBAIHVzaW5nIFJl
bmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PAogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgUmVmUHRy
PFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlmCi0gICAgUmVmUHRyPENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRD4+OworICAgIFJlZlB0cjxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+
LAorICAgIFJlZlB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+Cis+OwogCiBjbGFzcyBEb2N1
bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbAkocmV2aXNpb24gMjIyOTg5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQCB0eXBlZGVmICgKICNpZiBkZWZpbmVk
KEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUKICAgICBXZWJHUFVSZW5kZXJpbmdDb250
ZXh0IG9yCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgCiAgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBSZW5kZXJpbmdDb250ZXh0OwogCiBbCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjIyOTg5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5j
bHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRh
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgpAQCAtMjAzLDE0ICsyMDQsMjAgQEAgSGFzaFNldDxFbGVt
ZW50Kj4gSFRNTENhbnZhc0VsZW1lbnQ6OmNzcwogICAgIHJldHVybiBjc3NDYW52YXNDbGllbnRz
OwogfQogCi12b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUp
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVk
IHZhbHVlKQogeworICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVy
KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAg
IHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbWljU3Ry
aW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRIZWln
aHQpKSk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0
V2lkdGgodW5zaWduZWQgdmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVu
dDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiB7CisgICAgaWYgKG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih3
aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZl
KHZhbHVlLCBkZWZhdWx0V2lkdGgpKSk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogc3RhdGljIGlu
bGluZSBzaXplX3QgbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKQpAQCAtMjI1LDM2ICsyMzIsODYgQEAg
c3RhdGljIGlubGluZSBzaXplX3QgbWF4QWN0aXZlUGl4ZWxNZW1vcgogCiBFeGNlcHRpb25Pcjxz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+PiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29u
dGV4dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IFN0cmluZyYgY29udGV4dElkLCBWZWN0
b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7Ci0gICAgaWYgKGlz
MmRUeXBlKGNvbnRleHRJZCkpIHsKLSAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGdldENvbnRl
eHQyZChjb250ZXh0SWQpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nQ29udGV4dD4geyBSZWZQdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7IGNvbnRleHQg
fSB9OworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXNQbGFj
ZWhvbGRlcigpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH07CisKKyAgICAgICAgaWYgKG1fY29udGV4dC0+aXMyZCgpKSB7CisgICAgICAgICAgICBp
ZiAoIWlzMmRUeXBlKGNvbnRleHRJZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9j
b250ZXh0KSB9IH07CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9jb250ZXh0LT5pc0JpdG1h
cFJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmICghaXNCaXRtYXBSZW5kZXJlclR5cGUoY29u
dGV4dElkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdD
b250ZXh0PiB7IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
PiB7ICZkb3duY2FzdDxJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0g
fTsKKyAgICAgICAgfQorCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBpZiAobV9jb250ZXh0
LT5pc1dlYkdMKCkpIHsKKyAgICAgICAgICAgIGlmICghaXNXZWJHTFR5cGUoY29udGV4dElkKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IHN0ZDo6bnVsbG9wdCB9OworICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVu
ZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2Fz
dDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyNpZiBFTkFCTEUoV0VC
R0wyKQorICAgICAgICAgICAgQVNTRVJUKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCptX2Nv
bnRleHQpKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRl
eHQ+IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyNlbmRpZgorICAgICAgICB9CisjZW5k
aWYKKworI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIGlmIChtX2NvbnRleHQtPmlzV2ViR1BV
KCkpIHsKKyAgICAgICAgICAgIGlmICghaXNXZWJHUFVUeXBlKGNvbnRleHRJZCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBzdGQ6Om51
bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRl
eHQ+IHsgUmVmUHRyPFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdQVVJl
bmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgfQorI2VuZGlmCisKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CiAgICAgfQogCisgICAgaWYgKGlz
MmRUeXBlKGNvbnRleHRJZCkpIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlQ29udGV4
dDJkKGNvbnRleHRJZCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgc3RkOjpudWxsb3B0IH07CisgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4geyBjb250ZXh0IH0gfTsKKyAgICB9CisKKyAgICBpZiAoaXNC
aXRtYXBSZW5kZXJlclR5cGUoY29udGV4dElkKSkgeworICAgICAgICBhdXRvIGNvbnRleHQgPSBj
cmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIoY29udGV4dElkKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4g
eyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
Q29udGV4dD4geyBSZWZQdHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiB7IGNvbnRleHQg
fSB9OworICAgIH0KKwogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBpZiAoaXMzZFR5cGUoY29udGV4
dElkKSkgeworICAgIGlmIChpc1dlYkdMVHlwZShjb250ZXh0SWQpKSB7CiAgICAgICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwogICAgICAgICBhdXRvIGF0
dHJpYnV0ZXMgPSBjb252ZXJ0PElETERpY3Rpb25hcnk8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4+
KHN0YXRlLCAhYXJndW1lbnRzLmlzRW1wdHkoKSA/IGFyZ3VtZW50c1swXS5nZXQoKSA6IEpTQzo6
anNVbmRlZmluZWQoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2Vw
dGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAKLSAgICAgICAgaWYgKGF1dG8gY29u
dGV4dCA9IGdldENvbnRleHRXZWJHTChjb250ZXh0SWQsIFdURk1vdmUoYXR0cmlidXRlcykpKSB7
Ci0gICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+KCpjb250ZXh0KSB9IH07CisgICAgICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZUNvbnRl
eHRXZWJHTChjb250ZXh0SWQsIFdURk1vdmUoYXR0cmlidXRlcykpOworICAgICAgICBpZiAoIWNv
bnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0
PiB7IHN0ZDo6bnVsbG9wdCB9OworCisgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+KCpjb250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OwogI2lmIEVOQUJMRShXRUJHTDIpCi0g
ICAgICAgICAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKmNvbnRleHQpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+IHsgUmVm
UHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ+KCpjb250ZXh0KSB9IH07CisgICAgICAgIEFTU0VSVChpczxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PigqY29udGV4dCkpOworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqY29udGV4dCkgfSB9OwogI2VuZGlmCi0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ0NvbnRleHQ+
IHsgc3RkOjpudWxsb3B0IH07CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR1BVKQog
ICAgIGlmIChpc1dlYkdQVVR5cGUoY29udGV4dElkKSkgewotICAgICAgICBpZiAoYXV0byBjb250
ZXh0ID0gZ2V0Q29udGV4dFdlYkdQVShjb250ZXh0SWQpKQotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR1BVUmVuZGVyaW5nQ29u
dGV4dD4geyBjb250ZXh0IH0gfTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nQ29udGV4dD4geyBzdGQ6Om51bGxvcHQgfTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gY3Jl
YXRlQ29udGV4dFdlYkdQVShjb250ZXh0SWQpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7IHN0ZDo6bnVs
bG9wdCB9OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdDb250ZXh0PiB7
IFJlZlB0cjxXZWJHUFVSZW5kZXJpbmdDb250ZXh0PiB7IGNvbnRleHQgfSB9OwogICAgIH0KICNl
bmRpZgogCkBAIC0yNjYsMTMgKzMyMywxNiBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1M
Q2FudmFzRWxlbWVuCiAgICAgaWYgKEhUTUxDYW52YXNFbGVtZW50OjppczJkVHlwZSh0eXBlKSkK
ICAgICAgICAgcmV0dXJuIGdldENvbnRleHQyZCh0eXBlKTsKIAorICAgIGlmIChIVE1MQ2FudmFz
RWxlbWVudDo6aXNCaXRtYXBSZW5kZXJlclR5cGUodHlwZSkpCisgICAgICAgIHJldHVybiBnZXRD
b250ZXh0Qml0bWFwUmVuZGVyZXIodHlwZSk7CisKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIGlm
IChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKHR5cGUpICYmIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gZ2V0Q29udGV4dFdlYkdQVSh0eXBlKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdMKQot
ICAgIGlmIChIVE1MQ2FudmFzRWxlbWVudDo6aXMzZFR5cGUodHlwZSkpCisgICAgaWYgKEhUTUxD
YW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIGdldENvbnRl
eHRXZWJHTCh0eXBlKTsKICNlbmRpZgogCkBAIC0yODQsNDYgKzM0NCw1NCBAQCBib29sIEhUTUxD
YW52YXNFbGVtZW50OjppczJkVHlwZShjb25zdCBTCiAgICAgcmV0dXJuIHR5cGUgPT0gIjJkIjsK
IH0KIAotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29u
dGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKK0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5cGUodHlwZSksIHR5cGUp
OworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKIAotICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29u
dGV4dC0+aXMyZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmICghbV9jb250
ZXh0KSB7Ci0gICAgICAgIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFs
c2U7CisgICAgYm9vbCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBmYWxzZTsKICNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAgICAgIHVzZXNEYXNoYm9hcmRDb21wYXRp
YmlsaXR5TW9kZSA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS51c2VzRGFzaGJvYXJkQmFja3dhcmRD
b21wYXRpYmlsaXR5TW9kZSgpOworICAgIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSA9
IGRvY3VtZW50KCkuc2V0dGluZ3MoKS51c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5
TW9kZSgpOwogI2VuZGlmCiAKLSAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3Jl
IHBpeGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCi0gICAgICAgIHNpemVf
dCByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0KCk7Ci0gICAgICAg
IGlmIChhY3RpdmVQaXhlbE1lbW9yeSArIHJlcXVlc3RlZFBpeGVsTWVtb3J5ID4gbWF4QWN0aXZl
UGl4ZWxNZW1vcnkoKSkgewotICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVy
OwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMg
bWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKLSAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8g
MTAyNCk7Ci0gICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQorICAgIC8vIE1ha2Ugc3VyZSB3
ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0
LgorICAgIHNpemVfdCByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0
KCk7CisgICAgaWYgKGFjdGl2ZVBpeGVsTWVtb3J5ICsgcmVxdWVzdGVkUGl4ZWxNZW1vcnkgPiBt
YXhBY3RpdmVQaXhlbE1lbW9yeSgpKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVp
bGRlcjsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMg
bWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKKyAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0
KTsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOworICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KIAotICAgICAgICBtX2NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVl
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2Rl
KCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CisgICAgbV9jb250ZXh0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzLCBkb2N1bWVudCgp
LmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogCi0gICAg
ICAgIGRvd25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VXNl
c0Rpc3BsYXlMaXN0RHJhd2luZyhtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpOwotICAgICAgICBk
b3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpLnNldFRyYWNrc0Rp
c3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOworICAgIGRvd25jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VXNlc0Rpc3BsYXlMaXN0
RHJhd2luZyhtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpOworICAgIGRvd25jYXN0PENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkuc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXko
bV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSk7CiAKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRo
aXMpOwogCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxF
KEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLSAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBS
ZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52
YXMKLSAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworICAgIC8v
IE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdl
dCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCisgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21w
b3NpdGlvbigpOwogI2VuZGlmCi0gICAgfQogCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29udGV4dC5nZXQoKSk7CiB9CiAKK0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQyZChjb25zdCBTdHJp
bmcmIHR5cGUpCit7CisgICAgQVNTRVJUX1VOVVNFRChIVE1MQ2FudmFzRWxlbWVudDo6aXMyZFR5
cGUodHlwZSksIHR5cGUpOworCisgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJk
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAg
ICAgIHJldHVybiBjcmVhdGVDb250ZXh0MmQodHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKICNpZiBF
TkFCTEUoV0VCR0wpCiBzdGF0aWMgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JXZWJHTCgpCiB7CkBAIC0zNDUsNyArNDEzLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxl
V2ViR0woY29uc3QgU2V0dAogICAgIHJldHVybiBzZXR0aW5ncy5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCgpOwogfQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50OjppczNkVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUpCitib29sIEhUTUxDYW52YXNFbGVtZW50Ojppc1dlYkdMVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgLy8gUmV0YWluIHN1cHBvcnQgZm9yIHRoZSBsZWdhY3kg
IndlYmtpdC0zZCIgbmFtZS4KICAgICByZXR1cm4gdHlwZSA9PSAid2ViZ2wiIHx8IHR5cGUgPT0g
ImV4cGVyaW1lbnRhbC13ZWJnbCIKQEAgLTM1NSw5ICs0MjMsMjggQEAgYm9vbCBIVE1MQ2FudmFz
RWxlbWVudDo6aXMzZFR5cGUoY29uc3QgUwogICAgICAgICB8fCB0eXBlID09ICJ3ZWJraXQtM2Qi
OwogfQogCitXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlQ29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYgdHlwZSwgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyYmIGF0dHJzKQoreworICAgIEFTU0VSVChIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHTFR5cGUo
dHlwZSkpOworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKworICAgIGlmICghc2hvdWxkRW5hYmxl
V2ViR0woZG9jdW1lbnQoKS5zZXR0aW5ncygpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMs
IGF0dHJzLCB0eXBlKTsKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIC8vIE5lZWQgdG8g
bWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVk
IGZvciB0aGUgQ2FudmFzCisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRp
b24oKTsKKworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHRXZWJH
TChjb25zdCBTdHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKIHsK
LSAgICBBU1NFUlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzM2RUeXBlKHR5cGUpKTsKKyAgICBBU1NF
UlQoSFRNTENhbnZhc0VsZW1lbnQ6OmlzV2ViR0xUeXBlKHR5cGUpKTsKIAogICAgIGlmICghc2hv
dWxkRW5hYmxlV2ViR0woZG9jdW1lbnQoKS5zZXR0aW5ncygpKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0zNjUsMTYgKzQ1Miw4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhU
TUxDYW52YXNFbGUKICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzV2ViR0woKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1fY29udGV4dCkgewotICAgICAg
ICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0
dHJzLCB0eXBlKTsKLSAgICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgLy8gTmVl
ZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNy
ZWF0ZWQgZm9yIHRoZSBDYW52YXMKLSAgICAgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVy
Q29tcG9zaXRpb24oKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKLSAgICAgICAgfQotICAgIH0K
LQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gY3JlYXRlQ29udGV4dFdlYkdM
KHR5cGUsIFdURk1vdmUoYXR0cnMpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSo+KG1fY29udGV4dC5nZXQoKSk7CiB9CiAjZW5kaWYKQEAgLTM4NSw2
ICs0NjQsMjUgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVUeXBlKGNvbgogICAg
IHJldHVybiB0eXBlID09ICJ3ZWJncHUiOwogfQogCitXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVShjb25zdCBTdHJpbmcmIHR5cGUp
Cit7CisgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNXZWJHUFVU
eXBlKHR5cGUpKTsKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisKKyAgICBpZiAoIVJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIG1fY29udGV4dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRl
eHQ6OmNyZWF0ZSgqdGhpcyk7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICAvLyBOZWVk
IHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3Jl
YXRlZCBmb3IgdGhlIENhbnZhcworICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBv
c2l0aW9uKCk7CisKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVD
YW52YXNSZW5kZXJpbmdDb250ZXh0KCp0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8V2ViR1BVUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7Cit9CisKIFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0V2ViR1BV
KGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxDYW52
YXNFbGVtZW50Ojppc1dlYkdQVVR5cGUodHlwZSkpOwpAQCAtMzk1LDIwICs0OTMsMzUgQEAgV2Vi
R1BVUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbgogICAgIGlmIChtX2NvbnRleHQg
JiYgIW1fY29udGV4dC0+aXNXZWJHUFUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBpZiAoIW1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQgPSBXZWJHUFVSZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGUoKnRoaXMpOwotICAgICAgICBpZiAobV9jb250ZXh0KSB7Ci0gICAgICAg
ICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBs
YXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwotICAgICAgICAgICAgaW52YWxpZGF0ZVN0
eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOwotICAgICAg
ICB9Ci0gICAgfQotCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBjcmVhdGVD
b250ZXh0V2ViR1BVKHR5cGUpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJHUFVSZW5kZXJp
bmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKIH0KICNlbmRpZgogCitib29sIEhUTUxDYW52
YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7Cisg
ICAgcmV0dXJuIHR5cGUgPT0gImJpdG1hcHJlbmRlcmVyIjsKK30KKworSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dEJpdG1hcFJlbmRl
cmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIEhUTUxD
YW52YXNFbGVtZW50Ojppc0JpdG1hcFJlbmRlcmVyVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFt
X2NvbnRleHQpOworCisgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpOworfQorCitJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0Qml0bWFw
UmVuZGVyZXIoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwg
SFRNTENhbnZhc0VsZW1lbnQ6OmlzQml0bWFwUmVuZGVyZXJUeXBlKHR5cGUpKTsKKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcih0
eXBlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0
Kj4obV9jb250ZXh0LmdldCgpKTsKK30KKwogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJh
dyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gMjIyOTg5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MywxMCArODMsMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29u
c3QgeyByZXR1cm4gc2l6ZSgpLndpZHRoKCk7IH0KICAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25z
dCB7IHJldHVybiBzaXplKCkuaGVpZ2h0KCk7IH0KIAotICAgIGNvbnN0IEludFNpemUmIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25P
cjx2b2lkPiBzZXRXaWR0aCh1bnNpZ25lZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0SGVpZ2h0KHVuc2lnbmVkKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0V2lkdGgodW5zaWduZWQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGVpZ2h0KHVu
c2lnbmVkKTsKKyAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXpl
OyB9CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAgICB7IApA
QCAtMTA0LDE3ICsxMDQsMjQgQEAgcHVibGljOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQq
IGdldENvbnRleHQoY29uc3QgU3RyaW5nJik7CiAKICAgICBzdGF0aWMgYm9vbCBpczJkVHlwZShj
b25zdCBTdHJpbmcmKTsKKyAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNyZWF0ZUNvbnRl
eHQyZChjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCog
Z2V0Q29udGV4dDJkKGNvbnN0IFN0cmluZyYpOwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHN0
YXRpYyBib29sIGlzM2RUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGlzV2Vi
R0xUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNy
ZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYg
PSB7IH0pOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGdldENvbnRleHRXZWJHTChj
b25zdCBTdHJpbmcmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYgPSB7IH0pOwogI2VuZGlmCiAj
aWYgRU5BQkxFKFdFQkdQVSkKICAgICBzdGF0aWMgYm9vbCBpc1dlYkdQVVR5cGUoY29uc3QgU3Ry
aW5nJik7CisgICAgV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogY3JlYXRlQ29udGV4dFdlYkdQVShj
b25zdCBTdHJpbmcmKTsKICAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0V2Vi
R1BVKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpc0JpdG1hcFJl
bmRlcmVyVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQqIGNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKKyAgICBJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIGdldENvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBT
dHJpbmcmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5n
PiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkp
OwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFV
UkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdG9CbG9i
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAkocmV2aXNpb24gMjIyOTg5KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDE3ICsyNCwxOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotIHR5cGVkZWYgKAotICNpZiBk
ZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdMCi0gICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBvcgotICNlbmRpZgotICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTDIpICYmIEVOQUJM
RV9XRUJHTDIKLSAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBvcgotICNlbmRpZgotICNpZiBk
ZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJMRV9XRUJHUFUKLSAgICAgV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCBvcgotICNlbmRpZgotICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIFJl
bmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmICgKKyNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYg
RU5BQkxFX1dFQkdMCisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yCisjZW5kaWYKKyNpZiBk
ZWZpbmVkKEVOQUJMRV9XRUJHTDIpICYmIEVOQUJMRV9XRUJHTDIKKyAgICBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0IG9yCisjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHUFUpICYmIEVOQUJM
RV9XRUJHUFUKKyAgICBXZWJHUFVSZW5kZXJpbmdDb250ZXh0IG9yCisjZW5kaWYKKyAgICBJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgCisgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
KSBSZW5kZXJpbmdDb250ZXh0OwogCiBbCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LApJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaAkocmV2aXNpb24gMjIyOTg5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc0dQVUJhc2VkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQml0bWFwUmVuZGVyZXIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsYWNlaG9sZGVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlbmRlcmlu
Z1Jlc3VsdHNUb0NhbnZhcygpIHt9CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQ6OkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYg
Y2FudmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCit7Cit9CisKK30K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RydWN0IFNldHRpbmdzIHsKKyAgICAgICAgYm9vbCBh
bHBoYSA9IHRydWU7CisgICAgfTsKKworICAgIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNCaXRtYXBSZW5kZXJl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30KKworU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNvcmU6OkltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCwgaXNCaXRtYXBSZW5kZXJlcigpKQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
aWRsCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZhc0Vs
ZW1lbnQgY2FudmFzOworCisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB0cmFuc2ZlckZy
b21JbWFnZUJpdG1hcCBvbmNlIHdlIGhhdmUgSW1hZ2VCaXRtYXAgc3VwcG9ydC4KKyAgICAvLyB2
b2lkIHRyYW5zZmVyRnJvbUltYWdlQml0bWFwKEltYWdlQml0bWFwPyBiaXRtYXApOworfTsKKwor
ZGljdGlvbmFyeSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyB7CisgICAgYm9v
bGVhbiBhbHBoYSA9IHRydWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFz
KQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCit7Cit9CisKK30KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCB7CitwdWJsaWM6CisgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NB
TlZBU1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LCBpc1BsYWNlaG9sZGVyKCkpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjI5ODkpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxNy0xMC0w
NiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBiYXNpYyBzdXBw
b3J0IGZvciBnZXR0aW5nIGEgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc5ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtZWxj
YXBpdGFuL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zaWVycmEtd2sxL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1z
aWVycmEvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMteW9zZW1pdGUv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgIAorICAgICAgICAgICAgVXBkYXRlIHRlc3QgcmVzdWx0cy4KKwogMjAxNy0xMC0wNSAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1hZ2VCaXRtYXAgQVBJIHN0
dWJzCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIyOTg5KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgyOCw2ICs4MjgsMTEgQEAgUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1h
Z2VCaXRtYXAnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dCcpLnZhbHVlIGlzIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dAor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0ltYWdlRGF0YScpLnZhbHVlIGlzIEltYWdlRGF0YQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0lt
YWdlRGF0YScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIy
OTg5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05ODgsNiArOTg4
LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS52YWx1ZSBpcyBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS52YWx1ZSBpcyBJbWFnZURhdGEKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4td2syL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4td2syL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjI5ODkpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAwOCw2
ICsxMDA4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VEYXRhJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS52YWx1ZSBpcyBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdJbnB1dEV2ZW50JykudmFsdWUgaXMgSW5wdXRFdmVudAogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0lucHV0RXZlbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdJbnB1dEV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMjk4OSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTk2Myw2ICs5NjMsMTEg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5jb25maWd1
cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLnZhbHVlIGlzIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLnZhbHVlIGlzIEltYWdlRGF0YQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNpZXJyYS13azEvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXNpZXJyYS13azEvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMjk4OSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1zaWVycmEtd2sxL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05OTMsNiArOTkzLDExIEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0ltYWdlQml0bWFwJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuY29uZmlndXJhYmxl
IGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS52YWx1ZSBpcyBJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0Jyku
Y29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdJbWFnZURhdGEnKS52YWx1ZSBpcyBJbWFnZURhdGEKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZURhdGEnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zaWVycmEvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXNpZXJyYS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjIyOTg5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNpZXJyYS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMTAwOCw2ICsxMDA4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0
bWFwJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQnKS52YWx1ZSBpcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQn
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuY29uZmlndXJhYmxlIGlz
IHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFn
ZURhdGEnKS52YWx1ZSBpcyBJbWFnZURhdGEKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURh
dGEnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjIyOTg5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTk4
LDYgKzk5OCwxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmVudW1lcmFibGUgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1h
cCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykudmFsdWUgaXMgSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VEYXRhJykudmFsdWUgaXMgSW1hZ2VEYXRh
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VEYXRh
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VEYXRhJykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjI5ODkpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTk0OCw2ICs5NDgsMTEg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsbwogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5jb25maWd1
cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLnZhbHVlIGlzIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLnZhbHVlIGlzIEltYWdlRGF0YQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIyOTg5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xMDA4LDExICsxMDA4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG8KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJ
bWFnZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlJykuZW51bWVyYWJsZSBpcyBmYWxzZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcCcpLnZhbHVlIGlzIEltYWdlQml0bWFwCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFw
JykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQnKS52YWx1ZSBpcyBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURh
dGEnKS52YWx1ZSBpcyBJbWFnZURhdGEKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdJbWFnZURhdGEnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZURhdGEn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMjk4OSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzUzLDYgKzc1MywxMSBAQCBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdJbWFnZUJpdG1hcCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1hcCcpLmNvbmZpZ3VyYWJs
ZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykudmFsdWUgaXMgSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnSW1hZ2VEYXRhJykudmFsdWUgaXMgSW1hZ2VEYXRhCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VEYXRhJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnSW1hZ2VEYXRhJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d3BlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyMjI5ODkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTk4Myw2ICs5ODMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
bwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0
bWFwJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VCaXRtYXAnKS5lbnVtZXJhYmxlIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnSW1hZ2VC
aXRtYXAnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLnZhbHVlIGlz
IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCcpLmVudW1lcmFibGUgaXMgZmFsc2UK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLnZhbHVlIGlzIEltYWdl
RGF0YQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdl
RGF0YScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0ltYWdlRGF0YScpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>