<?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>154544</bug_id>
          
          <creation_ts>2016-02-22 11:17:23 -0800</creation_ts>
          <short_desc>Refactor CoreVideo API access into their own classes so code can be re-used.</short_desc>
          <delta_ts>2017-03-21 16:01:34 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169931</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>125157</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167093</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 11:17:23 -0800</bug_when>
    <thetext>Refactor CoreVideo API access into their own classes so code can be re-used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167097</commentid>
    <comment_count>1</comment_count>
      <attachid>271936</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 11:21:07 -0800</bug_when>
    <thetext>Created attachment 271936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167159</commentid>
    <comment_count>2</comment_count>
      <attachid>271944</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 13:00:54 -0800</bug_when>
    <thetext>Created attachment 271944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167162</commentid>
    <comment_count>3</comment_count>
      <attachid>271946</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 13:10:38 -0800</bug_when>
    <thetext>Created attachment 271946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167169</commentid>
    <comment_count>4</comment_count>
      <attachid>271949</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 13:21:09 -0800</bug_when>
    <thetext>Created attachment 271949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167176</commentid>
    <comment_count>5</comment_count>
      <attachid>271949</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-02-22 13:39:17 -0800</bug_when>
    <thetext>Comment on attachment 271949
Patch

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

&gt; Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:42
&gt; +    VTPixelBufferConformerRef conformer = 0;

Nit: nullptr?

&gt; Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:44
&gt; +    m_pixelConformer = adoptCF(conformer);

Nit: I&apos;ll bet the various VTPixelBufferConformer calls aren&apos;t NULL safe, so an ASSERT(conformer) and/or the OSStatus returned by VTPixelBufferConformerCreateWithAttributes here might be useful.

&gt; Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.h:41
&gt; +    PixelBufferConformerCV(CFDictionaryRef attributes);

Nit: the parameter name isn&apos;t necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167317</commentid>
    <comment_count>6</comment_count>
      <attachid>271991</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-22 22:50:00 -0800</bug_when>
    <thetext>Created attachment 271991
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169242</commentid>
    <comment_count>7</comment_count>
      <attachid>272512</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 13:15:45 -0800</bug_when>
    <thetext>Created attachment 272512
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169257</commentid>
    <comment_count>8</comment_count>
      <attachid>272515</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 13:52:04 -0800</bug_when>
    <thetext>Created attachment 272515
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169263</commentid>
    <comment_count>9</comment_count>
      <attachid>272517</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 14:07:26 -0800</bug_when>
    <thetext>Created attachment 272517
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169273</commentid>
    <comment_count>10</comment_count>
      <attachid>272519</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 14:39:24 -0800</bug_when>
    <thetext>Created attachment 272519
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169279</commentid>
    <comment_count>11</comment_count>
      <attachid>272520</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 14:55:17 -0800</bug_when>
    <thetext>Created attachment 272520
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169286</commentid>
    <comment_count>12</comment_count>
      <attachid>272523</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 15:10:13 -0800</bug_when>
    <thetext>Created attachment 272523
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169299</commentid>
    <comment_count>13</comment_count>
      <attachid>272527</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 16:09:40 -0800</bug_when>
    <thetext>Created attachment 272527
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169315</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-29 16:44:54 -0800</bug_when>
    <thetext>Committed r197375: &lt;http://trac.webkit.org/changeset/197375&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169387</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-01 00:21:18 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Committed r197375: &lt;http://trac.webkit.org/changeset/197375&gt;

It broke the Apple Mac cmake build:
/Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:56:9: fatal error: &apos;PixelBufferConformerCV.h&apos; file not found
#import &quot;PixelBufferConformerCV.h&quot;
        ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169407</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-01 03:54:55 -0800</bug_when>
    <thetext>fixed by https://trac.webkit.org/changeset/197397
( But the build is still broken because of bug154518 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169408</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-01 03:59:12 -0800</bug_when>
    <thetext>One more fix landed in http://trac.webkit.org/changeset/197398</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271936</attachid>
            <date>2016-02-22 11:21:07 -0800</date>
            <delta_ts>2016-02-22 13:00:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154544-20160222112048.patch</filename>
            <type>text/plain</type>
            <size>87783</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNhZThhYTJlZDE5MDU1
Yzg3NjczZWMyMzAzMGQyMDE3NzJjNDFhNi4uMWRlYTVhODM0ZWI3MDk3NzQ2YWRlNDZjMzVkNzU0
MjA2ZTlmODkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9y
ZGVyIGZvciBjb21tb24gQ29yZVZpZGVvIGNvZGUgcGF0aHMgdG8gYmUgcmUtdXNlZCBpbiBvdGhl
ciBjbGFzc2VzLCBwdWxsIHRob3NlIHBhdGhzCisgICAgICAgIG91dCBvZiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIGFuZCBpbnRvIHJlLXVzYWJsZSBjbGFzZXNzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRM
aW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExp
bmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4
ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjplbnVtVG9TdHJpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YpOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVy
ZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjp+Vmlk
ZW9UZXh0dXJlQ29waWVyQ1YpOgorICAgICAgICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbTogTW92ZSBTT0ZUX0xJTksgZGVjbGFyYXRpb25zIGludG8g
Q29yZVZpZGVvU29mdExpbmsuaC9jcHAuCisKIDIwMTYtMDItMDEgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTk1NzcwKTogVXNlLWFmdGVy
LWZyZWUgaW4gUmVzb3VyY2VMb2FkZXJPcHRpb25zOjpjYWNoaW5nUG9saWN5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDhhNjRh
ZmEzYWJkNDI3YjE0MTlkNzFiOTc1YjJlOWQxOGJkNWFlNS4uNTgwZGEyZjQxYWUzMzZiOGI3NTlm
NTA2N2VmNDkxY2NkZjJhMmRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA3MSw2ICs2MDcxLDEwIEBACiAJCUNENjQxRUJG
MTgxOUIzNjAwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQkQxODE5QjM1OTAwRUU0
QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi87IH07CiAJCUNENjQxRUMwMTgxOUIz
NjAwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBN
ZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJQ0Q3NkE3QTQxQjA0MTk2ODAwNjlDM0I3
IC8qIEZvcm1hdENvbnZlcnRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDc2QTdBMjFCMDQxOTY4MDA2OUMzQjcgLyogRm9ybWF0Q29udmVy
dGVyTWFjLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDMxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q3RDMzNDExQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuY3BwICovOyB9OworCQlDRDdEMzM0NDFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAq
LzsgfTsKKwkJQ0Q3RDMzNDcxQzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQ1
MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi87IH07CisJCUNEN0Qz
MzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDYxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmggKi87IH07CiAJCUNEN0RCQjI4MThDQTE5QTQwMEMxMTA2
NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3REJCMjYxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgKi87IH07CiAJCUNEN0RCQjI5MThDQTE5QzYwMEMxMTA2NiAvKiBD
U1NHcmlkTGluZU5hbWVzVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLzsgfTsKIAkJQ0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEN0UwNTIxMTY1MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0gKi87IH07CkBAIC02MDkyLDYgKzYwOTYsMTAgQEAKIAkJQ0Q4QjVBNDYxODBERkY0RTAw
OEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVv
VHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDhCNUE0OTE4MEUxMzhCMDA4QjhFNjUgLyog
VGV4dFRyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEOEI1QTQ4MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRpYVNv
dXJjZS5oICovOyB9OwogCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCNUE0QjE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmggKi87
IH07CisJCUNEOUQ4Mjc1MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUQ4MjczMUM3QUU1
MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSAqLzsgfTsKKwkJQ0Q5RDgyNzYxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNh
Y2hlQ1YuaCAqLzsgfTsKKwkJQ0Q5RDgyNzkxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVy
ZUNvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLzsg
fTsKKwkJQ0Q5RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzgxQzdC
OEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5oICovOyB9OwogCQlDRDlERTE3NDE3
QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNN
ZWRpYVNvdXJjZS5jcHAgKi87IH07CiAJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDlERTE3MzE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovOyB9OwogCQlD
RDlERTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzYxN0FBQzc1QjAwRUEz
ODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLzsgfTsKQEAgLTE0MDMzLDYgKzE0MDQxLDEwIEBA
CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDc2QTdBMjFCMDQxOTY4MDA2OUMzQjcgLyogRm9ybWF0Q29udmVydGVyTWFjLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdENvbnZlcnRlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAv
KiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3QTE2QkYw
MDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyog
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEwMEMxMjAx
RiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1OSw2
ICsxNDA3MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVk
aWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEExODBFMTdB
MzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9UcmFja01l
ZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEIxODBF
MTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNW
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dHVyZUNhY2hl
Q1YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc0MUM3QUU1MzUwMDZG
RjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3
NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVGV4dHVyZUNvcGllci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1Rl
eHR1cmVDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UZXh0
dXJlQ29waWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3
NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDlERTE3MzE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTk5OSw2ICsyMDAxNSw4IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFF
MUQwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJ
CQlDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAor
CQkJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAog
CQkJCTdDNzk0MUUyMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
Lm1tICovLAogCQkJCTdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29y
ZVNvZnRMaW5rLmggKi8sCiAJCQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlT
bGVlcERpc2FibGVyQ29jb2EuY3BwICovLApAQCAtMjIxOTIsNiArMjIyMTAsMTIgQEAKIAkJCQky
RDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi8sCiAJCQkJMkQwQjRBQUEx
OERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5tbSAqLywKIAkJCQlBRDlGRjZFMDE5MDgzOTFE
MDAzQjYxRTAgLyogSU9TdXJmYWNlUG9vbENvY29hLm1tICovLAorCQkJCUNEN0QzMzQxMUM3QTEy
M0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLywKKwkJCQlDRDdEMzM0
MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovLAorCQkJCUNE
OUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovLAorCQkJCUNEOUQ4
MjczMUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSAqLywKKwkJCQlDRDlEODI3
NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLywKKwkJCQlDRDlE
ODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmggKi8sCiAJCQkJMkQz
RUY0NDQxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0
ZS5oICovLAogCQkJCTJEM0VGNDQ1MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxp
bmdDQUxheWVyRGVsZWdhdGUubW0gKi8sCiAJCQkJMkQzRUY0NDYxOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkNvcmVDQUxheWVyRXh0cmFzLmggKi8sCkBAIC0yNTIyNCw2ICsyNTI0OCw3IEBACiAJCQkJ
NjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDOTNGMzRBMUFBNkJBNUUwMEE5OEJBQiAvKiBDb21waWxlZENvbnRl
bnRFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzIzNjExMTA5
N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QkE1MDkwMUJDRkJEOTUwMEUzNEVGNyAvKiBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRGQTE4NTFCQ0E2QjVBMDA5MUI2RUYgLyogQ29t
cG9zZWRUcmVlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMDgsNiArMjcwMzMsNyBA
QAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNY
UGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQx
MjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc2MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NjJDNzgwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3QTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyNiw2ICsyNzc1Miw3IEBACiAJCQkJMDc4RTA5MkEx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc4RTA5NDUxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0Q5RDgyNzYxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyQzE3RDE0RDFDMDA0MjBBQTEgLyogUlRD
U3RhdHNSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NDYxN0QxNkUxQzAwNDIw
QUExIC8qIFJUQ1N0YXRzUmVzcG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJDNDM2
ODFCQ0VFMzc3MDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODI1MCw2ICsyODI3Nyw3IEBACiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVw
aG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1
MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICov
LAorCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgxIC8qIFRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIwMDU2RTU4MSAvKiBUZXh0QWZmaW5pdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREI1MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0
ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0MTMsNiArMjk0NDEsNyBA
QAogCQkJCTk3Mzg4OUEwMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzFBMzdBRTA5N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNEMEZCRDAwREJENjI1RTAwQjJGNjMwIC8qIERPTUFic3RyYWN0Vmll
dy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTg0ODA5MUExRTZD
QkYwMEExMzMxOCAvKiBET01BbmltYXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
OEY2QkMyMERCNTVDREMwMDFEQjc5NCAvKiBET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1RDM4OUIzMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yOTU4Niw2ICsyOTYxNSw3IEBACiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAw
RTM5ODdDIC8qIERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CThBMTk1OTMzMTQ3RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3cubW0gaW4gU291
cmNlcyAqLywKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNp
dGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3RDMzNDcxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNDEyOTlCMUM2
QzE2NzQwMDU5RTcxNCAvKiBKU0lEQkluZGV4Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5ODY5LDYgKzI5ODk5LDcgQEAKIAkJCQlBOEVBNzlGODBBMTkxNkRGMDBB
OEVGNUYgLyogSFRNTE1lbnVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJCRThFMkM5
MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTg3MURDMjcwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxNZXRhRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDRDlEODI3NTFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNh
Y2hlQ1YubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNDU0NDI0QTExOUIzNjYxMDA5QkU5MTIgLyog
SFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjdBOTBBMTU2OTc4
MDAwQTQyMzQgLyogSFRNTE1vZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThERjNG
RDUwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMxMjg1LDYgKzMxMzE2LDcgQEAKIAkJCQlBODcxREZFNTBBMTUzNzZCMDBCMTJBNjgg
LyogUmVuZGVyV2lkZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NTI4REE2MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzkxQzdCOEVFMTAw
NkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODlD
Q0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZD
RUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IDI4YjlhNmFm
Zjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIuLjNmMTIzYzQ1NTEzMmU1MjNmMWViMGQ3
YzJlZjIwYzc1OTE4MmU4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICszNSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVX
T1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywg
T1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNl
dFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJj
ZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVC
dWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
LCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZU
eXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJl
ZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGltaW5n
SW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091dCkp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwg
dGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
LCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUx
LCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lTWFr
ZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJfdCB0aW1lc2NhbGUpLCAodmFsdWUsIHRp
bWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQz
Ml90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXgg
ODc5NWI1YjA2OGI2ZDYzMDJkYWQ3YTdiZjc4YWE3NTFlOTExMjkxMC4uZmVkMDllMmQyODEyZjMw
YTI1MmIyYTQ5NWE4ZDFiZTljMDZjMzQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC0zOSwxMiArMzksMTYgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0
YUxlbmd0aCwgc2kKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGggc29mdExpbmtf
Q29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRl
bnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAo
ZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5
cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VHlw
ZUlEIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFR5cGVJRAogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwg
KHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbgogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091
dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUg
dGltZTIpLCAodGltZTEsIHRpbWUyKSkKKyNkZWZpbmUgQ01UaW1lQWRkIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENv
cmVNZWRpYSwgQ01UaW1lQ29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRp
bWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZUNvbXBhcmUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZUNvbXBhcmUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwg
KHRpbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZp
ZGVvU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVv
U29mdExpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyOTZiNmViN2FlM2YwN2I3MzIyZjE5NDVjNTUwZmIz
MzIyZjFlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUg
PENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNF
KFdlYkNvcmUsIENvcmVWaWRlbykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBz
aXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1
ZmZlckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUs
IHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4s
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyks
IChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJl
dHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0Zs
YWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSwgQ0ZTdHJpbmdSZWYpCisKKyNpZiBQTEFURk9STShJT1MpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVh
dGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYg
Y2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBDRkRpY3Rpb25hcnlS
ZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0
KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwgdGV4dHVyZUF0dHJp
YnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Us
IENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0
aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBHTGVudW0gdGFyZ2V0LCBHTGludCBpbnRlcm5h
bEZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJbmRleCwgQ1ZPcGVuR0xFU1RleHR1cmVSZWYqIHRleHR1
cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCB0ZXh0dXJlQXR0
cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0
eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoLCB2b2lk
LCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mg
b3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVy
ZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4
ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVm
KQorI2Vsc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRl
bywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2Jq
IGNnbENvbnRleHQsIENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91
dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3Jt
YXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4
dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3Bl
bkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJ
bWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4
dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0
ZXMsIHRleHR1cmVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVy
ZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRl
eHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9w
ZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZC
T0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjA1
M2VlMDY3YmQwOTQ2ZTQxZDYxYzAwMDgzMDI0MzZhYjJmNDk0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaApAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb3JlVmlkZW9Tb2Z0TGlua19oCisjZGVm
aW5lIENvcmVWaWRlb1NvZnRMaW5rX2gKKworI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5j
bHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0aCwgc2l6ZV90LCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRIZWln
aHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBp
eGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRh
U2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZl
cikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzLCBDVlJl
dHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0Zs
YWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3Ms
IENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBs
b2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCisKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1h
dFR5cGVLZXksIENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0
VHlwZUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkK
KworI2lmIFBMQVRGT1JNKElPUykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMs
IENWRUFHTENvbnRleHQgZWFnbENvbnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmli
dXRlcywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBj
YWNoZUF0dHJpYnV0ZXMsIGVhZ2xDb250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9w
ZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNh
Y2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVy
ZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVf
dCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0
b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQs
IGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgs
IHRleHR1cmVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1
cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5H
TEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50
LCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJm
YWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NW
UGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0X0NvcmVW
aWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSgp
CisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENHTENvbnRleHRPYmog
Y2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4ZWxGb3JtYXQsIENGRGljdGlvbmFy
eVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0
KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xDb250ZXh0LCBjZ2xQaXhlbEZvcm1h
dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUlt
YWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0ZXh0
dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmlidXRl
cywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJl
Q2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMVGV4
dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihX
ZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3Bl
bkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xG
Qk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJ
T1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbmRpZgorCisjZW5k
aWYgLy8gQ29yZVZpZGVvU29mdExpbmtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDIwZjY1
NzkyMjllYjg5M2NkMDE1YmJmZmU5OGIyNTJiMWJmYmU3NjQuLjU3OWVlN2U3NmNhZWFkMjJiNWQy
NGRlZDg3YWQzY2RkZjVmMTAzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTU3LDcgKzU3
LDYgQEAgT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdDsKIAogdHlwZWRl
ZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIg
KkNWUGl4ZWxCdWZmZXJSZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFBpeGVsVHJhbnNmZXJT
ZXNzaW9uKiBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmOwogI2lmIFBMQVRGT1JNKElPUykKIHR5
cGVkZWYgc3RydWN0ICBfX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMRVNUZXh0dXJl
Q2FjaGVSZWY7CiAjZWxzZQpAQCAtNzEsOCArNzAsMTEgQEAgY2xhc3MgQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDOwogY2xhc3MgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOwogY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBNZWRpYVNlbGVjdGlvbkdy
b3VwQVZGT2JqQzsKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CitjbGFz
cyBUZXh0dXJlQ2FjaGVDVjsKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWOwogCiAjaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOwpAQCAtMzQ1LDE2ICsz
NDcsMTMgQEAgcHJpdmF0ZToKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX3ZpZGVvT3V0cHV0
U2VtYXBob3JlOwogCiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbVZpZGVvT3V0cHV0PiBtX29w
ZW5HTFZpZGVvT3V0cHV0OwotI2lmIFBMQVRGT1JNKElPUykKLSAgICBSZXRhaW5QdHI8Q1ZPcGVu
R0xFU1RleHR1cmVDYWNoZVJlZj4gbV9vcGVuR0xUZXh0dXJlQ2FjaGU7Ci0jZWxzZQotICAgIFJl
dGFpblB0cjxDVk9wZW5HTFRleHR1cmVDYWNoZVJlZj4gbV9vcGVuR0xUZXh0dXJlQ2FjaGU7Ci0j
ZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IG1fdGV4dHVyZUNhY2hl
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1RleHR1cmVDb3BpZXJDVj4gbV92aWRlb1RleHR1
cmVDb3BpZXI7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fbGFzdE9wZW5HTElt
YWdlOwogI2VuZGlmCiAKICNpZiBVU0UoVklERU9UT09MQk9YKQotICAgIFJldGFpblB0cjxWVFBp
eGVsVHJhbnNmZXJTZXNzaW9uUmVmPiBtX3BpeGVsVHJhbnNmZXJTZXNzaW9uOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVy
OwogI2VuZGlmCiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQppbmRleCA5MzNlYWMxZDk3Y2EzOGViZGU3NzAwOTQ0ZWI5MGFmZGYy
N2FiNWQ3Li4yYTk0YWU0NmYyNjA1NjU5MjhiMDE1N2JhZTE5NWFhYjkzNjc1MWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgIk1lZGlhUGxheWJh
Y2tUYXJnZXRNb2NrLmgiCiAjaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgog
I2ltcG9ydCAiTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgiCisjaW1wb3J0ICJQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlF1
YXJ0ekNvcmVTUEkuaCIKICNpbXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC02MCw3ICs2MSw5
IEBACiAjaW1wb3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiVGV4dEVuY29kaW5nLmgiCiAjaW1w
b3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgorI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1Yu
aCIKICNpbXBvcnQgIlVVSUQuaCIKKyNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAj
aW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKQEAgLTEw
NCwxNiArMTA3LDEzIEBACiAjaWYgVVNFKFZJREVPVE9PTEJPWCkKICNpbXBvcnQgPENvcmVWaWRl
by9Db3JlVmlkZW8uaD4KICNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKyNp
bXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjZW5kaWYKIAogI2lmIFVTRShDRk5FVFdPUksp
CiAjaW5jbHVkZSAiQ0ZOU1VSTENvbm5lY3Rpb25TUEkuaCIKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oSU9TKQotI2luY2x1ZGUgPE9wZW5HTEVTL0VTMy9nbGV4dC5oPgotI2VuZGlmCi0KIG5hbWVz
cGFjZSBzdGQgewogdGVtcGxhdGUgPD4gc3RydWN0IGl0ZXJhdG9yX3RyYWl0czxIYXNoU2V0PFJl
ZlB0cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+Pjo6aXRlcmF0b3I+IHsK
ICAgICB0eXBlZGVmIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+
IHZhbHVlX3R5cGU7CkBAIC0xNDksMjUgKzE0OSw2IEBAIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uVHlwZTsKIFNPRlRfTElOS19GUkFNRVdPUktf
T1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENv
cmVJbWFnZSkKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZVZpZGVvKQotCi0jaWYg
VVNFKFZJREVPVE9PTEJPWCkKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoVmlkZW9Ub29s
Ym94KQotI2VuZGlmCi0KLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
Ci1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0RGF0YVNpemUsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChw
aXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VB
ZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9u
RmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotU09GVF9MSU5LKENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVs
QnVmZmVyLCBsb2NrRmxhZ3MpKQotCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLVNPRlRfTElOSyhW
aWRlb1Rvb2xib3gsIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmICpwaXhlbFRy
YW5zZmVyU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSkK
LVNPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2Zlcklt
YWdlLCBPU1N0YXR1cywgKFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZQaXhl
bEJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIENWUGl4ZWxCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZm
ZXIpLCAoc2Vzc2lvbiwgc291cmNlQnVmZmVyLCBkZXN0aW5hdGlvbkJ1ZmZlcikpCi0jZW5kaWYK
IAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVlBsYXllckl0ZW0pCkBAIC0xOTUsNyArMTc2LDYgQEAgU09GVF9M
SU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25z
S2V5LCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkxheWVy
VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIo
QVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCwgTlNTdHJp
bmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0
eVJlc2l6ZSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4
ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIE5TU3RyaW5nICopCiAKIFNPRlRfTElOS19QT0lO
VEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENsaWVudEJ1bmRsZUlkZW50aWZp
ZXJLZXksIE5TU3RyaW5nICopCiAKQEAgLTIyMiw3ICsyMDIsNiBAQCBTT0ZUX0xJTktfUE9JTlRF
Ul9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
S2V5LCBOUwogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0IGdldEFWTGF5
ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QoKQogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5
UmVzaXplQXNwZWN0RmlsbCBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCgp
CiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUgZ2V0QVZMYXllclZpZGVvR3Jhdml0
eVJlc2l6ZSgpCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldGtD
VlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9O
X01FRElBX1NFTEVDVElPTl9HUk9VUCkKIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlvbkdyb3VwIEFW
TWVkaWFTZWxlY3Rpb25Hcm91cFR5cGU7CkBAIC0yOTEsMjQgKzI3MCw2IEBAIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUs
IE5TU3RyaW5nICopCiAjZGVmaW5lIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1l
IGdldEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lKCkKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oSU9TKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFy
eVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENvbnRleHQsIENGRGljdGlv
bmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiogY2Fj
aGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xDb250ZXh0LCB0ZXh0dXJl
QXR0cmlidXRlcywgY2FjaGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJ
bWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1
dGVzLCBHTGVudW0gdGFyZ2V0LCBHTGludCBpbnRlcm5hbEZvcm1hdCwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJ
bmRleCwgQ1ZPcGVuR0xFU1RleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0
dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCB0ZXh0dXJlQXR0cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5h
bEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJl
T3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVy
ZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdl
KSkKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VP
cGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBpeGVs
QnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbHNlCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENH
TENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4ZWxGb3JtYXQs
IENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVS
ZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xDb250ZXh0LCBj
Z2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVm
IHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0
b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0ZXMsIHRleHR1cmVPdXQpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENW
T3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25z
KSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5H
TFRleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChp
bWFnZSkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXROYW1lLCBHTHVp
bnQsIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxp
dHlLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdM
RkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0Nv
bXBhdGliaWxpdHlLZXkoKQotI2VuZGlmCi0KIFNPRlRfTElOS19GUkFNRVdPUksoTWVkaWFUb29s
Ym94KQogU09GVF9MSU5LX09QVElPTkFMKE1lZGlhVG9vbGJveCwgTVRFbmFibGVDYXB0aW9uMjAx
NUJlaGF2aW9yLCBCb29sZWFuLCAoKSwgKCkpCiAKQEAgLTIyMjAsMzkgKzIxODEsMTIgQEAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZVBpeGVsQnVmZmUKICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICBB
U1NFUlQobV92aWRlb091dHB1dCk7CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIHN0
YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0jZW5kaWYKLQogICAgIENNVGlt
ZSBjdXJyZW50VGltZSA9IFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV07CiAKICAg
ICBpZiAoIVttX3ZpZGVvT3V0cHV0LmdldCgpIGhhc05ld1BpeGVsQnVmZmVyRm9ySXRlbVRpbWU6
Y3VycmVudFRpbWVdKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBidWZmZXIgPSBhZG9wdENGKFttX3ZpZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhl
bEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsK
LSAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSNpZiBVU0UoVklERU9UT09M
Qk9YKQotICAgIC8vIENyZWF0ZSBhIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb24sIGlmIG5lY2Vzc2Fy
eSwgYXMgd2UgY2Fubm90IGd1YXJhbnRlZSB0aW1lbHkgZGVsaXZlcnkgb2YgQVJHQiBwaXhlbHMu
Ci0gICAgaWYgKCFtX3BpeGVsVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAgIFZUUGl4ZWxUcmFu
c2ZlclNlc3Npb25SZWYgc2Vzc2lvbiA9IDA7Ci0gICAgICAgIFZUUGl4ZWxUcmFuc2ZlclNlc3Np
b25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJnNlc3Npb24pOwotICAgICAgICBtX3BpeGVs
VHJhbnNmZXJTZXNzaW9uID0gYWRvcHRDRihzZXNzaW9uKTsKLSAgICB9Ci0KLSAgICBDVlBpeGVs
QnVmZmVyUmVmIG91dHB1dEJ1ZmZlcjsKLSAgICBDVlBpeGVsQnVmZmVyQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIENWUGl4ZWxCdWZmZXJHZXRXaWR0aChidWZmZXIuZ2V0KCkpLCBDVlBpeGVs
QnVmZmVyR2V0SGVpZ2h0KGJ1ZmZlci5nZXQoKSksIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEs
IDAsICZvdXRwdXRCdWZmZXIpOwotICAgIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2Zlcklt
YWdlKG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24uZ2V0KCksIGJ1ZmZlci5nZXQoKSwgb3V0cHV0QnVm
ZmVyKTsKLSAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7Ci0jZW5kaWYKLQotI2lm
ICFMT0dfRElTQUJMRUQKLSAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSAtIHN0YXJ0OwotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVBpeGVsQnVmZmVyKCVwKSAtIGNyZWF0aW5nIGJ1ZmZlciB0
b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0aW9uKSk7Ci0jZW5k
aWYKLQotICAgIHJldHVybiBidWZmZXI7CisgICAgcmV0dXJuIGFkb3B0Q0YoW21fdmlkZW9PdXRw
dXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUgaXRlbVRpbWVG
b3JEaXNwbGF5Om5pbF0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQpAQCAtMjI2OSw0MyArMjIwMyw2
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRI
YXNBdmFpbGFibGVGcmFtZSgpCiAgICAgcmV0dXJuIFttX3ZpZGVvT3V0cHV0IGhhc05ld1BpeGVs
QnVmZmVyRm9ySXRlbVRpbWU6W21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXV07CiB9CiAKLXN0
YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lk
KiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRy
ZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwotICAgIHJldHVy
biBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMg
dm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbywg
Y29uc3Qgdm9pZCopCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLX0K
LQotc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5m
bykKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVyKTsKLX0KLQot
c3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQotewotICAgIC8vIHBpeGVsQnVmZmVyIHdpbGwg
YmUgb2YgdHlwZSBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBLgotICAgIEFTU0VSVChDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSA9PSBrQ1ZQaXhlbEZvcm1hdFR5
cGVfMzJCR1JBKTsKLQotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChw
aXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
cGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRC
eXRlc1BlclJvdyhwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVMZW5ndGggPSBDVlBpeGVs
QnVmZmVyR2V0RGF0YVNpemUocGl4ZWxCdWZmZXIpOwotICAgIENHQml0bWFwSW5mbyBiaXRtYXBJ
bmZvID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhRmlyc3Q7Ci0K
LSAgICBDRlJldGFpbihwaXhlbEJ1ZmZlcik7IC8vIEJhbGFuY2VkIGJ5IENWUGl4ZWxCdWZmZXJS
ZWxlYXNlSW5mb0NhbGxiYWNrIGluIHByb3ZpZGVyQ2FsbGJhY2tzLgotICAgIENHRGF0YVByb3Zp
ZGVyRGlyZWN0Q2FsbGJhY2tzIHByb3ZpZGVyQ2FsbGJhY2tzID0geyAwLCBDVlBpeGVsQnVmZmVy
R2V0Qnl0ZVBvaW50ZXJDYWxsYmFjaywgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrLCAwLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayB9OwotICAgIFJldGFp
blB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVy
Q3JlYXRlRGlyZWN0KHBpeGVsQnVmZmVyLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3Mp
KTsKLQotICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwg
MzIsIGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRl
ci5nZXQoKSwgTlVMTCwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKLX0KLQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2Uo
KQogewogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlciA9IGNyZWF0
ZVBpeGVsQnVmZmVyKCk7CkBAIC0yMzEzLDggKzIyMTAsMjQgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoKQogICAgIC8vIENhbGxzIHRv
IGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVy
biBuaWwgaWYgdGhlIHBpeGVsIGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUg
aGFzIGFscmVhZHkgYmVlbiByZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQg
aW1hZ2UgKGlmIGFueSkKICAgICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgotICAgIGlmIChwaXhl
bEJ1ZmZlcikKLSAgICAgICAgbV9sYXN0SW1hZ2UgPSBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlci5nZXQoKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFtX3BpeGVsQnVmZmVyQ29uZm9ybWVyKSB7CisgICAgICAgIE5TRGlj
dGlvbmFyeSAqYXR0cmlidXRlcyA9IEB7IChOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxG
b3JtYXRUeXBlS2V5OiBAKGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpIH07CisgICAgICAgIG1f
cGl4ZWxCdWZmZXJDb25mb3JtZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1Y+KChDRkRpY3Rpb25hcnlSZWYpYXR0cmlidXRlcyk7CisgICAgfQorCisjaWYgIUxPR19E
SVNBQkxFRAorICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworI2VuZGlmCisKKyAgICBtX2xhc3RJbWFnZSA9IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXItPmNy
ZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKworI2lmICFMT0df
RElTQUJMRUQKKyAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSAtIHN0YXJ0OworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZSglcCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAlLjRm
IiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikpOworI2VuZGlmCiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9P
dXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIG91dHB1dFJl
Y3QpCkBAIC0yMzkyLDExMCArMjMwNSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dXBkYXRlTGFzdE9wZW5HTEltYWdlKCkKICAgICBtX2xhc3RPcGVuR0xJbWFn
ZSA9IGFkb3B0Q0YoW21fb3BlbkdMVmlkZW9PdXRwdXQgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRp
bWU6Y3VycmVudFRpbWUgaXRlbVRpbWVGb3JEaXNwbGF5Om5pbF0pOwogfQogCi0jaWYgIUxPR19E
SVNBQkxFRAotCi0jZGVmaW5lIFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCi1zdGF0aWMgc3RkOjpt
YXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKLXsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFwOwot
ICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgewotICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+IHN0cmluZ01hcDsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhVSSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2RikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRzMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SRzhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRzhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRzMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkczMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdC
OCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9BTFBI
QTgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTQp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTIp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09N
UE9ORU5UMTYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
REVQVEhfQ09NUE9ORU5UMjQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMjRfU1RFTkNJTDgpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRUQpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV82
XzUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfU0hPUlRfNF80XzRfNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZVEUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRfOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8zMl9V
TlNJR05FRF9JTlRfMjRfOF9SRVYpKTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJGKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2SSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjVfQTEpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQV9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZf
UkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF81XzlfOV85X1JFVikpOwotI2VuZGlmCi0gICAgfQotICAgIHJldHVybiBtYXAuZ2V0
KCk7Ci19Ci0KLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECi0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUs
IEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKQogewogICAgIGlmIChmbGlwWSB8fCBwcmVtdWx0aXBseUFscGhhKQpA
QCAtMjUxMSw5NSArMjMyMCwyMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaAogICAgIGlmICgh
bV9sYXN0T3BlbkdMSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9v
cGVuR0xUZXh0dXJlQ2FjaGUpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBudWxscHRyOwotICAgICAgICBDVlJldHVybiBlcnJv
ciA9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAmY2Fj
aGUpOwotI2Vsc2UKLSAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBudWxs
cHRyOwotICAgICAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKSwgbnVsbHB0ciwgJmNhY2hlKTsKLSNlbmRpZgotICAgICAgICBpZiAoZXJyb3Ig
IT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
bV9vcGVuR0xUZXh0dXJlQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsKLSAgICB9Ci0KICAgICBzaXpl
X3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkp
OwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KG1fbGFzdE9wZW5H
TEltYWdlLmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDVk9wZW5HTEVTVGV4dHVy
ZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2Vz
cyAhPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSwgbV9sYXN0T3BlbkdMSW1h
Z2UuZ2V0KCksIG51bGxwdHIsIG91dHB1dFRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgbGV2ZWwsICZiYXJlVmlkZW9UZXh0dXJlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZVJlZj4gdmlkZW9U
ZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0
IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUodmlkZW9UZXh0dXJl
LmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTEVTVGV4
dHVyZUdldFRhcmdldCh2aWRlb1RleHR1cmUuZ2V0KCkpOwotI2Vsc2UKLSAgICBDVk9wZW5HTFRl
eHR1cmVSZWYgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7Ci0gICAgaWYgKGtDVlJldHVyblN1
Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJ
bWFnZS5nZXQoKSwgbnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0g
YWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHZpZGVvVGV4
dHVyZU5hbWUgPSBDVk9wZW5HTFRleHR1cmVHZXROYW1lKHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0g
ICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0
KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0jZW5kaWYKLQotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVh
dGVXZWFrUHRyKCk7Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3dlYWtUaGlzXSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgaWYgKGF1dG8gY2FjaGUgPSB3ZWFrVGhpcy0+bV9vcGVuR0xUZXh0dXJl
Q2FjaGUuZ2V0KCkpCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICAgICAgQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbHNlCi0gICAgICAgICAgICBDVk9wZW5HTFRl
eHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbmRpZgotICAgIH0pOwotCi0gICAgTE9HKE1l
ZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAlcywgZm9ybWF0OiAlcywg
dHlwZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5hbEZvcm1hdF0sIGVudW1U
b1N0cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5cGVdKTsKLQotICAgIC8v
IFNhdmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVmZmVyIG5hbWVzIHNvIHdl
IGNhbiByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8gdGV4dHVyZS4KLSAgICBH
QzNEaW50IGJvdW5kVGV4dHVyZSA9IDA7Ci0gICAgR0MzRGludCBib3VuZFJlYWRGcmFtZWJ1ZmZl
ciA9IDA7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR18yRCwgJmJvdW5kVGV4dHVyZSk7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdlcnYo
R3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5kUmVhZEZy
YW1lYnVmZmVyKTsKLQotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKHZpZGVvVGV4dHVyZVRhcmdl
dCwgdmlkZW9UZXh0dXJlTmFtZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1l
dGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29u
dGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0KLSAgICAvLyBDcmVhdGUgYSBmcmFtZWJ1ZmZlciBvYmplY3QgdG8gcmVwcmVzZW50
IHRoZSB2aWRlbyB0ZXh0dXJlJ3MgbWVtb3J5LgotICAgIFBsYXRmb3JtM0RPYmplY3QgcmVhZEZy
YW1lYnVmZmVyID0gY29udGV4dC0+Y3JlYXRlRnJhbWVidWZmZXIoKTsKLQotICAgIC8vIE1ha2Ug
dGhhdCBmcmFtZWJ1ZmZlciB0aGUgcmVhZCBzb3VyY2UgZnJvbSB3aGljaCBkcmF3aW5nIGNvbW1h
bmRzIHdpbGwgcmVhZCB2b3hlbHMuCi0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCByZWFkRnJhbWVidWZmZXIpOwotCi0gICAg
Ly8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkgZm9yIHRoZSBvdXRwdXQgdGV4dHVyZS4K
LSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRleHR1cmUpOwot
ICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQs
IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNE
OjpMSU5FQVIpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3ND
b250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRl
eEltYWdlMkREaXJlY3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7Ci0KLSAgICAvLyBBdHRhY2ggdGhl
IHZpZGVvIHRleHR1cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgotICAgIGNvbnRleHQtPmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGlj
c0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9U
ZXh0dXJlTmFtZSwgbGV2ZWwpOwotCi0gICAgR0MzRGVudW0gc3RhdHVzID0gY29udGV4dC0+Y2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUik7
Ci0gICAgaWYgKHN0YXR1cyAhPSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQ09NUExF
VEUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIENvcHkgdGV4dHVyZSBmcm9tIHRo
ZSByZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1cyB0aGUgdmlkZW8gdGV4dHVyZSkgdG8gdGhlIG91
dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKKyAgICBpZiAo
IW1fdGV4dHVyZUNhY2hlKSB7CisgICAgICAgIG1fdGV4dHVyZUNhY2hlID0gVGV4dHVyZUNhY2hl
Q1Y6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCi0gICAgLy8gUmVzdG9yZSB0aGUgcHJldmlv
dXMgdGV4dHVyZSBhbmQgZnJhbWVidWZmZXIgYmluZGluZ3MuCi0gICAgY29udGV4dC0+YmluZFRl
eHR1cmUob3V0cHV0VGFyZ2V0LCBib3VuZFRleHR1cmUpOwotICAgIGNvbnRleHQtPmJpbmRGcmFt
ZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRSZWFkRnJh
bWVidWZmZXIpOworICAgIFJldGFpblB0cjxDVk9wZW5HTFRleHR1cmVSZWY+IHZpZGVvVGV4dHVy
ZSA9IG1fdGV4dHVyZUNhY2hlLT50ZXh0dXJlRnJvbUltYWdlKG1fbGFzdE9wZW5HTEltYWdlLmdl
dCgpKTsKIAotICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcy4KLSAgICBjb250ZXh0LT5k
ZWxldGVGcmFtZWJ1ZmZlcihyZWFkRnJhbWVidWZmZXIpOworICAgIGlmICghbV92aWRlb1RleHR1
cmVDb3BpZXIpCisgICAgICAgIG1fdmlkZW9UZXh0dXJlQ29waWVyID0gc3RkOjptYWtlX3VuaXF1
ZTxWaWRlb1RleHR1cmVDb3BpZXJDVj4oKmNvbnRleHQpOwogCi0gICAgcmV0dXJuICFjb250ZXh0
LT5nZXRFcnJvcigpOworICAgIHJldHVybiBtX3ZpZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHZpZGVvVGV4dHVyZS5nZXQoKSwgd2lkdGgsIGhlaWdo
dCwgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZv
cm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwogfQogCiBQYXNzTmF0aXZlSW1h
Z2VQdHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3YTFl
MGFhMmNiYjM3YjA1OWNkMjhiYmUzNmQzYjA4NDk2NzVkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCisKKyNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9v
bGJveCkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVh
dGVXaXRoQXR0cmlidXRlcywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmKiBjb25m
b3JtZXJPdXQpLCAoYWxsb2NhdG9yLCBhdHRyaWJ1dGVzLCBjb25mb3JtZXJPdXQpKTsKK1NPRlRf
TElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhl
bEJ1ZmZlciwgQm9vbGVhbiwgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBD
VlBpeGVsQnVmZmVyUmVmIHBpeEJ1ZiksIChjb25mb3JtZXIsIHBpeEJ1ZikpCitTT0ZUX0xJTkso
VmlkZW9Ub29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVm
ZmVyLCBPU1N0YXR1cywgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBp
eGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQm9vbGVhbiBlbnN1cmVNb2RpZmlhYmxlLCBDVlBp
eGVsQnVmZmVyUmVmKiBjb25mb3JtZWRCdWZmZXJPdXQpLCAoY29uZm9ybWVyLCBzb3VyY2VCdWZm
ZXIsIGVuc3VyZU1vZGlmaWFibGUsIGNvbmZvcm1lZEJ1ZmZlck91dCkpCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6UGl4ZWxCdWZmZXJDb25mb3JtZXJD
VihDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcykKK3sKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9y
bWVyUmVmIGNvbmZvcm1lciA9IDA7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdp
dGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIp
OworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7Cit9CisKK3N0YXRp
YyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBp
bmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNz
KHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOworICAgIHJldHVybiBD
VlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgdm9p
ZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbywgY29u
c3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNl
QWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKK30KKwor
c3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykK
K3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVyKTsKK30KKworUmV0
YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJv
bVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcmF3QnVmZmVyKQoreworICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyByYXdCdWZmZXIgfTsKKyAgICBzaXplX3Qgd2lk
dGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3QgaGVp
Z2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpOworCisgICAgaWYgKCFW
VFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3JtYW50UGl4ZWxCdWZmZXIobV9waXhlbENvbmZv
cm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgeworICAgICAgICBDVlBpeGVsQnVmZmVyUmVmIG91
dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZUUGl4ZWxC
dWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5n
ZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91dHB1dEJ1ZmZlcik7CisgICAgICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAgfQorCisg
ICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8
IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVm
ZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3QgYnl0ZUxlbmd0aCA9
IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZmZXIuZ2V0KCkpOworCisgICAgQ0ZSZXRhaW4o
YnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2Fs
bGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisgICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxs
YmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRl
ckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENW
UGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIH07CisgICAgUmV0YWluUHRyPENHRGF0YVBy
b3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3Qo
YnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3MpKTsKKworICAgIHJl
dHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwgMzIsIGJ5dGVzUGVy
Um93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRlci5nZXQoKSwgbnVs
bHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNjUyZGQ3YjI5YjAyZTUyNTJiNDZhYmNhYjMz
NWM3NDIyNTEzOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisjZGVmaW5lIFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1ZfaAorCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKworI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbEJ1ZmZlckNv
bmZvcm1lciogVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZjsKK3R5cGVkZWYgc3RydWN0IENHSW1h
Z2UqIENHSW1hZ2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVy
UmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YgeworcHVibGljOgorICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVm
IGF0dHJpYnV0ZXMpOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21Q
aXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZj4gbV9waXhlbENvbmZvcm1lcjsKK307CisKK30KKwor
I2VuZGlmIC8vIFVTRShWSURFT1RPT0xCT1gpCisKKyNlbmRpZiAvLyBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1RleHR1cmVDYWNoZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9U
ZXh0dXJlQ2FjaGVDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxY2U1MDJhNWFiZDdhZjhmMmE4NWIzYTY3M2Vk
YzE0Y2QwNWYxMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFRleHR1cmVDYWNoZUNWX2gKKyNkZWZpbmUgVGV4dHVyZUNhY2hlQ1ZfaAorCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1
ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0
eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7Cit0eXBlZGVmIHN0
cnVjdCBfX0NWT3BlbkdMVGV4dHVyZUNhY2hlICpDVk9wZW5HTFRleHR1cmVDYWNoZVJlZjsKK3R5
cGVkZWYgc3RydWN0IF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1cmVD
YWNoZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQz
RDsKKworY2xhc3MgVGV4dHVyZUNhY2hlQ1YgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOworCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiAg
VGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1
cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmICBUZXh0
dXJlQ2FjaGVUeXBlOworICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBl
OworI2VuZGlmCisKKyAgICBUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYsIFJldGFp
blB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYmKTsKKworICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4g
dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQnVmZmVyUmVmKTsKKyAgICBHcmFwaGljc0NvbnRleHQz
RCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJl
Q2FjaGVUeXBlPiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBt
X3dlYWtQdHJGYWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOTc0ZTE0ZTI4Mjg0ZTM0YTNjZmQzY2YzZGU4NjQyNDAyZWU2
MWFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4g
VGV4dHVyZUNhY2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAg
ICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgp
LCBudWxscHRyLCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdM
VGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQu
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAg
ICBpZiAoZXJyb3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENG
KGNhY2hlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29u
dGV4dCwgV1RGTW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVy
ZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2Fj
aGVUeXBlPiYmIGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hl
KGNhY2hlKQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8
VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21J
bWFnZShDVkltYWdlQnVmZmVyUmVmIGltYWdlKQoreworICAgIFRleHR1cmVUeXBlIGJhcmVWaWRl
b1RleHR1cmUgPSBudWxscHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBzaXplX3Qgd2lkdGgg
PSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoaW1hZ2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KGltYWdlKTsKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX2NhY2hlLmdldCgpLCBpbWFnZSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRl
b1RleHR1cmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgaWYgKGtDVlJl
dHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCAmYmFy
ZVZpZGVvVGV4dHVyZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgUmV0
YWluUHRyPFRleHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1
cmUpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFr
VGhpc10geworICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX2NhY2hlLmdldCgp
KQorI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVG
bHVzaChjYWNoZSwgMCk7CisjZWxzZQorICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVG
bHVzaChjYWNoZSwgMCk7CisjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiB2aWRlb1RleHR1
cmU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDFlYTM5Yzgx
MDcwOGQ1YmM1OTQ2NDAxMGZiY2VmNDdiYjVmY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBA
IC0wLDAgKzEsMjEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1
ZGUgPE9wZW5HTEVTL0VTMy9nbGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJDb3JlVmlkZW9T
b2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZGVvVGV4dHVyZUNvcGllckNW
OjpWaWRlb1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9yZWFkRnJhbWVidWZmZXIoY29udGV4dC5jcmVh
dGVGcmFtZWJ1ZmZlcigpKQoreworfQorCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVvVGV4
dHVyZUNvcGllckNWKCkKK3sKKyAgICBtX2NvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fcmVh
ZEZyYW1lYnVmZmVyKTsKK30KKworI2lmICFMT0dfRElTQUJMRUQKKworI2RlZmluZSBTVFJJTkdJ
RllfUEFJUihlKSBlLCAjZQorc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4m
IGVudW1Ub1N0cmluZ01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bWFw
PHVpbnQzMl90LCBjb25zdCBjaGFyKj4+IG1hcDsKKyAgICBpZiAobWFwLmdldCgpLmVtcHR5KCkp
IHsKKyAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUjMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcx
NkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkYp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDMy
RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDI0
X1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIMzJGX1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0xVTUlOQU5DRV9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkVEKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfREVQVEhfU1RFTkNJTCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9CWVRFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV81
XzVfMSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9CWVRF
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZfRkxP
QVQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
U0hPUlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU0hP
UlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfSU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0lO
VCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05F
RF9JTlRfMl8xMF8xMF8xMF9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzI0XzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7CisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JFRF9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQl9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0I1NjUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SMTFGX0cxMUZfQjEwRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I5X0U1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkE4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkExNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkE4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0IxMF9BMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkExNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkExNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQTMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I1X0ExKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkFf
SU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9E
RVBUSF9DT01QT05FTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsKKyNl
bmRpZgorICAgIH0KKyAgICByZXR1cm4gbWFwLmdldCgpOworfQorCisjZW5kaWYKKworYm9vbCBW
aWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRl
eHR1cmVUeXBlIGlucHV0VGV4dHVyZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0
Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGlu
dCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVu
dW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQoreworICAgIGlmIChm
bGlwWSB8fCBwcmVtdWx0aXBseUFscGhhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWlucHV0VGV4dHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNU
ZXh0dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZWxzZQor
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUoaW5wdXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBD
Vk9wZW5HTFRleHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgTE9H
KE1lZGlhLCAiVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZSglcCkgLSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwg
dGhpcywgZW51bVRvU3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAo
KVtmb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7CisKKyAgICAvLyBTYXZlIHRoZSBv
cmlnaWFsIGJvdW5kIHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmlu
ZCB0aGVtIGFmdGVyIGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCisgICAgR0MzRGludCBib3Vu
ZFRleHR1cmUgPSAwOworICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOworICAg
IG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElO
R18yRCwgJmJvdW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGlj
c0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZm
ZXIpOworCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZp
ZGVvVGV4dHVyZU5hbWUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2Nv
bnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RP
X0VER0UpOworCisgICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBm
cm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KKyAgICBtX2NvbnRl
eHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwg
bV9yZWFkRnJhbWVidWZmZXIpOworCisgICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1v
cnkgZm9yIHRoZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91
dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJp
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQt
PnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0Up
OworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQz
RDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1
dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQs
IHR5cGUsIG51bGxwdHIpOworCisgICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRo
ZSBmcmFtZWJ1ZmZlci4KKyAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QVRUQUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSwgbGV2ZWwp
OworCisgICAgR0MzRGVudW0gc3RhdHVzID0gbV9jb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKKyAgICBpZiAoc3RhdHVz
ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZm
ZXIgKGFuZCB0aHVzIHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCisg
ICAgbV9jb250ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisKKyAgICAvLyBSZXN0b3JlIHRoZSBw
cmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KKyAgICBtX2NvbnRleHQt
PmJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQt
PmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91
bmRSZWFkRnJhbWVidWZmZXIpOworCisgICAgcmV0dXJuICFtX2NvbnRleHQtPmdldEVycm9yKCk7
Cit9CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmNTEyZjg5YWNjNDVm
YTVjYzRkNmI3YmMzZTBmOGVjZTMyZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorI2Rl
ZmluZSBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCisKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dDNE
LmgiCisKK3R5cGVkZWYgc3RydWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlw
ZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFn
ZUJ1ZmZlclJlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDViB7CitwdWJsaWM6CisgICAgVmlkZW9UZXh0dXJl
Q29waWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmKTsKKyAgICB+VmlkZW9UZXh0dXJlQ29waWVyQ1Yo
KTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVm
IFRleHR1cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0
dXJlVHlwZTsKKyNlbmRpZgorCisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoVGV4dHVyZVR5cGUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0z
RE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5
cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CisKKyAgICBHcmFwaGljc0Nv
bnRleHQzRCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFBsYXRmb3JtM0RP
YmplY3QgbV9yZWFkRnJhbWVidWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBWaWRlb1RleHR1
cmVDb3BpZXJDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggMDc3ODM1ZDVl
MjEyOWVlOWVlZmY4ZDQwYTFkNDUwNzE5ODRhYzU2MS4uOTc2ODRmMjdkNGQ2MTQ0MDVlY2Y2Zjcw
ZTk3ZDczNTc3MGMyMThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTIs
NyArNTIsNiBAQCB0eXBlZGVmIEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCBBVkNhcHR1cmVWaWRl
b0RhdGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllclR5cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9O
QUwoQVZGb3VuZGF0aW9uKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8p
CiAKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBT
T0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC04MSwxNyAr
ODAsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25Q
cmVzZXRMb3csIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4
Mjg4IGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4KCkKICNkZWZpbmUgQVZDYXB0dXJl
U2Vzc2lvblByZXNldExvdyBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93KCkKIAotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZl
ckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAo
cGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5
cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZS
ZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tG
bGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9j
a0ZsYWdzKSkKLQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0
IEF0b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWlu
dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271944</attachid>
            <date>2016-02-22 13:00:54 -0800</date>
            <delta_ts>2016-02-22 13:10:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154544-20160222130036.patch</filename>
            <type>text/plain</type>
            <size>87783</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM3M2ZkMmRkNTU0YTJi
MjIyMjhhZDNmMjhlYjEwZTIyZTBmOWNmMy4uNmJjYzVlMGZjNmRmZDE5NGNmOTZkODZhYWY3YzU1
MjA2YjRkZWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9y
ZGVyIGZvciBjb21tb24gQ29yZVZpZGVvIGNvZGUgcGF0aHMgdG8gYmUgcmUtdXNlZCBpbiBvdGhl
ciBjbGFzc2VzLCBwdWxsIHRob3NlIHBhdGhzCisgICAgICAgIG91dCBvZiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIGFuZCBpbnRvIHJlLXVzYWJsZSBjbGFzZXNzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRM
aW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExp
bmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4
ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjplbnVtVG9TdHJpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YpOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVy
ZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjp+Vmlk
ZW9UZXh0dXJlQ29waWVyQ1YpOgorICAgICAgICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbTogTW92ZSBTT0ZUX0xJTksgZGVjbGFyYXRpb25zIGludG8g
Q29yZVZpZGVvU29mdExpbmsuaC9jcHAuCisKIDIwMTYtMDItMDIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTk1NzcwKTogVXNlLWFmdGVy
LWZyZWUgaW4gUmVzb3VyY2VMb2FkZXJPcHRpb25zOjpjYWNoaW5nUG9saWN5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGY5NzEz
OTMwN2ZhYjYyYzAxMTJiZDYyNWE5NDhhM2EyMjE1YWIwOC4uYmM3NjJjNmI3YTU5Zjg5NWEwZjY1
MzE5N2UwNDNhMTE5ZmFjMGVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA3MCw2ICs2MDcwLDEwIEBACiAJCUNENjQxRUJG
MTgxOUIzNjAwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQkQxODE5QjM1OTAwRUU0
QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi87IH07CiAJCUNENjQxRUMwMTgxOUIz
NjAwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBN
ZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJQ0Q3NkE3QTQxQjA0MTk2ODAwNjlDM0I3
IC8qIEZvcm1hdENvbnZlcnRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDc2QTdBMjFCMDQxOTY4MDA2OUMzQjcgLyogRm9ybWF0Q29udmVy
dGVyTWFjLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDMxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q3RDMzNDExQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuY3BwICovOyB9OworCQlDRDdEMzM0NDFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAq
LzsgfTsKKwkJQ0Q3RDMzNDcxQzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQ1
MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi87IH07CisJCUNEN0Qz
MzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDYxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmggKi87IH07CiAJCUNEN0RCQjI4MThDQTE5QTQwMEMxMTA2
NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3REJCMjYxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgKi87IH07CiAJCUNEN0RCQjI5MThDQTE5QzYwMEMxMTA2NiAvKiBD
U1NHcmlkTGluZU5hbWVzVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLzsgfTsKIAkJQ0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEN0UwNTIxMTY1MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0gKi87IH07CkBAIC02MDkxLDYgKzYwOTUsMTAgQEAKIAkJQ0Q4QjVBNDYxODBERkY0RTAw
OEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVv
VHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDhCNUE0OTE4MEUxMzhCMDA4QjhFNjUgLyog
VGV4dFRyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEOEI1QTQ4MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRpYVNv
dXJjZS5oICovOyB9OwogCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCNUE0QjE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmggKi87
IH07CisJCUNEOUQ4Mjc1MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUQ4MjczMUM3QUU1
MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSAqLzsgfTsKKwkJQ0Q5RDgyNzYxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNh
Y2hlQ1YuaCAqLzsgfTsKKwkJQ0Q5RDgyNzkxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVy
ZUNvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLzsg
fTsKKwkJQ0Q5RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzgxQzdC
OEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5oICovOyB9OwogCQlDRDlERTE3NDE3
QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNN
ZWRpYVNvdXJjZS5jcHAgKi87IH07CiAJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDlERTE3MzE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovOyB9OwogCQlD
RDlERTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzYxN0FBQzc1QjAwRUEz
ODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLzsgfTsKQEAgLTE0MDMyLDYgKzE0MDQwLDEwIEBA
CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDc2QTdBMjFCMDQxOTY4MDA2OUMzQjcgLyogRm9ybWF0Q29udmVydGVyTWFjLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdENvbnZlcnRlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAv
KiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3QTE2QkYw
MDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyog
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEwMEMxMjAx
RiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1OCw2
ICsxNDA3MCwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVk
aWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEExODBFMTdB
MzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9UcmFja01l
ZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEIxODBF
MTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNW
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dHVyZUNhY2hl
Q1YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc0MUM3QUU1MzUwMDZG
RjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3
NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVGV4dHVyZUNvcGllci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1Rl
eHR1cmVDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UZXh0
dXJlQ29waWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3
NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDlERTE3MzE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTk5OSw2ICsyMDAxNSw4IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFF
MUQwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJ
CQlDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAor
CQkJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAog
CQkJCTdDNzk0MUUyMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
Lm1tICovLAogCQkJCTdDNzk0MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29y
ZVNvZnRMaW5rLmggKi8sCiAJCQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlT
bGVlcERpc2FibGVyQ29jb2EuY3BwICovLApAQCAtMjIxOTIsNiArMjIyMTAsMTIgQEAKIAkJCQky
RDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi8sCiAJCQkJMkQwQjRBQUEx
OERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5tbSAqLywKIAkJCQlBRDlGRjZFMDE5MDgzOTFE
MDAzQjYxRTAgLyogSU9TdXJmYWNlUG9vbENvY29hLm1tICovLAorCQkJCUNEN0QzMzQxMUM3QTEy
M0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLywKKwkJCQlDRDdEMzM0
MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovLAorCQkJCUNE
OUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovLAorCQkJCUNEOUQ4
MjczMUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSAqLywKKwkJCQlDRDlEODI3
NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmNwcCAqLywKKwkJCQlDRDlE
ODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmggKi8sCiAJCQkJMkQz
RUY0NDQxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0
ZS5oICovLAogCQkJCTJEM0VGNDQ1MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxp
bmdDQUxheWVyRGVsZWdhdGUubW0gKi8sCiAJCQkJMkQzRUY0NDYxOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkNvcmVDQUxheWVyRXh0cmFzLmggKi8sCkBAIC0yNTIyMyw2ICsyNTI0Nyw3IEBACiAJCQkJ
NjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDOTNGMzRBMUFBNkJBNUUwMEE5OEJBQiAvKiBDb21waWxlZENvbnRl
bnRFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzIzNjExMTA5
N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QkE1MDkwMUJDRkJEOTUwMEUzNEVGNyAvKiBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRGQTE4NTFCQ0E2QjVBMDA5MUI2RUYgLyogQ29t
cG9zZWRUcmVlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMDcsNiArMjcwMzIsNyBA
QAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNY
UGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQx
MjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc2MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NjJDNzgwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3QTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyNSw2ICsyNzc1MSw3IEBACiAJCQkJMDc4RTA5MkEx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc4RTA5NDUxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0Q5RDgyNzYxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyQzE3RDE0RDFDMDA0MjBBQTEgLyogUlRD
U3RhdHNSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NDYxN0QxNkUxQzAwNDIw
QUExIC8qIFJUQ1N0YXRzUmVzcG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJDNDM2
ODFCQ0VFMzc3MDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODI0OSw2ICsyODI3Niw3IEBACiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVw
aG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1
MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICov
LAorCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgxIC8qIFRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIwMDU2RTU4MSAvKiBUZXh0QWZmaW5pdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREI1MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0
ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0MTIsNiArMjk0NDAsNyBA
QAogCQkJCTk3Mzg4OUEwMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzFBMzdBRTA5N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNEMEZCRDAwREJENjI1RTAwQjJGNjMwIC8qIERPTUFic3RyYWN0Vmll
dy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTg0ODA5MUExRTZD
QkYwMEExMzMxOCAvKiBET01BbmltYXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
OEY2QkMyMERCNTVDREMwMDFEQjc5NCAvKiBET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1RDM4OUIzMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yOTU4NSw2ICsyOTYxNCw3IEBACiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAw
RTM5ODdDIC8qIERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CThBMTk1OTMzMTQ3RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3cubW0gaW4gU291
cmNlcyAqLywKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNp
dGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3RDMzNDcxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNDEyOTlCMUM2
QzE2NzQwMDU5RTcxNCAvKiBKU0lEQkluZGV4Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5ODk3LDcgQEAKIAkJCQlBOEVBNzlGODBBMTkxNkRGMDBB
OEVGNUYgLyogSFRNTE1lbnVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJCRThFMkM5
MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTg3MURDMjcwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxNZXRhRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDRDlEODI3NTFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNh
Y2hlQ1YubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNDU0NDI0QTExOUIzNjYxMDA5QkU5MTIgLyog
SFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjdBOTBBMTU2OTc4
MDAwQTQyMzQgLyogSFRNTE1vZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThERjNG
RDUwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMxMjgzLDYgKzMxMzE0LDcgQEAKIAkJCQlBODcxREZFNTBBMTUzNzZCMDBCMTJBNjgg
LyogUmVuZGVyV2lkZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NTI4REE2MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzkxQzdCOEVFMTAw
NkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODlD
Q0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZD
RUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IDI4YjlhNmFm
Zjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIuLjNmMTIzYzQ1NTEzMmU1MjNmMWViMGQ3
YzJlZjIwYzc1OTE4MmU4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICszNSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVX
T1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywg
T1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNl
dFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJj
ZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVC
dWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
LCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZU
eXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJl
ZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGltaW5n
SW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091dCkp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwg
dGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
LCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUx
LCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lTWFr
ZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJfdCB0aW1lc2NhbGUpLCAodmFsdWUsIHRp
bWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQz
Ml90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXgg
ODc5NWI1YjA2OGI2ZDYzMDJkYWQ3YTdiZjc4YWE3NTFlOTExMjkxMC4uZmVkMDllMmQyODEyZjMw
YTI1MmIyYTQ5NWE4ZDFiZTljMDZjMzQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC0zOSwxMiArMzksMTYgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0
YUxlbmd0aCwgc2kKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGggc29mdExpbmtf
Q29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRl
bnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAo
ZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5
cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VHlw
ZUlEIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFR5cGVJRAogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwg
KHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbgogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091
dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUg
dGltZTIpLCAodGltZTEsIHRpbWUyKSkKKyNkZWZpbmUgQ01UaW1lQWRkIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENv
cmVNZWRpYSwgQ01UaW1lQ29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRp
bWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZUNvbXBhcmUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZUNvbXBhcmUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwg
KHRpbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZp
ZGVvU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVv
U29mdExpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyOTZiNmViN2FlM2YwN2I3MzIyZjE5NDVjNTUwZmIz
MzIyZjFlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUg
PENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNF
KFdlYkNvcmUsIENvcmVWaWRlbykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBz
aXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1
ZmZlckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUs
IHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4s
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyks
IChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJl
dHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0Zs
YWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSwgQ0ZTdHJpbmdSZWYpCisKKyNpZiBQTEFURk9STShJT1MpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVh
dGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYg
Y2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBDRkRpY3Rpb25hcnlS
ZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0
KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwgdGV4dHVyZUF0dHJp
YnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Us
IENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0
aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBHTGVudW0gdGFyZ2V0LCBHTGludCBpbnRlcm5h
bEZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJbmRleCwgQ1ZPcGVuR0xFU1RleHR1cmVSZWYqIHRleHR1
cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCB0ZXh0dXJlQXR0
cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0
eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoLCB2b2lk
LCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mg
b3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVy
ZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4
ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVm
KQorI2Vsc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRl
bywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2Jq
IGNnbENvbnRleHQsIENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91
dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3Jt
YXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4
dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3Bl
bkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJ
bWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4
dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0
ZXMsIHRleHR1cmVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVy
ZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRl
eHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9w
ZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZC
T0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjA1
M2VlMDY3YmQwOTQ2ZTQxZDYxYzAwMDgzMDI0MzZhYjJmNDk0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaApAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb3JlVmlkZW9Tb2Z0TGlua19oCisjZGVm
aW5lIENvcmVWaWRlb1NvZnRMaW5rX2gKKworI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5j
bHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0aCwgc2l6ZV90LCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRIZWln
aHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBp
eGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRh
U2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZl
cikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzLCBDVlJl
dHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0Zs
YWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3Ms
IENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBs
b2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCisKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1h
dFR5cGVLZXksIENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0
VHlwZUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkK
KworI2lmIFBMQVRGT1JNKElPUykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMs
IENWRUFHTENvbnRleHQgZWFnbENvbnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmli
dXRlcywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBj
YWNoZUF0dHJpYnV0ZXMsIGVhZ2xDb250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9w
ZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNh
Y2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVy
ZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVf
dCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0
b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQs
IGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgs
IHRleHR1cmVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1
cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5H
TEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50
LCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJm
YWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NW
UGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0X0NvcmVW
aWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSgp
CisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENHTENvbnRleHRPYmog
Y2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4ZWxGb3JtYXQsIENGRGljdGlvbmFy
eVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0
KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xDb250ZXh0LCBjZ2xQaXhlbEZvcm1h
dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUlt
YWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0ZXh0
dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmlidXRl
cywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJl
Q2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMVGV4
dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihX
ZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3Bl
bkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xG
Qk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJ
T1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbmRpZgorCisjZW5k
aWYgLy8gQ29yZVZpZGVvU29mdExpbmtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDIwZjY1
NzkyMjllYjg5M2NkMDE1YmJmZmU5OGIyNTJiMWJmYmU3NjQuLjU3OWVlN2U3NmNhZWFkMjJiNWQy
NGRlZDg3YWQzY2RkZjVmMTAzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTU3LDcgKzU3
LDYgQEAgT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdDsKIAogdHlwZWRl
ZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIg
KkNWUGl4ZWxCdWZmZXJSZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFBpeGVsVHJhbnNmZXJT
ZXNzaW9uKiBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmOwogI2lmIFBMQVRGT1JNKElPUykKIHR5
cGVkZWYgc3RydWN0ICBfX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMRVNUZXh0dXJl
Q2FjaGVSZWY7CiAjZWxzZQpAQCAtNzEsOCArNzAsMTEgQEAgY2xhc3MgQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDOwogY2xhc3MgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOwogY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBNZWRpYVNlbGVjdGlvbkdy
b3VwQVZGT2JqQzsKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CitjbGFz
cyBUZXh0dXJlQ2FjaGVDVjsKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWOwogCiAjaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOwpAQCAtMzQ1LDE2ICsz
NDcsMTMgQEAgcHJpdmF0ZToKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX3ZpZGVvT3V0cHV0
U2VtYXBob3JlOwogCiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbVZpZGVvT3V0cHV0PiBtX29w
ZW5HTFZpZGVvT3V0cHV0OwotI2lmIFBMQVRGT1JNKElPUykKLSAgICBSZXRhaW5QdHI8Q1ZPcGVu
R0xFU1RleHR1cmVDYWNoZVJlZj4gbV9vcGVuR0xUZXh0dXJlQ2FjaGU7Ci0jZWxzZQotICAgIFJl
dGFpblB0cjxDVk9wZW5HTFRleHR1cmVDYWNoZVJlZj4gbV9vcGVuR0xUZXh0dXJlQ2FjaGU7Ci0j
ZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IG1fdGV4dHVyZUNhY2hl
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1RleHR1cmVDb3BpZXJDVj4gbV92aWRlb1RleHR1
cmVDb3BpZXI7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fbGFzdE9wZW5HTElt
YWdlOwogI2VuZGlmCiAKICNpZiBVU0UoVklERU9UT09MQk9YKQotICAgIFJldGFpblB0cjxWVFBp
eGVsVHJhbnNmZXJTZXNzaW9uUmVmPiBtX3BpeGVsVHJhbnNmZXJTZXNzaW9uOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVy
OwogI2VuZGlmCiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQppbmRleCA5MzNlYWMxZDk3Y2EzOGViZGU3NzAwOTQ0ZWI5MGFmZGYy
N2FiNWQ3Li4yYTk0YWU0NmYyNjA1NjU5MjhiMDE1N2JhZTE5NWFhYjkzNjc1MWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgIk1lZGlhUGxheWJh
Y2tUYXJnZXRNb2NrLmgiCiAjaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgog
I2ltcG9ydCAiTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgiCisjaW1wb3J0ICJQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlF1
YXJ0ekNvcmVTUEkuaCIKICNpbXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC02MCw3ICs2MSw5
IEBACiAjaW1wb3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiVGV4dEVuY29kaW5nLmgiCiAjaW1w
b3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgorI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1Yu
aCIKICNpbXBvcnQgIlVVSUQuaCIKKyNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAj
aW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKQEAgLTEw
NCwxNiArMTA3LDEzIEBACiAjaWYgVVNFKFZJREVPVE9PTEJPWCkKICNpbXBvcnQgPENvcmVWaWRl
by9Db3JlVmlkZW8uaD4KICNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKyNp
bXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjZW5kaWYKIAogI2lmIFVTRShDRk5FVFdPUksp
CiAjaW5jbHVkZSAiQ0ZOU1VSTENvbm5lY3Rpb25TUEkuaCIKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oSU9TKQotI2luY2x1ZGUgPE9wZW5HTEVTL0VTMy9nbGV4dC5oPgotI2VuZGlmCi0KIG5hbWVz
cGFjZSBzdGQgewogdGVtcGxhdGUgPD4gc3RydWN0IGl0ZXJhdG9yX3RyYWl0czxIYXNoU2V0PFJl
ZlB0cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+Pjo6aXRlcmF0b3I+IHsK
ICAgICB0eXBlZGVmIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+
IHZhbHVlX3R5cGU7CkBAIC0xNDksMjUgKzE0OSw2IEBAIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uVHlwZTsKIFNPRlRfTElOS19GUkFNRVdPUktf
T1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENv
cmVJbWFnZSkKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZVZpZGVvKQotCi0jaWYg
VVNFKFZJREVPVE9PTEJPWCkKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoVmlkZW9Ub29s
Ym94KQotI2VuZGlmCi0KLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
Ci1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0RGF0YVNpemUsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChw
aXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VB
ZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9u
RmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotU09GVF9MSU5LKENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVs
QnVmZmVyLCBsb2NrRmxhZ3MpKQotCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLVNPRlRfTElOSyhW
aWRlb1Rvb2xib3gsIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmICpwaXhlbFRy
YW5zZmVyU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSkK
LVNPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2Zlcklt
YWdlLCBPU1N0YXR1cywgKFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZQaXhl
bEJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIENWUGl4ZWxCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZm
ZXIpLCAoc2Vzc2lvbiwgc291cmNlQnVmZmVyLCBkZXN0aW5hdGlvbkJ1ZmZlcikpCi0jZW5kaWYK
IAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVlBsYXllckl0ZW0pCkBAIC0xOTUsNyArMTc2LDYgQEAgU09GVF9M
SU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25z
S2V5LCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkxheWVy
VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIo
QVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCwgTlNTdHJp
bmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0
eVJlc2l6ZSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4
ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIE5TU3RyaW5nICopCiAKIFNPRlRfTElOS19QT0lO
VEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENsaWVudEJ1bmRsZUlkZW50aWZp
ZXJLZXksIE5TU3RyaW5nICopCiAKQEAgLTIyMiw3ICsyMDIsNiBAQCBTT0ZUX0xJTktfUE9JTlRF
Ul9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
S2V5LCBOUwogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0IGdldEFWTGF5
ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QoKQogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5
UmVzaXplQXNwZWN0RmlsbCBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCgp
CiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUgZ2V0QVZMYXllclZpZGVvR3Jhdml0
eVJlc2l6ZSgpCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldGtD
VlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9O
X01FRElBX1NFTEVDVElPTl9HUk9VUCkKIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlvbkdyb3VwIEFW
TWVkaWFTZWxlY3Rpb25Hcm91cFR5cGU7CkBAIC0yOTEsMjQgKzI3MCw2IEBAIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUs
IE5TU3RyaW5nICopCiAjZGVmaW5lIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1l
IGdldEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lKCkKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oSU9TKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFy
eVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENvbnRleHQsIENGRGljdGlv
bmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiogY2Fj
aGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xDb250ZXh0LCB0ZXh0dXJl
QXR0cmlidXRlcywgY2FjaGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJ
bWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1
dGVzLCBHTGVudW0gdGFyZ2V0LCBHTGludCBpbnRlcm5hbEZvcm1hdCwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJ
bmRleCwgQ1ZPcGVuR0xFU1RleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0
dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCB0ZXh0dXJlQXR0cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5h
bEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJl
T3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVy
ZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdl
KSkKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VP
cGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBpeGVs
QnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbHNlCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENH
TENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4ZWxGb3JtYXQs
IENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVS
ZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xDb250ZXh0LCBj
Z2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVm
IHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0
b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0ZXMsIHRleHR1cmVPdXQpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENW
T3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25z
KSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5H
TFRleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChp
bWFnZSkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXROYW1lLCBHTHVp
bnQsIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxp
dHlLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdM
RkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0Nv
bXBhdGliaWxpdHlLZXkoKQotI2VuZGlmCi0KIFNPRlRfTElOS19GUkFNRVdPUksoTWVkaWFUb29s
Ym94KQogU09GVF9MSU5LX09QVElPTkFMKE1lZGlhVG9vbGJveCwgTVRFbmFibGVDYXB0aW9uMjAx
NUJlaGF2aW9yLCBCb29sZWFuLCAoKSwgKCkpCiAKQEAgLTIyMjAsMzkgKzIxODEsMTIgQEAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZVBpeGVsQnVmZmUKICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICBB
U1NFUlQobV92aWRlb091dHB1dCk7CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIHN0
YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0jZW5kaWYKLQogICAgIENNVGlt
ZSBjdXJyZW50VGltZSA9IFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV07CiAKICAg
ICBpZiAoIVttX3ZpZGVvT3V0cHV0LmdldCgpIGhhc05ld1BpeGVsQnVmZmVyRm9ySXRlbVRpbWU6
Y3VycmVudFRpbWVdKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBidWZmZXIgPSBhZG9wdENGKFttX3ZpZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhl
bEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsK
LSAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSNpZiBVU0UoVklERU9UT09M
Qk9YKQotICAgIC8vIENyZWF0ZSBhIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb24sIGlmIG5lY2Vzc2Fy
eSwgYXMgd2UgY2Fubm90IGd1YXJhbnRlZSB0aW1lbHkgZGVsaXZlcnkgb2YgQVJHQiBwaXhlbHMu
Ci0gICAgaWYgKCFtX3BpeGVsVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAgIFZUUGl4ZWxUcmFu
c2ZlclNlc3Npb25SZWYgc2Vzc2lvbiA9IDA7Ci0gICAgICAgIFZUUGl4ZWxUcmFuc2ZlclNlc3Np
b25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJnNlc3Npb24pOwotICAgICAgICBtX3BpeGVs
VHJhbnNmZXJTZXNzaW9uID0gYWRvcHRDRihzZXNzaW9uKTsKLSAgICB9Ci0KLSAgICBDVlBpeGVs
QnVmZmVyUmVmIG91dHB1dEJ1ZmZlcjsKLSAgICBDVlBpeGVsQnVmZmVyQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIENWUGl4ZWxCdWZmZXJHZXRXaWR0aChidWZmZXIuZ2V0KCkpLCBDVlBpeGVs
QnVmZmVyR2V0SGVpZ2h0KGJ1ZmZlci5nZXQoKSksIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEs
IDAsICZvdXRwdXRCdWZmZXIpOwotICAgIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2Zlcklt
YWdlKG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24uZ2V0KCksIGJ1ZmZlci5nZXQoKSwgb3V0cHV0QnVm
ZmVyKTsKLSAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7Ci0jZW5kaWYKLQotI2lm
ICFMT0dfRElTQUJMRUQKLSAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSAtIHN0YXJ0OwotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVBpeGVsQnVmZmVyKCVwKSAtIGNyZWF0aW5nIGJ1ZmZlciB0
b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0aW9uKSk7Ci0jZW5k
aWYKLQotICAgIHJldHVybiBidWZmZXI7CisgICAgcmV0dXJuIGFkb3B0Q0YoW21fdmlkZW9PdXRw
dXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUgaXRlbVRpbWVG
b3JEaXNwbGF5Om5pbF0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQpAQCAtMjI2OSw0MyArMjIwMyw2
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRI
YXNBdmFpbGFibGVGcmFtZSgpCiAgICAgcmV0dXJuIFttX3ZpZGVvT3V0cHV0IGhhc05ld1BpeGVs
QnVmZmVyRm9ySXRlbVRpbWU6W21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXV07CiB9CiAKLXN0
YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lk
KiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRy
ZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwotICAgIHJldHVy
biBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMg
dm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbywg
Y29uc3Qgdm9pZCopCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLX0K
LQotc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5m
bykKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVyKTsKLX0KLQot
c3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQotewotICAgIC8vIHBpeGVsQnVmZmVyIHdpbGwg
YmUgb2YgdHlwZSBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBLgotICAgIEFTU0VSVChDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSA9PSBrQ1ZQaXhlbEZvcm1hdFR5
cGVfMzJCR1JBKTsKLQotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChw
aXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
cGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRC
eXRlc1BlclJvdyhwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVMZW5ndGggPSBDVlBpeGVs
QnVmZmVyR2V0RGF0YVNpemUocGl4ZWxCdWZmZXIpOwotICAgIENHQml0bWFwSW5mbyBiaXRtYXBJ
bmZvID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhRmlyc3Q7Ci0K
LSAgICBDRlJldGFpbihwaXhlbEJ1ZmZlcik7IC8vIEJhbGFuY2VkIGJ5IENWUGl4ZWxCdWZmZXJS
ZWxlYXNlSW5mb0NhbGxiYWNrIGluIHByb3ZpZGVyQ2FsbGJhY2tzLgotICAgIENHRGF0YVByb3Zp
ZGVyRGlyZWN0Q2FsbGJhY2tzIHByb3ZpZGVyQ2FsbGJhY2tzID0geyAwLCBDVlBpeGVsQnVmZmVy
R2V0Qnl0ZVBvaW50ZXJDYWxsYmFjaywgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrLCAwLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayB9OwotICAgIFJldGFp
blB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVy
Q3JlYXRlRGlyZWN0KHBpeGVsQnVmZmVyLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3Mp
KTsKLQotICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwg
MzIsIGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRl
ci5nZXQoKSwgTlVMTCwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKLX0KLQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2Uo
KQogewogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlciA9IGNyZWF0
ZVBpeGVsQnVmZmVyKCk7CkBAIC0yMzEzLDggKzIyMTAsMjQgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoKQogICAgIC8vIENhbGxzIHRv
IGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVy
biBuaWwgaWYgdGhlIHBpeGVsIGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUg
aGFzIGFscmVhZHkgYmVlbiByZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQg
aW1hZ2UgKGlmIGFueSkKICAgICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgotICAgIGlmIChwaXhl
bEJ1ZmZlcikKLSAgICAgICAgbV9sYXN0SW1hZ2UgPSBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlci5nZXQoKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFtX3BpeGVsQnVmZmVyQ29uZm9ybWVyKSB7CisgICAgICAgIE5TRGlj
dGlvbmFyeSAqYXR0cmlidXRlcyA9IEB7IChOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxG
b3JtYXRUeXBlS2V5OiBAKGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpIH07CisgICAgICAgIG1f
cGl4ZWxCdWZmZXJDb25mb3JtZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1Y+KChDRkRpY3Rpb25hcnlSZWYpYXR0cmlidXRlcyk7CisgICAgfQorCisjaWYgIUxPR19E
SVNBQkxFRAorICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworI2VuZGlmCisKKyAgICBtX2xhc3RJbWFnZSA9IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXItPmNy
ZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKworI2lmICFMT0df
RElTQUJMRUQKKyAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSAtIHN0YXJ0OworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZSglcCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAlLjRm
IiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikpOworI2VuZGlmCiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9P
dXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIG91dHB1dFJl
Y3QpCkBAIC0yMzkyLDExMCArMjMwNSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dXBkYXRlTGFzdE9wZW5HTEltYWdlKCkKICAgICBtX2xhc3RPcGVuR0xJbWFn
ZSA9IGFkb3B0Q0YoW21fb3BlbkdMVmlkZW9PdXRwdXQgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRp
bWU6Y3VycmVudFRpbWUgaXRlbVRpbWVGb3JEaXNwbGF5Om5pbF0pOwogfQogCi0jaWYgIUxPR19E
SVNBQkxFRAotCi0jZGVmaW5lIFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCi1zdGF0aWMgc3RkOjpt
YXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKLXsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFwOwot
ICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgewotICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+IHN0cmluZ01hcDsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhVSSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2RikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRzMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SRzhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRzhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRzMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkczMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdC
OCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9BTFBI
QTgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTQp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTIp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09N
UE9ORU5UMTYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
REVQVEhfQ09NUE9ORU5UMjQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMjRfU1RFTkNJTDgpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRUQpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV82
XzUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfU0hPUlRfNF80XzRfNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZVEUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRfOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8zMl9V
TlNJR05FRF9JTlRfMjRfOF9SRVYpKTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJGKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2SSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjVfQTEpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQV9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZf
UkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF81XzlfOV85X1JFVikpOwotI2VuZGlmCi0gICAgfQotICAgIHJldHVybiBtYXAuZ2V0
KCk7Ci19Ci0KLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECi0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUs
IEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKQogewogICAgIGlmIChmbGlwWSB8fCBwcmVtdWx0aXBseUFscGhhKQpA
QCAtMjUxMSw5NSArMjMyMCwyMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaAogICAgIGlmICgh
bV9sYXN0T3BlbkdMSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9v
cGVuR0xUZXh0dXJlQ2FjaGUpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBudWxscHRyOwotICAgICAgICBDVlJldHVybiBlcnJv
ciA9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAmY2Fj
aGUpOwotI2Vsc2UKLSAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBudWxs
cHRyOwotICAgICAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKSwgbnVsbHB0ciwgJmNhY2hlKTsKLSNlbmRpZgotICAgICAgICBpZiAoZXJyb3Ig
IT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
bV9vcGVuR0xUZXh0dXJlQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsKLSAgICB9Ci0KICAgICBzaXpl
X3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkp
OwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KG1fbGFzdE9wZW5H
TEltYWdlLmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDVk9wZW5HTEVTVGV4dHVy
ZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2Vz
cyAhPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSwgbV9sYXN0T3BlbkdMSW1h
Z2UuZ2V0KCksIG51bGxwdHIsIG91dHB1dFRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgbGV2ZWwsICZiYXJlVmlkZW9UZXh0dXJlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZVJlZj4gdmlkZW9U
ZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0
IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUodmlkZW9UZXh0dXJl
LmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTEVTVGV4
dHVyZUdldFRhcmdldCh2aWRlb1RleHR1cmUuZ2V0KCkpOwotI2Vsc2UKLSAgICBDVk9wZW5HTFRl
eHR1cmVSZWYgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7Ci0gICAgaWYgKGtDVlJldHVyblN1
Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJ
bWFnZS5nZXQoKSwgbnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0g
YWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHZpZGVvVGV4
dHVyZU5hbWUgPSBDVk9wZW5HTFRleHR1cmVHZXROYW1lKHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0g
ICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0
KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0jZW5kaWYKLQotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVh
dGVXZWFrUHRyKCk7Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3dlYWtUaGlzXSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgaWYgKGF1dG8gY2FjaGUgPSB3ZWFrVGhpcy0+bV9vcGVuR0xUZXh0dXJl
Q2FjaGUuZ2V0KCkpCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICAgICAgQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbHNlCi0gICAgICAgICAgICBDVk9wZW5HTFRl
eHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbmRpZgotICAgIH0pOwotCi0gICAgTE9HKE1l
ZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAlcywgZm9ybWF0OiAlcywg
dHlwZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5hbEZvcm1hdF0sIGVudW1U
b1N0cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5cGVdKTsKLQotICAgIC8v
IFNhdmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVmZmVyIG5hbWVzIHNvIHdl
IGNhbiByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8gdGV4dHVyZS4KLSAgICBH
QzNEaW50IGJvdW5kVGV4dHVyZSA9IDA7Ci0gICAgR0MzRGludCBib3VuZFJlYWRGcmFtZWJ1ZmZl
ciA9IDA7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR18yRCwgJmJvdW5kVGV4dHVyZSk7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdlcnYo
R3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5kUmVhZEZy
YW1lYnVmZmVyKTsKLQotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKHZpZGVvVGV4dHVyZVRhcmdl
dCwgdmlkZW9UZXh0dXJlTmFtZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1l
dGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29u
dGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0KLSAgICAvLyBDcmVhdGUgYSBmcmFtZWJ1ZmZlciBvYmplY3QgdG8gcmVwcmVzZW50
IHRoZSB2aWRlbyB0ZXh0dXJlJ3MgbWVtb3J5LgotICAgIFBsYXRmb3JtM0RPYmplY3QgcmVhZEZy
YW1lYnVmZmVyID0gY29udGV4dC0+Y3JlYXRlRnJhbWVidWZmZXIoKTsKLQotICAgIC8vIE1ha2Ug
dGhhdCBmcmFtZWJ1ZmZlciB0aGUgcmVhZCBzb3VyY2UgZnJvbSB3aGljaCBkcmF3aW5nIGNvbW1h
bmRzIHdpbGwgcmVhZCB2b3hlbHMuCi0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCByZWFkRnJhbWVidWZmZXIpOwotCi0gICAg
Ly8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkgZm9yIHRoZSBvdXRwdXQgdGV4dHVyZS4K
LSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRleHR1cmUpOwot
ICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQs
IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNE
OjpMSU5FQVIpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3ND
b250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRl
eEltYWdlMkREaXJlY3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7Ci0KLSAgICAvLyBBdHRhY2ggdGhl
IHZpZGVvIHRleHR1cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgotICAgIGNvbnRleHQtPmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGlj
c0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9U
ZXh0dXJlTmFtZSwgbGV2ZWwpOwotCi0gICAgR0MzRGVudW0gc3RhdHVzID0gY29udGV4dC0+Y2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUik7
Ci0gICAgaWYgKHN0YXR1cyAhPSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQ09NUExF
VEUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIENvcHkgdGV4dHVyZSBmcm9tIHRo
ZSByZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1cyB0aGUgdmlkZW8gdGV4dHVyZSkgdG8gdGhlIG91
dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKKyAgICBpZiAo
IW1fdGV4dHVyZUNhY2hlKSB7CisgICAgICAgIG1fdGV4dHVyZUNhY2hlID0gVGV4dHVyZUNhY2hl
Q1Y6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCi0gICAgLy8gUmVzdG9yZSB0aGUgcHJldmlv
dXMgdGV4dHVyZSBhbmQgZnJhbWVidWZmZXIgYmluZGluZ3MuCi0gICAgY29udGV4dC0+YmluZFRl
eHR1cmUob3V0cHV0VGFyZ2V0LCBib3VuZFRleHR1cmUpOwotICAgIGNvbnRleHQtPmJpbmRGcmFt
ZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRSZWFkRnJh
bWVidWZmZXIpOworICAgIFJldGFpblB0cjxDVk9wZW5HTFRleHR1cmVSZWY+IHZpZGVvVGV4dHVy
ZSA9IG1fdGV4dHVyZUNhY2hlLT50ZXh0dXJlRnJvbUltYWdlKG1fbGFzdE9wZW5HTEltYWdlLmdl
dCgpKTsKIAotICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcy4KLSAgICBjb250ZXh0LT5k
ZWxldGVGcmFtZWJ1ZmZlcihyZWFkRnJhbWVidWZmZXIpOworICAgIGlmICghbV92aWRlb1RleHR1
cmVDb3BpZXIpCisgICAgICAgIG1fdmlkZW9UZXh0dXJlQ29waWVyID0gc3RkOjptYWtlX3VuaXF1
ZTxWaWRlb1RleHR1cmVDb3BpZXJDVj4oKmNvbnRleHQpOwogCi0gICAgcmV0dXJuICFjb250ZXh0
LT5nZXRFcnJvcigpOworICAgIHJldHVybiBtX3ZpZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHZpZGVvVGV4dHVyZS5nZXQoKSwgd2lkdGgsIGhlaWdo
dCwgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZv
cm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwogfQogCiBQYXNzTmF0aXZlSW1h
Z2VQdHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3YTFl
MGFhMmNiYjM3YjA1OWNkMjhiYmUzNmQzYjA4NDk2NzVkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCisKKyNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9v
bGJveCkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVh
dGVXaXRoQXR0cmlidXRlcywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmKiBjb25m
b3JtZXJPdXQpLCAoYWxsb2NhdG9yLCBhdHRyaWJ1dGVzLCBjb25mb3JtZXJPdXQpKTsKK1NPRlRf
TElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhl
bEJ1ZmZlciwgQm9vbGVhbiwgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBD
VlBpeGVsQnVmZmVyUmVmIHBpeEJ1ZiksIChjb25mb3JtZXIsIHBpeEJ1ZikpCitTT0ZUX0xJTkso
VmlkZW9Ub29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVm
ZmVyLCBPU1N0YXR1cywgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBp
eGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQm9vbGVhbiBlbnN1cmVNb2RpZmlhYmxlLCBDVlBp
eGVsQnVmZmVyUmVmKiBjb25mb3JtZWRCdWZmZXJPdXQpLCAoY29uZm9ybWVyLCBzb3VyY2VCdWZm
ZXIsIGVuc3VyZU1vZGlmaWFibGUsIGNvbmZvcm1lZEJ1ZmZlck91dCkpCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6UGl4ZWxCdWZmZXJDb25mb3JtZXJD
VihDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcykKK3sKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9y
bWVyUmVmIGNvbmZvcm1lciA9IDA7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdp
dGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIp
OworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7Cit9CisKK3N0YXRp
YyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBp
bmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNz
KHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOworICAgIHJldHVybiBD
VlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgdm9p
ZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbywgY29u
c3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNl
QWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKK30KKwor
c3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykK
K3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVyKTsKK30KKworUmV0
YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJv
bVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcmF3QnVmZmVyKQoreworICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyByYXdCdWZmZXIgfTsKKyAgICBzaXplX3Qgd2lk
dGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3QgaGVp
Z2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpOworCisgICAgaWYgKCFW
VFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3JtYW50UGl4ZWxCdWZmZXIobV9waXhlbENvbmZv
cm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgeworICAgICAgICBDVlBpeGVsQnVmZmVyUmVmIG91
dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZUUGl4ZWxC
dWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5n
ZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91dHB1dEJ1ZmZlcik7CisgICAgICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAgfQorCisg
ICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8
IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVm
ZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3QgYnl0ZUxlbmd0aCA9
IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZmZXIuZ2V0KCkpOworCisgICAgQ0ZSZXRhaW4o
YnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2Fs
bGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisgICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxs
YmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRl
ckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENW
UGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIH07CisgICAgUmV0YWluUHRyPENHRGF0YVBy
b3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3Qo
YnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3MpKTsKKworICAgIHJl
dHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwgMzIsIGJ5dGVzUGVy
Um93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRlci5nZXQoKSwgbnVs
bHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNjUyZGQ3YjI5YjAyZTUyNTJiNDZhYmNhYjMz
NWM3NDIyNTEzOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisjZGVmaW5lIFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1ZfaAorCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKworI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbEJ1ZmZlckNv
bmZvcm1lciogVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZjsKK3R5cGVkZWYgc3RydWN0IENHSW1h
Z2UqIENHSW1hZ2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVy
UmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YgeworcHVibGljOgorICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVm
IGF0dHJpYnV0ZXMpOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21Q
aXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZj4gbV9waXhlbENvbmZvcm1lcjsKK307CisKK30KKwor
I2VuZGlmIC8vIFVTRShWSURFT1RPT0xCT1gpCisKKyNlbmRpZiAvLyBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1RleHR1cmVDYWNoZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9U
ZXh0dXJlQ2FjaGVDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxY2U1MDJhNWFiZDdhZjhmMmE4NWIzYTY3M2Vk
YzE0Y2QwNWYxMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFRleHR1cmVDYWNoZUNWX2gKKyNkZWZpbmUgVGV4dHVyZUNhY2hlQ1ZfaAorCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1
ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0
eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7Cit0eXBlZGVmIHN0
cnVjdCBfX0NWT3BlbkdMVGV4dHVyZUNhY2hlICpDVk9wZW5HTFRleHR1cmVDYWNoZVJlZjsKK3R5
cGVkZWYgc3RydWN0IF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1cmVD
YWNoZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQz
RDsKKworY2xhc3MgVGV4dHVyZUNhY2hlQ1YgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOworCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiAg
VGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1
cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmICBUZXh0
dXJlQ2FjaGVUeXBlOworICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBl
OworI2VuZGlmCisKKyAgICBUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYsIFJldGFp
blB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYmKTsKKworICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4g
dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQnVmZmVyUmVmKTsKKyAgICBHcmFwaGljc0NvbnRleHQz
RCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJl
Q2FjaGVUeXBlPiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBt
X3dlYWtQdHJGYWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOTc0ZTE0ZTI4Mjg0ZTM0YTNjZmQzY2YzZGU4NjQyNDAyZWU2
MWFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4g
VGV4dHVyZUNhY2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAg
ICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgp
LCBudWxscHRyLCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdM
VGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQu
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAg
ICBpZiAoZXJyb3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENG
KGNhY2hlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29u
dGV4dCwgV1RGTW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVy
ZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2Fj
aGVUeXBlPiYmIGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hl
KGNhY2hlKQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8
VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21J
bWFnZShDVkltYWdlQnVmZmVyUmVmIGltYWdlKQoreworICAgIFRleHR1cmVUeXBlIGJhcmVWaWRl
b1RleHR1cmUgPSBudWxscHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBzaXplX3Qgd2lkdGgg
PSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoaW1hZ2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KGltYWdlKTsKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX2NhY2hlLmdldCgpLCBpbWFnZSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRl
b1RleHR1cmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgaWYgKGtDVlJl
dHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCAmYmFy
ZVZpZGVvVGV4dHVyZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgUmV0
YWluUHRyPFRleHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1
cmUpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFr
VGhpc10geworICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX2NhY2hlLmdldCgp
KQorI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVG
bHVzaChjYWNoZSwgMCk7CisjZWxzZQorICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVG
bHVzaChjYWNoZSwgMCk7CisjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiB2aWRlb1RleHR1
cmU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDFlYTM5Yzgx
MDcwOGQ1YmM1OTQ2NDAxMGZiY2VmNDdiYjVmY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBA
IC0wLDAgKzEsMjEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1
ZGUgPE9wZW5HTEVTL0VTMy9nbGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJDb3JlVmlkZW9T
b2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZGVvVGV4dHVyZUNvcGllckNW
OjpWaWRlb1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9yZWFkRnJhbWVidWZmZXIoY29udGV4dC5jcmVh
dGVGcmFtZWJ1ZmZlcigpKQoreworfQorCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVvVGV4
dHVyZUNvcGllckNWKCkKK3sKKyAgICBtX2NvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fcmVh
ZEZyYW1lYnVmZmVyKTsKK30KKworI2lmICFMT0dfRElTQUJMRUQKKworI2RlZmluZSBTVFJJTkdJ
RllfUEFJUihlKSBlLCAjZQorc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4m
IGVudW1Ub1N0cmluZ01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bWFw
PHVpbnQzMl90LCBjb25zdCBjaGFyKj4+IG1hcDsKKyAgICBpZiAobWFwLmdldCgpLmVtcHR5KCkp
IHsKKyAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUjMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcx
NkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkYp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDMy
RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDI0
X1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIMzJGX1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0xVTUlOQU5DRV9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkVEKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfREVQVEhfU1RFTkNJTCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9CWVRFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV81
XzVfMSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9CWVRF
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZfRkxP
QVQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
U0hPUlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU0hP
UlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfSU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0lO
VCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05F
RF9JTlRfMl8xMF8xMF8xMF9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzI0XzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7CisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JFRF9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQl9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0I1NjUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SMTFGX0cxMUZfQjEwRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I5X0U1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkE4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkExNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkE4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0IxMF9BMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkExNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkExNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQTMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I1X0ExKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkFf
SU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9E
RVBUSF9DT01QT05FTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsKKyNl
bmRpZgorICAgIH0KKyAgICByZXR1cm4gbWFwLmdldCgpOworfQorCisjZW5kaWYKKworYm9vbCBW
aWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRl
eHR1cmVUeXBlIGlucHV0VGV4dHVyZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0
Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGlu
dCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVu
dW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQoreworICAgIGlmIChm
bGlwWSB8fCBwcmVtdWx0aXBseUFscGhhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWlucHV0VGV4dHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNU
ZXh0dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZWxzZQor
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUoaW5wdXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBD
Vk9wZW5HTFRleHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgTE9H
KE1lZGlhLCAiVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZSglcCkgLSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwg
dGhpcywgZW51bVRvU3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAo
KVtmb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7CisKKyAgICAvLyBTYXZlIHRoZSBv
cmlnaWFsIGJvdW5kIHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmlu
ZCB0aGVtIGFmdGVyIGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCisgICAgR0MzRGludCBib3Vu
ZFRleHR1cmUgPSAwOworICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOworICAg
IG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElO
R18yRCwgJmJvdW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGlj
c0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZm
ZXIpOworCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZp
ZGVvVGV4dHVyZU5hbWUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2Nv
bnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RP
X0VER0UpOworCisgICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBm
cm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KKyAgICBtX2NvbnRl
eHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwg
bV9yZWFkRnJhbWVidWZmZXIpOworCisgICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1v
cnkgZm9yIHRoZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91
dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJp
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQt
PnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0Up
OworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQz
RDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1
dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQs
IHR5cGUsIG51bGxwdHIpOworCisgICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRo
ZSBmcmFtZWJ1ZmZlci4KKyAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QVRUQUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSwgbGV2ZWwp
OworCisgICAgR0MzRGVudW0gc3RhdHVzID0gbV9jb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKKyAgICBpZiAoc3RhdHVz
ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZm
ZXIgKGFuZCB0aHVzIHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCisg
ICAgbV9jb250ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisKKyAgICAvLyBSZXN0b3JlIHRoZSBw
cmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KKyAgICBtX2NvbnRleHQt
PmJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQt
PmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91
bmRSZWFkRnJhbWVidWZmZXIpOworCisgICAgcmV0dXJuICFtX2NvbnRleHQtPmdldEVycm9yKCk7
Cit9CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmNTEyZjg5YWNjNDVm
YTVjYzRkNmI3YmMzZTBmOGVjZTMyZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorI2Rl
ZmluZSBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCisKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dDNE
LmgiCisKK3R5cGVkZWYgc3RydWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlw
ZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFn
ZUJ1ZmZlclJlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDViB7CitwdWJsaWM6CisgICAgVmlkZW9UZXh0dXJl
Q29waWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmKTsKKyAgICB+VmlkZW9UZXh0dXJlQ29waWVyQ1Yo
KTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVm
IFRleHR1cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0
dXJlVHlwZTsKKyNlbmRpZgorCisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoVGV4dHVyZVR5cGUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0z
RE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5
cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CisKKyAgICBHcmFwaGljc0Nv
bnRleHQzRCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFBsYXRmb3JtM0RP
YmplY3QgbV9yZWFkRnJhbWVidWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBWaWRlb1RleHR1
cmVDb3BpZXJDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggMDc3ODM1ZDVl
MjEyOWVlOWVlZmY4ZDQwYTFkNDUwNzE5ODRhYzU2MS4uOTc2ODRmMjdkNGQ2MTQ0MDVlY2Y2Zjcw
ZTk3ZDczNTc3MGMyMThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTIs
NyArNTIsNiBAQCB0eXBlZGVmIEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCBBVkNhcHR1cmVWaWRl
b0RhdGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllclR5cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9O
QUwoQVZGb3VuZGF0aW9uKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8p
CiAKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBT
T0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC04MSwxNyAr
ODAsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25Q
cmVzZXRMb3csIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4
Mjg4IGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4KCkKICNkZWZpbmUgQVZDYXB0dXJl
U2Vzc2lvblByZXNldExvdyBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93KCkKIAotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZl
ckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAo
cGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5
cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZS
ZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tG
bGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9j
a0ZsYWdzKSkKLQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0
IEF0b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWlu
dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271946</attachid>
            <date>2016-02-22 13:10:38 -0800</date>
            <delta_ts>2016-02-22 13:21:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154544-20160222131020.patch</filename>
            <type>text/plain</type>
            <size>87760</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uN2M5Y2QyY2MzOTVlNTBlOWIyOWY0OTYzMjE0ODQ3
MzVlODY3ZGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9y
ZGVyIGZvciBjb21tb24gQ29yZVZpZGVvIGNvZGUgcGF0aHMgdG8gYmUgcmUtdXNlZCBpbiBvdGhl
ciBjbGFzc2VzLCBwdWxsIHRob3NlIHBhdGhzCisgICAgICAgIG91dCBvZiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIGFuZCBpbnRvIHJlLXVzYWJsZSBjbGFzZXNzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRM
aW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExp
bmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4
ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjplbnVtVG9TdHJpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YpOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVy
ZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjp+Vmlk
ZW9UZXh0dXJlQ29waWVyQ1YpOgorICAgICAgICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbTogTW92ZSBTT0ZUX0xJTksgZGVjbGFyYXRpb25zIGludG8g
Q29yZVZpZGVvU29mdExpbmsuaC9jcHAuCisKIDIwMTYtMDItMjIgIEtvbnN0YW50aW4gVG9rYXJl
diAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gTW92ZWQgbGlicmFyeSBz
ZXR1cCBjb2RlIHRvIFdFQktJVF9GUkFNRVdPUksgbWFjcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjZhNjE0ZTI5ZjYzOWRi
MjExYjM4NDgyYTczZDczYmJmYjI3MWE5NS4uM2MxMzcxM2QwNjZlNmZjNjY3YjI5NjcwNjkwZWI1
N2MxMjU3ZTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNjA2Niw2ICs2MDY2LDEwIEBACiAJCUNENjQxRUI0MTgxOEY1RUQw
MEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNl
QnVmZmVyUHJpdmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVk
aWFUaW1lQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5k
YXRpb24uY3BwICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1l
QVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgg
Ki87IH07CisJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
N0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsg
fTsKKwkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQy
MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CisJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAw
NDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OworCQlDRDdEMzM0ODFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlk
ZW9Tb2Z0TGluay5oICovOyB9OwogCQlDRDdEQkIyODE4Q0ExOUE0MDBDMTEwNjYgLyogQ1NTR3Jp
ZExpbmVOYW1lc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEN0RCQjI2MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFs
dWUuY3BwICovOyB9OwogCQlDRDdEQkIyOTE4Q0ExOUM2MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVO
YW1lc1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDdEQkIyNzE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmggKi87
IH07CiAJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdF
MDUyMTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9
OwpAQCAtNjA4Miw2ICs2MDg2LDEwIEBACiAJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBW
aWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEOEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFT
b3VyY2UuaCAqLzsgfTsKIAkJQ0Q4QjVBNDkxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVkaWFTb3VyY2UuaCAqLzsg
fTsKIAkJQ0Q4QjVBNEMxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNEIx
ODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDlE
ODI3NTFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYg
LyogVGV4dHVyZUNhY2hlQ1YubW0gKi87IH07CisJCUNEOUQ4Mjc2MUM3QUU1MzUwMDZGRjA2NiAv
KiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi87
IH07CisJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllci5jcHAgKi87IH07CisJCUNEOUQ4
MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXIuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0QzAwRUEz
ODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2Uu
Y3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzMx
N0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUxN0ExN0FB
Qzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1Nv
dXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlDRDY0MUVC
RDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3RDMzNDIxQzdB
MTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29m
dExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29yZVZpZGVv
U29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0NjFDN0Ex
NkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29yZVZpZGVvU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q3REJCMjYxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNzE4Q0ExMUZG
MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDdFMDUyMDE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMzksNiArMTQwNTEsMTAgQEAKIAkJQ0Q4QjVB
NDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1QTRBMTgwRTE3QTMwMDhCOEU2NSAvKiBBdWRpb1RyYWNr
TWVkaWFTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1QTRCMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1Ry
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjcz
MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHR1cmVDYWNoZUNWLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1Yu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dHVyZUNhY2hlQ1YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzcxQzdCOEVFMTAwNkZGMDY2IC8qIFZp
ZGVvVGV4dHVyZUNvcGllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWaWRlb1RleHR1cmVDb3BpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVGV4dHVyZUNvcGllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5REUxNzMxN0FBQzc0QzAw
RUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3
NjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTk5ODAsNiArMTk5OTYsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQlBMTQwOTBGQTFBQTUxRTFEMDA5MTE5MUEgLyogQ29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0gKi8sCisJCQkJQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLywKKwkJCQlDRDdEMzM0NjFDN0ExNkJGMDAw
NDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCAqLywKIAkJCQk3Qzc5NDFFMjFDNTZDMjkzMDBB
NEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLywKIAkJCQk3Qzc5NDFFMzFD
NTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oICovLAogCQkJCTVE
OEM0REJEMTQyODIyMkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlckNvY29hLmNwcCAq
LywKQEAgLTIyMTcyLDYgKzIyMTkwLDEyIEBACiAJCQkJMkQwQjRBQTkxOERBMUNDRDAwNDM0REUx
IC8qIElPU3VyZmFjZS5oICovLAogCQkJCTJEMEI0QUFBMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1
cmZhY2UubW0gKi8sCiAJCQkJQUQ5RkY2RTAxOTA4MzkxRDAwM0I2MUUwIC8qIElPU3VyZmFjZVBv
b2xDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5jcHAgKi8sCisJCQkJQ0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywKKwkJCQlDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYg
LyogVGV4dHVyZUNhY2hlQ1YuaCAqLywKKwkJCQlDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YubW0gKi8sCisJCQkJQ0Q5RDgyNzcxQzdCOEVFMTAwNkZGMDY2IC8qIFZp
ZGVvVGV4dHVyZUNvcGllci5jcHAgKi8sCisJCQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8q
IFZpZGVvVGV4dHVyZUNvcGllci5oICovLAogCQkJCTJEM0VGNDQ0MTkxNzkxNUMwMDAzNDE4NCAv
KiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCAqLywKIAkJCQkyRDNFRjQ0NTE5
MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tICov
LAogCQkJCTJEM0VGNDQ2MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5o
ICovLApAQCAtMjUxOTQsNiArMjUyMTgsNyBAQAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4
MSAvKiBDb21tZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3NTE4NDAyQTY3MDA4OTJG
MTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzkzRjM0
QTFBQTZCQTVFMDBBOThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDRDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxl
eFRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBF
MzRFRjcgLyogQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTQ0RkExODUxQkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKQEAgLTI2OTc3LDYgKzI3MDAyLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3
MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3
NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyog
SlNYUGF0aEV4cHJlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYw
MDk4OUY1QiAvKiBKU1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJD
N0EwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjc2OTMsNiArMjc3MTksNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENT
dGF0c1JlcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgz
IC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZF
MUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4
Mjc2MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc4RTA5MkMxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNl
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJU
Q1RyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNDQsNyBAQAogCQkJ
CTdDQzU2NEI4MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29u
dGVudERvY3VtZW50RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0
RUEwMDdCODVCNSAvKiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBC
NkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUx
NzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RTdCMkRCNTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4g
SGVhZGVycyAqLywKQEAgLTI5Mzc5LDYgKzI5NDA3LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURD
MDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3
QUUwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQw
MERCRDYyNUUwMEIyRjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0
aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQg
LyogRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBB
OTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiAr
Mjk1ODAsNyBAQAogCQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVB
NjEgLyogRE9NV2ViS2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUNEN0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJ
bmRleEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0
REQgLyogRE9NV2hlZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEz
QUYwMDc5N0M3RiAvKiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsy
OTg2MSw3IEBACiAJCQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRN
TE1ldGFDaGFyc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIw
NTcwMEIxMkE2OCAvKiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5
RDgyNzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTQ1NDQyNEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBI
VE1MTmFtZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI3Niw3
IEBACiAJCQkJQTg3MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVD
b3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg5Q0NDNTIwRjQ0RTk4MTAwQjVEQTEwIC8q
IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5
RTA5MDk5RTY0OTIwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5OUNDMEI1MzE4QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5Q29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCAyOGI5YTZhZmY5OGYxMjFjMGU0YjUxMjcwZmVhMmVh
ZWI2ZDM5MWZiLi4zZjEyM2M0NTUxMzJlNTIzZjFlYjBkN2MyZWYyMGM3NTkxODJlODk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCkBA
IC0zNSwxMCArMzUsMTIgQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVNZWRpYSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVN
ZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZl
clJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVu
Z3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0aGVTb3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwg
ZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2l6ZV90LCAo
Q01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dEV4dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uLCBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRl
bUluZGV4IHNhbXBsZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAo
c2J1Ziwgc2FtcGxlSW5kZXgsIHRpbWluZ0luZm9PdXQpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01U
aW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChD
TVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBG
bG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFs
dWUsIGludDMyX3QgdGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlV2l0aFNlY29u
ZHMsIENNVGltZSwgKEZsb2F0NjQgc2Vjb25kcywgaW50MzJfdCBwcmVmZXJyZWRUaW1lU2NhbGUp
LCAoc2Vjb25kcywgcHJlZmVycmVkVGltZVNjYWxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAyZGFkN2E3
YmY3OGFhNzUxZTkxMTI5MTAuLmZlZDA5ZTJkMjgxMmYzMGEyNTJiMmE0OTVhOGQxYmU5YzA2YzM0
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsu
aApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVmaW5lIENN
QmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVm
LCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNj
cmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCks
ICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJsb2NrQnVm
ZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1w
bGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxl
QnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUluZGV4
LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5kZXgs
IHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikp
CisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUs
IGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQog
I2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21wYXJlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdl
dFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMjk2YjZlYjdhZTNmMDdiNzMyMmYxOTQ1YzU1MGZiMzMyMmYxZTU3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3Bw
CkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+
CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8pCisK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwg
KHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9p
ZCosIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZl
ckdldEJ5dGVzUGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwg
KHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFn
cykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9j
a0ZsYWdzKSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRl
bywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIENGU3RyaW5nUmVmKQorCisjaWYg
UExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdM
Q29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0
cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENW
SW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmli
dXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5l
SW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4
dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJu
YWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVy
ZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8s
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2Fj
aGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hl
LCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVW
aWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0
dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9w
ZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdM
RVNGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNlbHNlCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZv
cm1hdE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVz
LCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0
dHJpYnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywg
Y2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZp
ZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJu
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0
dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBh
dHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0
ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNo
ZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4
dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdl
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZP
cGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwg
KGltYWdlKSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRl
bywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0
cmluZ1JlZikKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvQ29yZVZpZGVvU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0Nv
cmVWaWRlb1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIwNTNlZTA2N2JkMDk0NmU0MWQ2MWMwMDA4
MzAyNDM2YWIyZjQ5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQ29yZVZpZGVvU29mdExpbmtfaAorI2RlZmluZSBDb3JlVmlkZW9Tb2Z0TGlua19o
CisKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlk
ZW8uaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRl
bykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBD
VlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
LCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUsIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3Jt
YXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9j
a0ZsYWdzKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRl
bywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVy
LCBsb2NrRmxhZ3MpKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikK
KyNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0X0NvcmVWaWRlb19r
Q1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCisKKyNpZiBQTEFURk9STShJT1MpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250
ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJl
Q2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29u
dGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0
ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBz
b3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBHTGVudW0gdGFy
Z2V0LCBHTGludCBpbnRlcm5hbEZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJbmRleCwgQ1ZPcGVuR0xF
U1RleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJj
ZUltYWdlLCB0ZXh0dXJlQXR0cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2Fj
aGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVT
VGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAo
aW1hZ2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0dXJlUmVm
IGltYWdlKSwgKGltYWdlKSkKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3Bl
bkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJJT1N1
cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXkoKQorI2Vsc2UKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVD
cmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlS
ZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQsIENHTFBpeGVsRm9y
bWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMs
IENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0
cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBj
YWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4s
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1
cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0
dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRl
eHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0ZXMsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1
cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hl
LCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0
dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2Up
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9w
ZW5HTFRleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAo
aW1hZ2UpKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlk
ZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJP
Q29tcGF0aWJpbGl0eUtleSgpCisjZW5kaWYKKworI2VuZGlmIC8vIENvcmVWaWRlb1NvZnRMaW5r
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAyMGY2NTc5MjI5ZWI4OTNjZDAxNWJiZmZlOThi
MjUyYjFiZmJlNzY0Li41NzllZTdlNzZjYWVhZDIyYjVkMjRkZWQ4N2FkM2NkZGY1ZjEwMzJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC01Nyw3ICs1Nyw2IEBAIE9CSkNfQ0xBU1MgQVZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CiAKIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNHSW1h
Z2VSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOwotdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbiogVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvblJlZjsKICNpZiBQTEFURk9STShJT1MpCiB0eXBlZGVmIHN0cnVjdCAgX19DVk9wZW5H
TEVTVGV4dHVyZUNhY2hlICpDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmOwogI2Vsc2UKQEAgLTcx
LDggKzcwLDExIEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkZPYmpDOwogY2xhc3MgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM7CitjbGFzcyBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOwogY2xh
c3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOworY2xhc3MgVGV4dHVyZUNhY2hlQ1Y7CitjbGFz
cyBWaWRlb1RleHR1cmVDb3BpZXJDVjsKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKIGNsYXNzIFZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlcjsKQEAgLTM0NSwxNiArMzQ3LDEzIEBAIHByaXZhdGU6CiAgICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3QgbV92aWRlb091dHB1dFNlbWFwaG9yZTsKIAogICAgIFJldGFp
blB0cjxBVlBsYXllckl0ZW1WaWRlb091dHB1dD4gbV9vcGVuR0xWaWRlb091dHB1dDsKLSNpZiBQ
TEFURk9STShJT1MpCi0gICAgUmV0YWluUHRyPENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWY+IG1f
b3BlbkdMVGV4dHVyZUNhY2hlOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJl
Q2FjaGVSZWY+IG1fb3BlbkdMVGV4dHVyZUNhY2hlOwotI2VuZGlmCisgICAgc3RkOjp1bmlxdWVf
cHRyPFRleHR1cmVDYWNoZUNWPiBtX3RleHR1cmVDYWNoZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
VmlkZW9UZXh0dXJlQ29waWVyQ1Y+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwogICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2xhc3RPcGVuR0xJbWFnZTsKICNlbmRpZgogCiAjaWYgVVNF
KFZJREVPVE9PTEJPWCkKLSAgICBSZXRhaW5QdHI8VlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZj4g
bV9waXhlbFRyYW5zZmVyU2Vzc2lvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGl4ZWxCdWZmZXJD
b25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKICNlbmRpZgogCiAjaWYgSEFWRShB
VkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
OTMzZWFjMWQ5N2NhMzhlYmRlNzcwMDk0NGViOTBhZmRmMjdhYjVkNy4uMmE5NGFlNDZmMjYwNTY1
OTI4YjAxNTdiYWUxOTVhYWI5MzY3NTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Myw2ICs1Myw3IEBACiAjaW1wb3J0ICJNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIgogI2ltcG9y
dCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKICNpbXBvcnQgIk1lZGlhVGltZUFWRm91
bmRhdGlvbi5oIgorI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAi
UGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJRdWFydHpDb3JlU1BJLmgiCiAjaW1wb3J0
ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjAsNyArNjEsOSBAQAogI2ltcG9ydCAiU2V0dGluZ3Mu
aCIKICNpbXBvcnQgIlRleHRFbmNvZGluZy5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaCIKKyNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCiAjaW1wb3J0ICJVVUlELmgiCisj
aW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZh
dGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBv
cnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCkBAIC0xMDQsMTYgKzEwNywxMyBAQAogI2lmIFVT
RShWSURFT1RPT0xCT1gpCiAjaW1wb3J0IDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjaW1wb3J0
IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGlu
ay5oIgogI2VuZGlmCiAKICNpZiBVU0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgIkNGTlNVUkxDb25u
ZWN0aW9uU1BJLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxPcGVu
R0xFUy9FUzMvZ2xleHQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2Ugc3RkIHsKIHRlbXBsYXRlIDw+
IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8SGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6TWVkaWFTZWxl
Y3Rpb25PcHRpb25BVkZPYmpDPj46Oml0ZXJhdG9yPiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8V2Vi
Q29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPiB2YWx1ZV90eXBlOwpAQCAtMTQ5LDI1
ICsxNDksNiBAQCB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNlbGVjdGlv
bk9wdGlvblR5cGU7CiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikK
IAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlSW1hZ2UpCi1TT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZU
X0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9vbGJveCkKLSNlbmRpZgotCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
R2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChw
aXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQ
ZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXpl
X3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRf
TElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwg
KENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5L
KENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhl
bEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJV
bmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
LCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQot
I2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJh
bnNmZXJTZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
VlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiAqcGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpLCAoYWxs
b2NhdG9yLCBwaXhlbFRyYW5zZmVyU2Vzc2lvbk91dCkpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94
LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSwgT1NTdGF0dXMsIChWVFBpeGVs
VHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24sIENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVy
LCBDVlBpeGVsQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyKSwgKHNlc3Npb24sIHNvdXJjZUJ1
ZmZlciwgZGVzdGluYXRpb25CdWZmZXIpKQotI2VuZGlmCiAKIFNPRlRfTElOS19DTEFTUyhBVkZv
dW5kYXRpb24sIEFWUGxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5
ZXJJdGVtKQpAQCAtMTk1LDcgKzE3Niw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlv
biwgQVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tleSwgTlNTdHJpbmcgKikKIFNPRlRf
TElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVj
dCwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZp
ZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRF
UihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCi1T
T0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBl
S2V5LCBOU1N0cmluZyAqKQogCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmluZyAqKQogCkBA
IC0yMjIsNyArMjAyLDYgQEAgU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlMKICNkZWZpbmUgQVZMYXll
clZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNw
ZWN0KCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwgZ2V0QVZM
YXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwoKQogI2RlZmluZSBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplIGdldEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUoKQotI2RlZmluZSBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0
VHlwZUtleSgpCiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAp
CiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25Hcm91cCBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBl
OwpAQCAtMjkxLDI0ICsyNzAsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFW
VVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqKQogI2RlZmluZSBB
VlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSBnZXRBVlVSTEFzc2V0Qm91bmROZXR3
b3JrSW50ZXJmYWNlTmFtZSgpCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBD
VkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0
ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2Fj
aGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkK
LVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJl
RnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1h
Z2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xp
bnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJl
UmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwg
dGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZp
ZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVy
ZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVD
YWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdl
dFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChD
Vk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihD
b3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5
S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVT
RkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJP
Q29tcGF0aWJpbGl0eUtleSgpCi0jZWxzZQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
RkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQs
IENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVy
ZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0
b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1
cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VC
dWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5H
TFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJj
ZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
T3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0
ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlv
bnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVu
dW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVm
IGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbmRp
ZgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKIFNPRlRfTElOS19PUFRJT05B
TChNZWRpYVRvb2xib3gsIE1URW5hYmxlQ2FwdGlvbjIwMTVCZWhhdmlvciwgQm9vbGVhbiwgKCks
ICgpKQogCkBAIC0yMjIwLDM5ICsyMTgxLDEyIEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlCiAg
ICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwog
Ci0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwotI2VuZGlmCi0KICAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBbbV9hdlBs
YXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdOwogCiAgICAgaWYgKCFbbV92aWRlb091dHB1dC5n
ZXQoKSBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lXSkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVyID0gYWRv
cHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJy
ZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAg
ICAgIHJldHVybiAwOwotCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLSAgICAvLyBDcmVhdGUgYSBW
VFBpeGVsVHJhbnNmZXJTZXNzaW9uLCBpZiBuZWNlc3NhcnksIGFzIHdlIGNhbm5vdCBndWFyYW50
ZWUgdGltZWx5IGRlbGl2ZXJ5IG9mIEFSR0IgcGl4ZWxzLgotICAgIGlmICghbV9waXhlbFRyYW5z
ZmVyU2Vzc2lvbikgewotICAgICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24g
PSAwOwotICAgICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsICZzZXNzaW9uKTsKLSAgICAgICAgbV9waXhlbFRyYW5zZmVyU2Vzc2lvbiA9IGFkb3B0
Q0Yoc2Vzc2lvbik7Ci0gICAgfQotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXI7
Ci0gICAgQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDVlBpeGVsQnVm
ZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIu
Z2V0KCkpLCBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBLCAwLCAmb3V0cHV0QnVmZmVyKTsKLSAg
ICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3BpeGVsVHJhbnNmZXJTZXNz
aW9uLmdldCgpLCBidWZmZXIuZ2V0KCksIG91dHB1dEJ1ZmZlcik7Ci0gICAgYnVmZmVyID0gYWRv
cHRDRihvdXRwdXRCdWZmZXIpOwotI2VuZGlmCi0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91
YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKLSAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQ
aXhlbEJ1ZmZlciglcCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAlLjRmIiwgdGhpcywgbmFycm93
UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gYnVmZmVy
OworICAgIHJldHVybiBhZG9wdENGKFttX3ZpZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhlbEJ1ZmZl
ckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsKIH0KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2
YWlsYWJsZUZyYW1lKCkKQEAgLTIyNjksNDMgKzIyMDMsNiBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAg
IHJldHVybiBbbV92aWRlb091dHB1dCBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2
UGxheWVySXRlbSBjdXJyZW50VGltZV1dOwogfQogCi1zdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbykKLXsKLSAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5m
byk7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4
ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLSAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VB
ZGRyZXNzKHBpeGVsQnVmZmVyKTsKLX0KLQotc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVh
c2VCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqKQotewotICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVm
PihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIs
IGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxC
dWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwot
ICAgIENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlcikKLXsKLSAgICAvLyBwaXhlbEJ1ZmZlciB3aWxsIGJlIG9mIHR5cGUga0NWUGl4ZWxGb3Jt
YXRUeXBlXzMyQkdSQS4KLSAgICBBU1NFUlQoQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShwaXhlbEJ1ZmZlcikgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSk7Ci0KLSAgICBzaXpl
X3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwotICAgIHNpemVf
dCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKLSAgICBzaXpl
X3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3cocGl4ZWxCdWZmZXIp
OwotICAgIHNpemVfdCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKHBpeGVs
QnVmZmVyKTsKLSAgICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRl
cjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZpcnN0OwotCi0gICAgQ0ZSZXRhaW4ocGl4ZWxCdWZm
ZXIpOyAvLyBCYWxhbmNlZCBieSBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBw
cm92aWRlckNhbGxiYWNrcy4KLSAgICBDR0RhdGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92
aWRlckNhbGxiYWNrcyA9IHsgMCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ss
IENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZl
clJlbGVhc2VJbmZvQ2FsbGJhY2sgfTsKLSAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+
IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZURpcmVjdChwaXhlbEJ1ZmZl
ciwgYnl0ZUxlbmd0aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7Ci0KLSAgICByZXR1cm4gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNv
bG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIE5VTEwsIGZhbHNlLCBr
Q0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIHsKICAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcigpOwpAQCAtMjMx
Myw4ICsyMjEwLDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
dXBkYXRlTGFzdEltYWdlKCkKICAgICAvLyBDYWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVt
VGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1heSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZm
ZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3RlZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmll
dmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8g
c2hvdWxkIGJlIGRpc3BsYXllZC4KLSAgICBpZiAocGl4ZWxCdWZmZXIpCi0gICAgICAgIG1fbGFz
dEltYWdlID0gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOwor
ICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9waXhl
bEJ1ZmZlckNvbmZvcm1lcikgeworICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBA
eyAoTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChrQ1ZQaXhl
bEZvcm1hdFR5cGVfMzJCR1JBKSB9OworICAgICAgICBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPigoQ0ZEaWN0aW9uYXJ5UmVm
KWF0dHJpYnV0ZXMpOworICAgIH0KKworI2lmICFMT0dfRElTQUJMRUQKKyAgICBkb3VibGUgc3Rh
cnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyNlbmRpZgorCisgICAgbV9sYXN0
SW1hZ2UgPSBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlci5nZXQoKSk7CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIGR1
cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1h
Z2UoJXApIC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1ByZWNpc2lv
blRvRmxvYXQoZHVyYXRpb24pKTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBvdXRwdXRSZWN0KQpAQCAtMjM5MiwxMTAgKzIzMDUs
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RP
cGVuR0xJbWFnZSgpCiAgICAgbV9sYXN0T3BlbkdMSW1hZ2UgPSBhZG9wdENGKFttX29wZW5HTFZp
ZGVvT3V0cHV0IGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0ZW1UaW1l
Rm9yRGlzcGxheTpuaWxdKTsKIH0KIAotI2lmICFMT0dfRElTQUJMRUQKLQotI2RlZmluZSBTVFJJ
TkdJRllfUEFJUihlKSBlLCAjZQotc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFy
Kj4mIGVudW1Ub1N0cmluZ01hcCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6
bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4+IG1hcDsKLSAgICBpZiAobWFwLmdldCgpLmVtcHR5
KCkpIHsKLSAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1IxNkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUjMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRzgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkcxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVO
VDMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBU
SDI0X1NURU5DSUw4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX0RFUFRIMzJGX1NURU5DSUw4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX0xVTUlOQU5DRV9BTFBIQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkVEKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHX0lOVEVHRVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfREVQVEhfU1RFTkNJTCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9VTlNJR05FRF9CWVRFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRf
NV81XzVfMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9C
WVRFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZf
RkxPQVQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxP
QVQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfU0hPUlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
U0hPUlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfSU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0lOVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJ
R05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzI0XzgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7
Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JFRF9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQl9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0I1NjUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SMTFGX0cxMUZfQjEwRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I5X0U1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2RikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQjhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjE2VUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkE4X1NOT1JNKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQkExNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCQTMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JBOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkE4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0IxMF9BMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkExNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkExNkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBMzJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0I1X0ExKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QkFfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9ERVBUSF9DT01QT05FTlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsK
LSNlbmRpZgotICAgIH0KLSAgICByZXR1cm4gbWFwLmdldCgpOwotfQotCi0jZW5kaWYgLy8gIUxP
R19ESVNBQkxFRAotCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQs
IEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkKIHsKICAg
ICBpZiAoZmxpcFkgfHwgcHJlbXVsdGlwbHlBbHBoYSkKQEAgLTI1MTEsOTUgKzIzMjAsMjEgQEAg
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGgKICAgICBpZiAoIW1fbGFzdE9wZW5HTEltYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1fb3BlbkdMVGV4dHVyZUNhY2hlKSB7Ci0j
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIGNhY2hl
ID0gbnVsbHB0cjsKLSAgICAgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQtPnBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwgJmNhY2hlKTsKLSNlbHNlCi0gICAgICAgIENW
T3BlbkdMVGV4dHVyZUNhY2hlUmVmIGNhY2hlID0gbnVsbHB0cjsKLSAgICAgICAgQ1ZSZXR1cm4g
ZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBu
dWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIENHTEdldFBpeGVs
Rm9ybWF0KGNvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZj
YWNoZSk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGVycm9yICE9IGtDVlJldHVyblN1Y2Nlc3MpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1fb3BlbkdMVGV4dHVyZUNhY2hlID0g
YWRvcHRDRihjYWNoZSk7Ci0gICAgfQotCiAgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZl
ckdldFdpZHRoKG1fbGFzdE9wZW5HTEltYWdlLmdldCgpKTsKICAgICBzaXplX3QgaGVpZ2h0ID0g
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAKLSNpZiBQ
TEFURk9STShJT1MpCi0gICAgQ1ZPcGVuR0xFU1RleHR1cmVSZWYgYmFyZVZpZGVvVGV4dHVyZSA9
IG51bGxwdHI7Ci0gICAgaWYgKGtDVlJldHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xFU1RleHR1cmVD
YWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xU
ZXh0dXJlQ2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCBvdXRw
dXRUYXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGxl
dmVsLCAmYmFyZVZpZGVvVGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRh
aW5QdHI8Q1ZPcGVuR0xFU1RleHR1cmVSZWY+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZp
ZGVvVGV4dHVyZSk7Ci0gICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZP
cGVuR0xFU1RleHR1cmVHZXROYW1lKHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0gICAgR0MzRGVudW0g
dmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0
dXJlLmdldCgpKTsKLSNlbHNlCi0gICAgQ1ZPcGVuR0xUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1
cmUgPSBudWxscHRyOwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMVGV4dHVy
ZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX29wZW5H
TFRleHR1cmVDYWNoZS5nZXQoKSwgbV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG51bGxwdHIsICZi
YXJlVmlkZW9UZXh0dXJlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFJldGFpblB0cjxD
Vk9wZW5HTFRleHR1cmVSZWY+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4dHVy
ZSk7Ci0gICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xUZXh0
dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVy
ZVRhcmdldCA9IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCh2aWRlb1RleHR1cmUuZ2V0KCkpOwot
I2VuZGlmCi0KLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewotICAgICAg
ICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChhdXRv
IGNhY2hlID0gd2Vha1RoaXMtPm1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpKQotI2lmIFBMQVRG
T1JNKElPUykKLSAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaChjYWNoZSwg
MCk7Ci0jZWxzZQotICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaChjYWNoZSwg
MCk7Ci0jZW5kaWYKLSAgICB9KTsKLQotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSglcCkg
LSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwgdGhpcywgZW51bVRv
U3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVtmb3JtYXRdLCBl
bnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7Ci0KLSAgICAvLyBTYXZlIHRoZSBvcmlnaWFsIGJvdW5k
IHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmluZCB0aGVtIGFmdGVy
IGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCi0gICAgR0MzRGludCBib3VuZFRleHR1cmUgPSAw
OwotICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOwotICAgIGNvbnRleHQtPmdl
dEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQsICZib3VuZFRl
eHR1cmUpOwotICAgIGNvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpSRUFE
X0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZFJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAgICBjb250
ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUpOwot
ICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQs
IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNE
OjpMSU5FQVIpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3ND
b250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotCi0gICAgLy8gQ3JlYXRl
IGEgZnJhbWVidWZmZXIgb2JqZWN0IHRvIHJlcHJlc2VudCB0aGUgdmlkZW8gdGV4dHVyZSdzIG1l
bW9yeS4KLSAgICBQbGF0Zm9ybTNET2JqZWN0IHJlYWRGcmFtZWJ1ZmZlciA9IGNvbnRleHQtPmNy
ZWF0ZUZyYW1lYnVmZmVyKCk7Ci0KLSAgICAvLyBNYWtlIHRoYXQgZnJhbWVidWZmZXIgdGhlIHJl
YWQgc291cmNlIGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3aWxsIHJlYWQgdm94ZWxzLgot
ICAgIGNvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFN
RUJVRkZFUiwgcmVhZEZyYW1lYnVmZmVyKTsKLQotICAgIC8vIEFsbG9jYXRlIHVuaW5pdGlhbGl6
ZWQgbWVtb3J5IGZvciB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+YmluZFRleHR1
cmUob3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0
ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAgICBjb250ZXh0
LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdF
KTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNE
OjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1dFRh
cmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5
cGUsIG51bGxwdHIpOwotCi0gICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRoZSBm
cmFtZWJ1ZmZlci4KLSAgICBjb250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFwaGljc0Nv
bnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFD
SE1FTlQwLCB2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUsIGxldmVsKTsKLQot
ICAgIEdDM0RlbnVtIHN0YXR1cyA9IGNvbnRleHQtPmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIpOwotICAgIGlmIChzdGF0dXMgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICAvLyBDb3B5IHRleHR1cmUgZnJvbSB0aGUgcmVhZCBmcmFtZWJ1ZmZlciAoYW5k
IHRodXMgdGhlIHZpZGVvIHRleHR1cmUpIHRvIHRoZSBvdXRwdXQgdGV4dHVyZS4KLSAgICBjb250
ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwg
MCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisgICAgaWYgKCFtX3RleHR1cmVDYWNoZSkgeworICAg
ICAgICBtX3RleHR1cmVDYWNoZSA9IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoKmNvbnRleHQpOwor
ICAgICAgICBpZiAoIW1fdGV4dHVyZUNhY2hlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KIAotICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHRleHR1cmUgYW5kIGZyYW1lYnVm
ZmVyIGJpbmRpbmdzLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgYm91
bmRUZXh0dXJlKTsKLSAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0
M0Q6OlJFQURfRlJBTUVCVUZGRVIsIGJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKyAgICBSZXRhaW5Q
dHI8Q1ZPcGVuR0xUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBtX3RleHR1cmVDYWNoZS0+dGV4
dHVyZUZyb21JbWFnZShtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAKLSAgICAvLyBDbGVhbiB1
cCBhZnRlciBvdXJzZWx2ZXMuCi0gICAgY29udGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIocmVhZEZy
YW1lYnVmZmVyKTsKKyAgICBpZiAoIW1fdmlkZW9UZXh0dXJlQ29waWVyKQorICAgICAgICBtX3Zp
ZGVvVGV4dHVyZUNvcGllciA9IHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9UZXh0dXJlQ29waWVyQ1Y+
KCpjb250ZXh0KTsKIAotICAgIHJldHVybiAhY29udGV4dC0+Z2V0RXJyb3IoKTsKKyAgICByZXR1
cm4gbV92aWRlb1RleHR1cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZSh2aWRlb1RleHR1cmUuZ2V0KCksIHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUsIG91dHB1
dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5
QWxwaGEsIGZsaXBZKTsKIH0KIAogUGFzc05hdGl2ZUltYWdlUHRyIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2ExZTBhYTJjYmIzN2IwNTljZDI4YmJlMzZk
M2IwODQ5Njc1ZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKQEAgLTAsMCArMSw5MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbmNsdWRl
ICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKworU09G
VF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChWaWRlb1Rvb2xib3gpCitTT0ZUX0xJTksoVmlkZW9U
b29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ3JlYXRlV2l0aEF0dHJpYnV0ZXMsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRl
cywgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiogY29uZm9ybWVyT3V0KSwgKGFsbG9jYXRvciwg
YXR0cmlidXRlcywgY29uZm9ybWVyT3V0KSk7CitTT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBp
eGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3JtYW50UGl4ZWxCdWZmZXIsIEJvb2xlYW4sIChWVFBp
eGVsQnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciwgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhCdWYp
LCAoY29uZm9ybWVyLCBwaXhCdWYpKQorU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1
ZmZlckNvbmZvcm1lckNvcHlDb25mb3JtZWRQaXhlbEJ1ZmZlciwgT1NTdGF0dXMsIChWVFBpeGVs
QnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciwgQ1ZQaXhlbEJ1ZmZlclJlZiBzb3VyY2VCdWZm
ZXIsIEJvb2xlYW4gZW5zdXJlTW9kaWZpYWJsZSwgQ1ZQaXhlbEJ1ZmZlclJlZiogY29uZm9ybWVk
QnVmZmVyT3V0KSwgKGNvbmZvcm1lciwgc291cmNlQnVmZmVyLCBlbnN1cmVNb2RpZmlhYmxlLCBj
b25mb3JtZWRCdWZmZXJPdXQpKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJp
YnV0ZXMpCit7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIgPSAwOwor
ICAgIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVXaXRoQXR0cmlidXRlcyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBhdHRyaWJ1dGVzLCAmY29uZm9ybWVyKTsKKyAgICBtX3BpeGVsQ29uZm9ybWVy
ID0gYWRvcHRDRihjb25mb3JtZXIpOworfQorCitzdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1
ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7
CisgICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxC
dWZmZXJMb2NrX1JlYWRPbmx5KTsKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRy
ZXNzKHBpeGVsQnVmZmVyKTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VC
eXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqKQoreworICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihp
bmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtD
VlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7Cit9CisKK3N0YXRpYyB2b2lkIENWUGl4ZWxCdWZm
ZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZvaWQqIGluZm8pCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAg
IENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7Cit9CisKK1JldGFpblB0cjxDR0ltYWdlUmVmPiBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVm
ZmVyUmVmIHJhd0J1ZmZlcikKK3sKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVm
ZmVyIHsgcmF3QnVmZmVyIH07CisgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdp
ZHRoKGJ1ZmZlci5nZXQoKSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRI
ZWlnaHQoYnVmZmVyLmdldCgpKTsKKworICAgIGlmICghVlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklz
Q29uZm9ybWFudFBpeGVsQnVmZmVyKG1fcGl4ZWxDb25mb3JtZXIuZ2V0KCksIGJ1ZmZlci5nZXQo
KSkpIHsKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXIgPSBudWxscHRyOwor
ICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZv
cm1lZFBpeGVsQnVmZmVyKG1fcGl4ZWxDb25mb3JtZXIuZ2V0KCksIGJ1ZmZlci5nZXQoKSwgZmFs
c2UsICZvdXRwdXRCdWZmZXIpOworICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFvdXRw
dXRCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYnVmZmVyID0g
YWRvcHRDRihvdXRwdXRCdWZmZXIpOworICAgIH0KKworICAgIENHQml0bWFwSW5mbyBiaXRtYXBJ
bmZvID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhRmlyc3Q7Cisg
ICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KGJ1ZmZl
ci5nZXQoKSk7CisgICAgc2l6ZV90IGJ5dGVMZW5ndGggPSBDVlBpeGVsQnVmZmVyR2V0RGF0YVNp
emUoYnVmZmVyLmdldCgpKTsKKworICAgIENGUmV0YWluKGJ1ZmZlci5nZXQoKSk7IC8vIEJhbGFu
Y2VkIGJ5IENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIGluIHByb3ZpZGVyQ2FsbGJh
Y2tzLgorICAgIENHRGF0YVByb3ZpZGVyRGlyZWN0Q2FsbGJhY2tzIHByb3ZpZGVyQ2FsbGJhY2tz
ID0geyAwLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjaywgQ1ZQaXhlbEJ1ZmZl
clJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrLCAwLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9D
YWxsYmFjayB9OworICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBh
ZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlRGlyZWN0KGJ1ZmZlci5nZXQoKSwgYnl0ZUxlbmd0
aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7CisKKyAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3Jl
YXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3BhY2VSZWYo
KSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIG51bGxwdHIsIGZhbHNlLCBrQ0dSZW5kZXJp
bmdJbnRlbnREZWZhdWx0KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MjY1MmRkN2IyOWIwMmU1MjUyYjQ2YWJjYWIzMzVjNzQyMjUxMzhlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gKKwor
I2lmIFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5
cGVkZWYgc3RydWN0IE9wYXF1ZVZUUGl4ZWxCdWZmZXJDb25mb3JtZXIqIFZUUGl4ZWxCdWZmZXJD
b25mb3JtZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0ltYWdlUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHsKK3B1YmxpYzoKKyAgICBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKTsKKyAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZl
clJlZik7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJS
ZWY+IG1fcGl4ZWxDb25mb3JtZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBVU0UoVklERU9UT09M
Qk9YKQorCisjZW5kaWYgLy8gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMWNlNTAyYTVhYmQ3YWY4ZjJhODViM2E2NzNlZGMxNGNkMDVmMTFlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hl
Q1YuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlQ2FjaGVD
Vl9oCisjZGVmaW5lIFRleHR1cmVDYWNoZUNWX2gKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwordHlw
ZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENWSW1h
Z2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVm
IENWT3BlbkdMRVNUZXh0dXJlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTFRleHR1cmVD
YWNoZSAqQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWT3BlbkdM
RVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWY7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CisKK2NsYXNzIFRleHR1cmVDYWNo
ZUNWIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNW
PiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0
eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7CisgICAg
dHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisgICAgdHlw
ZWRlZiBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBl
ZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbmRpZgorCisgICAgVGV4dHVy
ZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmLCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4m
Jik7CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHRleHR1cmVGcm9tSW1hZ2UoQ1ZJbWFn
ZUJ1ZmZlclJlZik7CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQoKSB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+
IG1fY29udGV4dDsKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gbV9jYWNoZTsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxUZXh0dXJlQ2FjaGVDVj4gbV93ZWFrUHRyRmFjdG9yeTsKK307CisK
K30KKworI2VuZGlmIC8vIFRleHR1cmVDYWNoZUNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk3
NGUxNGUyODI4NGUzNGEzY2ZkM2NmM2RlODY0MjQwMmVlNjFhYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCkBA
IC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRleHR1cmVDYWNoZUNWLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgor
CisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCit7CisgICAgVGV4dHVyZUNhY2hlVHlwZSBjYWNo
ZSA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIENWUmV0dXJuIGVycm9yID0gQ1ZP
cGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBj
b250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwgJmNhY2hlKTsKKyNl
bHNlCisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkpLCBudWxscHRyLCAmY2FjaGUpOworI2VuZGlmCisgICAgaWYgKGVycm9yICE9IGtDVlJldHVy
blN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgUmV0YWluUHRyPFRleHR1
cmVDYWNoZVR5cGU+IHN0cm9uZ0NhY2hlID0gYWRvcHRDRihjYWNoZSk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8VGV4dHVyZUNhY2hlQ1Y+KGNvbnRleHQsIFdURk1vdmUoc3Ryb25nQ2Fj
aGUpKTsKK30KKworVGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKEdyYXBoaWNzQ29udGV4
dDNEJiBjb250ZXh0LCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4mJiBjYWNoZSkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9jYWNoZShjYWNoZSkKKyAgICAsIG1fd2Vha1B0
ckZhY3RvcnkodGhpcykKK3sKK30KKworUmV0YWluUHRyPFRleHR1cmVDYWNoZUNWOjpUZXh0dXJl
VHlwZT4gVGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2UoQ1ZJbWFnZUJ1ZmZlclJlZiBp
bWFnZSkKK3sKKyAgICBUZXh0dXJlVHlwZSBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlKTsKKyAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFn
ZSk7CisgICAgaWYgKGtDVlJldHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNy
ZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5nZXQoKSwg
aW1hZ2UsIG51bGxwdHIsIG91dHB1dFRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIGZvcm1hdCwgdHlwZSwgbGV2ZWwsICZiYXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisjZWxzZQorICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdM
VGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBt
X2NhY2hlLmdldCgpLCBpbWFnZSwgbnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1cmUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4gdmlk
ZW9UZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKKworICAgIGF1dG8gd2Vha1Ro
aXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKKyAgICAgICAgaWYgKGF1
dG8gY2FjaGUgPSB3ZWFrVGhpcy0+bV9jYWNoZS5nZXQoKSkKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOworI2Vsc2UK
KyAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOworI2VuZGlm
CisgICAgfSk7CisKKyAgICByZXR1cm4gdmlkZW9UZXh0dXJlOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQxZWEzOWM4MTA3MDhkNWJjNTk0NjQwMTBmYmNlZjQ3
YmI1ZmNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtMCwwICsxLDIxMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9UZXh0dXJlQ29waWVy
Q1YuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDxPcGVuR0xFUy9FUzMvZ2xleHQu
aD4KKyNlbmRpZgorCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0dXJlQ29waWVyQ1Yo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAg
ICAsIG1fcmVhZEZyYW1lYnVmZmVyKGNvbnRleHQuY3JlYXRlRnJhbWVidWZmZXIoKSkKK3sKK30K
KworVmlkZW9UZXh0dXJlQ29waWVyQ1Y6On5WaWRlb1RleHR1cmVDb3BpZXJDVigpCit7CisgICAg
bV9jb250ZXh0LT5kZWxldGVGcmFtZWJ1ZmZlcihtX3JlYWRGcmFtZWJ1ZmZlcik7Cit9CisKKyNp
ZiAhTE9HX0RJU0FCTEVECisKKyNkZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkgZSwgI2UKK3N0YXRp
YyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVtVG9TdHJpbmdNYXAoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+
PiBtYXA7CisgICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7CisgICAgICAgIHN0ZDo6bWFwPHVp
bnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1IxNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUjMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMlVJKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4KSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1NSR0I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NS
R0I4X0FMUEhBOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxMF9BMikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9E
RVBUSF9DT01QT05FTlQxNikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDMyRl9TVEVOQ0lMOCkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19JTlRFR0VSKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX1NURU5DSUwpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfQllURSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9T
SE9SVF81XzZfNSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVCkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lO
VF8yNF84KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZM
T0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRURfSU5URUdFUikpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JfSU5URUdFUikp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhfU05PUk0p
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNTY1KSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhfU05PUk0p
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjExRl9HMTFG
X0IxMEYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
OV9FNSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0Ix
NkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJG
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4SSkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNlVJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2SSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMlVJKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMySSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOF9TTk9STSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZGKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkYpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThVSSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOEkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJVSSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZVSSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZJKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVHRVIpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8xMEZf
MTFGXzExRl9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7CisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJu
IG1hcC5nZXQoKTsKK30KKworI2VuZGlmCisKK2Jvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlVHlwZSBpbnB1dFRleHR1cmUs
IHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVy
bmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSkKK3sKKyAgICBpZiAoZmxpcFkgfHwgcHJlbXVsdGlwbHlBbHBo
YSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpbnB1dFRleHR1cmUpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUoaW5wdXRUZXh0
dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTEVTVGV4dHVy
ZUdldFRhcmdldChpbnB1dFRleHR1cmUpOworI2Vsc2UKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHZp
ZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTFRleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7Cisg
ICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0
KGlucHV0VGV4dHVyZSk7CisjZW5kaWYKKworICAgIExPRyhNZWRpYSwgIlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJuYWxG
b3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01hcCgp
W2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3RyaW5n
TWFwKClbdHlwZV0pOworCisgICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJlICYg
ZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5nIHRo
ZSB2aWRlbyB0ZXh0dXJlLgorICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKKyAgICBHQzNE
aW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKKyAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQsICZib3VuZFRleHR1cmUpOwor
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVC
VUZGRVJfQklORElORywgJmJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKworICAgIG1fY29udGV4dC0+
YmluZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKKyAgICBt
X2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpM
SU5FQVIpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0Nv
bnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9X
UkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKworICAgIC8vIE1ha2Ug
dGhhdCBmcmFtZWJ1ZmZlciB0aGUgcmVhZCBzb3VyY2UgZnJvbSB3aGljaCBkcmF3aW5nIGNvbW1h
bmRzIHdpbGwgcmVhZCB2b3hlbHMuCisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIG1fcmVhZEZyYW1lYnVmZmVyKTsKKwor
ICAgIC8vIEFsbG9jYXRlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZvciB0aGUgb3V0cHV0IHRleHR1
cmUuCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRleHR1
cmUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Ms
IEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRleFBh
cmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAg
IG1fY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxscHRyKTsKKworICAg
IC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZmZXIuCisgICAgbV9j
b250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFN
RUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwLCB2aWRlb1RleHR1
cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUsIGxldmVsKTsKKworICAgIEdDM0RlbnVtIHN0YXR1
cyA9IG1fY29udGV4dC0+Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRleHQzRDo6
UkVBRF9GUkFNRUJVRkZFUik7CisgICAgaWYgKHN0YXR1cyAhPSBHcmFwaGljc0NvbnRleHQzRDo6
RlJBTUVCVUZGRVJfQ09NUExFVEUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIENv
cHkgdGV4dHVyZSBmcm9tIHRoZSByZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1cyB0aGUgdmlkZW8g
dGV4dHVyZSkgdG8gdGhlIG91dHB1dCB0ZXh0dXJlLgorICAgIG1fY29udGV4dC0+Y29weVRleElt
YWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQsIDApOworCisgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgdGV4dHVyZSBhbmQgZnJh
bWVidWZmZXIgYmluZGluZ3MuCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJn
ZXQsIGJvdW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhp
Y3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIGJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKwor
ICAgIHJldHVybiAhbV9jb250ZXh0LT5nZXRFcnJvcigpOworfQorCisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNW
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3Bp
ZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI1ZjUxMmY4OWFjYzQ1ZmE1Y2M0ZDZiN2JjM2UwZjhlY2UzMmQ5
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb1RleHR1cmVDb3BpZXJDVi5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKKyNkZWZpbmUgVmlkZW9UZXh0dXJlQ29waWVy
Q1ZfaAorCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQzRC5oIgorCit0eXBlZGVmIHN0cnVjdCAg
X19DVkJ1ZmZlciogQ1ZJbWFnZUJ1ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBD
Vk9wZW5HTFRleHR1cmVSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1Rl
eHR1cmVSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9UZXh0dXJlQ29w
aWVyQ1YgeworcHVibGljOgorICAgIFZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNzQ29udGV4
dDNEJik7CisgICAgflZpZGVvVGV4dHVyZUNvcGllckNWKCk7CisKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisg
ICAgdHlwZWRlZiBDVk9wZW5HTFRleHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZW5kaWYKKworICAg
IGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVUeXBlLCBzaXpl
X3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwg
R0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wgZmxpcFkpOworCisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQoKSB7IHJl
dHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWY8R3JhcGhpY3NDb250
ZXh0M0Q+IG1fY29udGV4dDsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IG1fcmVhZEZyYW1lYnVmZmVy
OworfTsKKworfQorCisjZW5kaWYgLy8gVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJl
U291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDA3NzgzNWQ1ZTIxMjllZTllZWZmOGQ0MGExZDQ1MDcx
OTg0YWM1NjEuLjk3Njg0ZjI3ZDRkNjE0NDA1ZWNmNmY3MGU5N2Q3MzU3NzBjMjE4ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUyLDcgKzUyLDYgQEAgdHlwZWRlZiBBVkNh
cHR1cmVWaWRlb0RhdGFPdXRwdXQgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0VHlwZTsKIHR5cGVk
ZWYgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXIgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXJU
eXBlOwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKLVNPRlRf
TElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZVZpZGVvKQogCiBTT0ZUX0xJTktfQ0xBU1MoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtODEsMTcgKzgwLDYgQEAgU09GVF9MSU5LX1BPSU5U
RVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93LCBOU1N0cmluZyAqKQog
I2RlZmluZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MzUyeDI4OCBnZXRBVkNhcHR1cmVTZXNzaW9u
UHJlc2V0MzUyeDI4OCgpCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3cgZ2V0QVZD
YXB0dXJlU2Vzc2lvblByZXNldExvdygpCiAKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJHZXRXaWR0aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChw
aXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0
LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkK
LVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCos
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZp
ZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxv
Y2tGbGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFk
ZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25G
bGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLVNPRlRfTElOS19Q
T0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIE5TU3Ry
aW5nICopCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBS
ZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
QVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271949</attachid>
            <date>2016-02-22 13:21:09 -0800</date>
            <delta_ts>2016-02-22 13:39:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154544-20160222132051.patch</filename>
            <type>text/plain</type>
            <size>88265</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uN2M5Y2QyY2MzOTVlNTBlOWIyOWY0OTYzMjE0ODQ3
MzVlODY3ZGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9y
ZGVyIGZvciBjb21tb24gQ29yZVZpZGVvIGNvZGUgcGF0aHMgdG8gYmUgcmUtdXNlZCBpbiBvdGhl
ciBjbGFzc2VzLCBwdWxsIHRob3NlIHBhdGhzCisgICAgICAgIG91dCBvZiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIGFuZCBpbnRvIHJlLXVzYWJsZSBjbGFzZXNzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRM
aW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExp
bmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4
ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjplbnVtVG9TdHJpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YpOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVy
ZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjp+Vmlk
ZW9UZXh0dXJlQ29waWVyQ1YpOgorICAgICAgICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbTogTW92ZSBTT0ZUX0xJTksgZGVjbGFyYXRpb25zIGludG8g
Q29yZVZpZGVvU29mdExpbmsuaC9jcHAuCisKIDIwMTYtMDItMjIgIEtvbnN0YW50aW4gVG9rYXJl
diAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gTW92ZWQgbGlicmFyeSBz
ZXR1cCBjb2RlIHRvIFdFQktJVF9GUkFNRVdPUksgbWFjcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjZhNjE0ZTI5ZjYzOWRi
MjExYjM4NDgyYTczZDczYmJmYjI3MWE5NS4uOGY4ZTFiMWQwODcxNTRkMDhjZjY2ODczMDNmZTNm
NTUwNmFmZjA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNjA2Niw2ICs2MDY2LDEwIEBACiAJCUNENjQxRUI0MTgxOEY1RUQw
MEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNl
QnVmZmVyUHJpdmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVk
aWFUaW1lQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5k
YXRpb24uY3BwICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1l
QVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgg
Ki87IH07CisJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
N0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsg
fTsKKwkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQy
MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CisJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAw
NDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OworCQlDRDdEMzM0ODFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlk
ZW9Tb2Z0TGluay5oICovOyB9OwogCQlDRDdEQkIyODE4Q0ExOUE0MDBDMTEwNjYgLyogQ1NTR3Jp
ZExpbmVOYW1lc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEN0RCQjI2MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFs
dWUuY3BwICovOyB9OwogCQlDRDdEQkIyOTE4Q0ExOUM2MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVO
YW1lc1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDdEQkIyNzE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmggKi87
IH07CiAJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdF
MDUyMTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9
OwpAQCAtNjA4Miw2ICs2MDg2LDEwIEBACiAJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBW
aWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEOEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFT
b3VyY2UuaCAqLzsgfTsKIAkJQ0Q4QjVBNDkxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVkaWFTb3VyY2UuaCAqLzsg
fTsKIAkJQ0Q4QjVBNEMxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNEIx
ODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDlE
ODI3NTFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYg
LyogVGV4dHVyZUNhY2hlQ1YubW0gKi87IH07CisJCUNEOUQ4Mjc2MUM3QUU1MzUwMDZGRjA2NiAv
KiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi87
IH07CisJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3
NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwICovOyB9OworCQlD
RDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUQ4Mjc4MUM3QjhFRTEw
MDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oICovOyB9OwogCQlDRDlERTE3NDE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRp
YVNvdXJjZS5jcHAgKi87IH07CiAJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDlERTE3MzE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDlE
RTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZE
IC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLzsgfTsKQEAgLTE0MDE5LDYgKzE0MDI3LDEwIEBACiAJ
CUNENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1l
ZGlhU2FtcGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBwYXRoID0gLi4vY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQyMUM3QTEyM0YwMDA0
MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3RDMzNDUx
QzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvcmVWaWRlb1NvZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3RDMzNDYxQzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1Nv
ZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVWaWRlb1NvZnRM
aW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0RCQjI2MThDQTExRkYwMEMx
MTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NHcmlkTGluZU5h
bWVzVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3RTA1MjAxNjUxQTg0
MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE0MDM5LDYgKzE0MDUxLDEwIEBACiAJCUNEOEI1QTQ4MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0
VHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
VHJhY2tNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0
QTE4MEUxN0EzMDA4QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRp
b1RyYWNrTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhC
NUE0QjE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVy
ZUNhY2hlQ1YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0
dXJlQ2FjaGVDVi5tbTsgcGF0aCA9IC4uL2N2L1RleHR1cmVDYWNoZUNWLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNh
Y2hlQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dHVyZUNhY2hlQ1Yu
aDsgcGF0aCA9IC4uL2N2L1RleHR1cmVDYWNoZUNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEOUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb1RleHR1cmVDb3Bp
ZXJDVi5jcHA7IHBhdGggPSAuLi9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpT
TWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTczMTdB
QUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q5REUxNzYxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5OTgwLDYgKzE5OTk2LDggQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTE0MDkwRkExQUE1MUUxRDAwOTExOTFBIC8qIENv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tICovLAorCQkJCUNEN0QzMzQ1MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8sCisJCQkJQ0Q3RDMzNDYxQzdB
MTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggKi8sCiAJCQkJN0M3OTQxRTIxQzU2
QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi8sCiAJCQkJN0M3
OTQxRTMxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLywK
IAkJCQk1RDhDNERCRDE0MjgyMjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlzYWJsZXJDb2Nv
YS5jcHAgKi8sCkBAIC0yMTg0Nyw2ICsyMTg2NSw3IEBACiAJCQkJMDc2RjBEMDgxMkI4MTkyNzAw
QzI2QUE0IC8qIGF2Zm91bmRhdGlvbiAqLywKIAkJCQk0OTlCM0VDMDEyOENDQzE4MDBFNzI2QzIg
LyogY2EgKi8sCiAJCQkJQjI3NTM1MjkwQjA1MzgxNDAwMkNFNjRGIC8qIGNnICovLAorCQkJCUNE
OUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAqLywKIAkJCQlCNTMyMEQ2ODEyMkEyNEU5MDAy
RDE0NDAgLyogY29jb2EgKi8sCiAJCQkJOTMzMkFCM0IxNjUxNUQ3NzAwRDgyN0VDIC8qIGNwdSAq
LywKIAkJCQkwRkU1RkJDOTFDM0RENTA2MDAwN0EyQ0EgLyogZGlzcGxheWxpc3RzICovLApAQCAt
MjMwNTUsNiArMjMwNzQsMjAgQEAKIAkJCXBhdGggPSBtZWRpYWNvbnRyb2xzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q5RDgyN0MxQzdCQjJFRDAwNkZGMDY2IC8qIGN2
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDdEMzM0
MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8sCisJCQkJ
Q0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywK
KwkJCQlDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YuaCAqLywKKwkJ
CQlDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gKi8sCisJCQkJ
Q0Q5RDgyNzcxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLywK
KwkJCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAq
LywKKwkJCSk7CisJCQluYW1lID0gY3Y7CisJCQlwYXRoID0gY2c7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQlDREE5OERCRDE2MDE0RTA4MDBGRUEzQjEgLyogZW5jcnlwdGVk
bWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjUx
OTQsNiArMjUyMjcsNyBAQAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3NTE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9u
Q3J5cHRvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzkzRjM0QTFBQTZCQTVFMDBB
OThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlD
RDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTM3QzIzNjExMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QkE1MDkwMUJDRkJEOTUwMEUzNEVGNyAvKiBD
b21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRGQTE4
NTFCQ0E2QjVBMDA5MUI2RUYgLyogQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICov
LApAQCAtMjY5NzcsNiArMjcwMTEsNyBAQAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAv
KiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYw
MDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0
QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc2MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhw
cmVzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDNzgwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3QTBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY5Myw2ICsy
NzcyOCw3IEBACiAJCQkJMDc4RTA5MkExN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2Vy
aWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NDUxN0QxNkUxQzAwNDIwQUEx
IC8qIFJUQ1N0YXRzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5RDgyNzYxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDky
QzE3RDE0RDFDMDA0MjBBQTEgLyogUlRDU3RhdHNSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc4RTA5NDYxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2VCYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1RTJDNDM2ODFCQ0VFMzc3MDAwMUUyQkMgLyogUlRDVHJhY2tFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODIxNyw2ICsyODI1Myw3IEBACiAJCQkJN0NDNTY0Qjgx
OEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1l
bnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1
IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAv
KiBDb3JlVmlkZW9Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAy
NzAwOTBENzgxIC8qIFRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIw
MDU2RTU4MSAvKiBUZXh0QWZmaW5pdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREI1MTU4
NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkzNzksNiArMjk0MTYsNyBAQAogCQkJCTk3Mzg4OUEwMTE2RUE5REMwMEFERjMxMyAv
KiBEb2N1bWVudFdyaXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFBMzdBRTA5N0M3MTVG
MDAxOUYzRDggLyogRE9NLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEMEZCRDAwREJENjI1RTAw
QjJGNjMwIC8qIERPTUFic3RyYWN0Vmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEN0QzMzQz
MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxOTg0ODA5MUExRTZDQkYwMEExMzMxOCAvKiBET01BbmltYXRpb25FdmVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBOEY2QkMyMERCNTVDREMwMDFEQjc5NCAvKiBET01BcHBs
aWNhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RDM4OUIzMEE5OTFBN0YwMDI4
MjE0NSAvKiBET01BdHRyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yOTU1MSw2ICsyOTU4OSw3IEBA
CiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAwRTM5ODdDIC8qIERPTVdlYktpdENTU1ZpZXdwb3J0UnVs
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCThBMTk1OTMzMTQ3RUExNkUwMEQxRUE2MSAvKiBET01X
ZWJLaXROYW1lZEZsb3cubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q3RDMzNDcxQzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNDEyOTlCMUM2QzE2NzQwMDU5RTcxNCAvKiBKU0lEQkluZGV4Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01X
aGVlbEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdG
IC8qIERPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODMxLDYgKzI5ODcwLDcgQEAK
IAkJCQlBOEVBNzlGODBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTE1lbnVFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJCRThFMkM5MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJz
ZXRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURDMjcwQTE1MjA1NzAwQjEyQTY4
IC8qIEhUTUxNZXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlEODI3NTFDN0FF
NTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNDU0
NDI0QTExOUIzNjYxMDA5QkU5MTIgLyogSFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOENGRjdBOTBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTE1vZEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThERjNGRDUwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxOYW1lQ29s
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMjQ1LDYgKzMxMjg1LDcgQEAKIAkJCQlB
ODcxREZFNTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3
QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0Q5RDgyNzkxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4OUNDQzUyMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNl
Tm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwOTA5OUU2
NDkyMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTlDQzBCNTMxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheUNvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFT
b2Z0TGluay5jcHAKaW5kZXggMjhiOWE2YWZmOThmMTIxYzBlNGI1MTI3MGZlYTJlYWViNmQzOTFm
Yi4uM2YxMjNjNDU1MTMyZTUyM2YxZWIwZDdjMmVmMjBjNzU5MTgyZTg5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzUsMTAg
KzM1LDEyIEBAIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhl
U291cmNlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9p
ZCogZGVzdGluYXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5n
dGgsIGRlc3RpbmF0aW9uKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tC
dWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNp
b25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRE
YXRhQnVmZmVyLCBDTUJsb2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mbywgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBz
YW1wbGVJbmRleCwgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNh
bXBsZUluZGV4LCB0aW1pbmdJbmZvT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQ29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwg
KENNVGltZSB0aW1lKSwgKHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQz
Ml90IHRpbWVzY2FsZSksICh2YWx1ZSwgdGltZXNjYWxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRp
bWUsIChGbG9hdDY0IHNlY29uZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29u
ZHMsIHByZWZlcnJlZFRpbWVTY2FsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Yv
Q29yZU1lZGlhU29mdExpbmsuaAppbmRleCA4Nzk1YjViMDY4YjZkNjMwMmRhZDdhN2JmNzhhYTc1
MWU5MTEyOTEwLi5mZWQwOWUyZDI4MTJmMzBhMjUyYjJhNDk1YThkMWJlOWMwNmMzNDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKQEAgLTM5
LDEyICszOSwxNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3Jl
TWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaQogI2RlZmluZSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwg
Q01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlw
dGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25H
ZXRFeHRlbnNpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSkKKyNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxl
QnVmZmVyR2V0VHlwZUlECiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVm
ZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJbmRleCwgQ01TYW1w
bGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUluZGV4LCB0aW1pbmdJ
bmZvT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8KK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRp
bWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorI2RlZmlu
ZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFkZAogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90
LCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUg
Q01UaW1lQ29tcGFyZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQ29tcGFyZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRz
LCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2
ZWI3YWUzZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJH
ZXRXaWR0aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1
ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRl
c1BlclJvdywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1
ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlw
ZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
TG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIs
IENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVm
ZmVyVW5sb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JN
KElPUykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQg
ZWFnbENvbnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMs
IGVhZ2xDb250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVm
ZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdM
ZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVp
IGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBD
Vk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNo
ZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5H
TEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRl
eHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9u
cykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENW
T3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBp
bWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1Rl
eHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29t
cGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwg
Q1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNo
ZUF0dHJpYnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmog
Y2dsUGl4ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVz
LCBjZ2xDb250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hl
LCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRl
cywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNh
Y2hlLCBzb3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hl
Rmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0
aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRU
YXJnZXQsIEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4
dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBp
eGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYp
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVW
aWRlb1NvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9T
b2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFi
MmY0OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9D
b3JlVmlkZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IENvcmVWaWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5j
bHVkZSAiU29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisK
K1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1
ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBp
eGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCos
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dEJ5dGVzUGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBp
eGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwg
T1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0Zs
YWdzKSkKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5l
IGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxC
dWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVy
ZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0
aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZE
aWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVm
KiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRl
eHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJl
RnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1h
Z2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xp
bnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJl
UmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwg
dGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVG
bHVzaCwgdm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9w
dGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVH
ZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVW
aWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXks
IENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJP
Q29tcGF0aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3Bl
bkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBD
VlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hl
QXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBj
Z2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5H
TFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMs
IGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9w
ZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUs
IENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVz
LCBDVk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2Fj
aGUsIHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVG
bHVzaCwgdm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRp
b25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRh
cmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0
dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVm
KQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkgZ2V0X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGli
aWxpdHlLZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZi
ZTc2NC4uNTc5ZWU3ZTc2Y2FlYWQyMmI1ZDI0ZGVkODdhZDNjZGRmNWYxMDMyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJj
ZUxvYWRpbmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwog
dHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3Ry
dWN0IE9wYXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25S
ZWY7CiAjaWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwx
MSBAQCBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2Jq
QzsKIGNsYXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9U
ZXh0dXJlQ29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXI7CkBAIC0zNDUsMTYgKzM0NywxMyBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNo
X3NlbWFwaG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQ
bGF5ZXJJdGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRl
eHR1cmVDYWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVm
PiBtX29wZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0
dXJlQ2FjaGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4
dHVyZUNvcGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAogI2lmIFVTRShWSURFT1RP
T0xCT1gpCi0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxU
cmFuc2ZlclNlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXI7CiAjZW5kaWYKIAogI2lmIEhBVkUoQVZGT1VOREFU
SU9OX0xPQURFUl9ERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzM2VhYzFk
OTdjYTM4ZWJkZTc3MDA5NDRlYjkwYWZkZjI3YWI1ZDcuLjJhOTRhZTQ2ZjI2MDU2NTkyOGIwMTU3
YmFlMTk1YWFiOTM2NzUxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNiArNTMs
NyBAQAogI2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCIKICNpbXBvcnQgIk1lZGlh
U2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24u
aCIKKyNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3Jt
VGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5oIgogI2ltcG9ydCAiU2VjdXJp
dHlPcmlnaW4uaCIKQEAgLTYwLDcgKzYxLDkgQEAKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1w
b3J0ICJUZXh0RW5jb2RpbmcuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgi
CisjaW1wb3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgogI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCAi
VmlkZW9UZXh0dXJlQ29waWVyQ1YuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qy5oIgogI2ltcG9ydCAiV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJXZWJD
b3JlQ0FMYXllckV4dHJhcy5oIgpAQCAtMTA0LDE2ICsxMDcsMTMgQEAKICNpZiBVU0UoVklERU9U
T09MQk9YKQogI2ltcG9ydCA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogI2ltcG9ydCA8VmlkZW9U
b29sYm94L1ZpZGVvVG9vbGJveC5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNl
bmRpZgogCiAjaWYgVVNFKENGTkVUV09SSykKICNpbmNsdWRlICJDRk5TVVJMQ29ubmVjdGlvblNQ
SS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8T3BlbkdMRVMvRVMz
L2dsZXh0Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIHN0ZCB7CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
aXRlcmF0b3JfdHJhaXRzPEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0
aW9uQVZGT2JqQz4+OjppdGVyYXRvcj4gewogICAgIHR5cGVkZWYgUmVmUHRyPFdlYkNvcmU6Ok1l
ZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQz4gdmFsdWVfdHlwZTsKQEAgLTE0OSwyNSArMTQ5LDYg
QEAgdHlwZWRlZiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25U
eXBlOwogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRf
TElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZUltYWdlKQotU09GVF9MSU5LX0ZSQU1FV09SS19P
UFRJT05BTChDb3JlVmlkZW8pCi0KLSNpZiBVU0UoVklERU9UT09MQk9YKQotU09GVF9MSU5LX0ZS
QU1FV09SS19PUFRJT05BTChWaWRlb1Rvb2xib3gpCi0jZW5kaWYKLQotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAo
cGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VB
ZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBz
aXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNP
RlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIs
IGxvY2tGbGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFz
ZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRp
b25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLSNpZiBVU0Uo
VklERU9UT09MQk9YKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5zZmVyU2Vz
c2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIFZUUGl4ZWxU
cmFuc2ZlclNlc3Npb25SZWYgKnBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwg
cGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhl
bFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UsIE9TU3RhdHVzLCAoVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvblJlZiBzZXNzaW9uLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQ1ZQaXhl
bEJ1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciksIChzZXNzaW9uLCBzb3VyY2VCdWZmZXIsIGRl
c3RpbmF0aW9uQnVmZmVyKSkKLSNlbmRpZgogCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9u
LCBBVlBsYXllcikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbSkK
QEAgLTE5NSw3ICsxNzYsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9J
TlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QsIE5TU3Ry
aW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3RGaWxsLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3Vu
ZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQotU09GVF9MSU5L
X1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgTlNT
dHJpbmcgKikKIAogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVS
TEFzc2V0Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlNTdHJpbmcgKikKIApAQCAtMjIyLDcg
KzIwMiw2IEBAIFNPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldENsaWVudEJ1bmRsZUlkZW50aWZpZXJLZXksIE5TCiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dy
YXZpdHlSZXNpemVBc3BlY3QgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCgpCiAj
ZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIGdldEFWTGF5ZXJWaWRl
b0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsKCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJl
c2l6ZSBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplKCkKLSNkZWZpbmUga0NWUGl4ZWxCdWZm
ZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXko
KQogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogdHlwZWRl
ZiBBVk1lZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZTsKQEAgLTI5
MSwyNCArMjcwLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZVUkxBc3Nl
dEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUgZ2V0QVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVy
ZmFjZU5hbWUoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi1TT0ZUX0xJTksoQ29yZVZp
ZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29u
dGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9w
ZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmli
dXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFn
ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJl
Q2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRp
Y3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVy
bmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4
dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVB
dHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQs
IHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZP
cGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJl
ZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9w
dGlvbnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xF
U1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVv
LCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNT
dHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBh
dGliaWxpdHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGli
aWxpdHlLZXkoKQotI2Vsc2UKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNh
Y2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9u
YXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhl
bEZvcm1hdE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1
dGVzLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNo
ZUF0dHJpYnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRl
cywgY2FjaGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVD
cmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJl
UmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwg
YXR0cmlidXRlcywgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNh
Y2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNP
RlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZP
cGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
T3BlbkdMVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9T
dXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NW
UGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVs
QnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZW5kaWYKLQogU09G
VF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCiBTT0ZUX0xJTktfT1BUSU9OQUwoTWVkaWFU
b29sYm94LCBNVEVuYWJsZUNhcHRpb24yMDE1QmVoYXZpb3IsIEJvb2xlYW4sICgpLCAoKSkKIApA
QCAtMjIyMCwzOSArMjE4MSwxMiBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZQogICAgICAgICBj
cmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKIAotI2lmICFM
T0dfRElTQUJMRUQKLSAgICBkb3VibGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKTsKLSNlbmRpZgotCiAgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gW21fYXZQbGF5ZXJJdGVt
LmdldCgpIGN1cnJlbnRUaW1lXTsKIAogICAgIGlmICghW21fdmlkZW9PdXRwdXQuZ2V0KCkgaGFz
TmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZV0pCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciA9IGFkb3B0Q0YoW21f
dmlkZW9PdXRwdXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUg
aXRlbVRpbWVGb3JEaXNwbGF5Om5pbF0pOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1
cm4gMDsKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0gICAgLy8gQ3JlYXRlIGEgVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvbiwgaWYgbmVjZXNzYXJ5LCBhcyB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRpbWVs
eSBkZWxpdmVyeSBvZiBBUkdCIHBpeGVscy4KLSAgICBpZiAoIW1fcGl4ZWxUcmFuc2ZlclNlc3Np
b24pIHsKLSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNzaW9uID0gMDsKLSAg
ICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAm
c2Vzc2lvbik7Ci0gICAgICAgIG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24gPSBhZG9wdENGKHNlc3Np
b24pOwotICAgIH0KLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyOwotICAgIENW
UGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ1ZQaXhlbEJ1ZmZlckdldFdp
ZHRoKGJ1ZmZlci5nZXQoKSksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoYnVmZmVyLmdldCgpKSwg
a0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSwgMCwgJm91dHB1dEJ1ZmZlcik7Ci0gICAgVlRQaXhl
bFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV9waXhlbFRyYW5zZmVyU2Vzc2lvbi5nZXQo
KSwgYnVmZmVyLmdldCgpLCBvdXRwdXRCdWZmZXIpOwotICAgIGJ1ZmZlciA9IGFkb3B0Q0Yob3V0
cHV0QnVmZmVyKTsKLSNlbmRpZgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBkdXJh
dGlvbiA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7Ci0gICAgTE9HKE1l
ZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZm
ZXIoJXApIC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1ByZWNpc2lv
blRvRmxvYXQoZHVyYXRpb24pKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICBy
ZXR1cm4gYWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVt
VGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVG
cmFtZSgpCkBAIC0yMjY5LDQzICsyMjAzLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAgICByZXR1cm4g
W21fdmlkZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9hdlBsYXllckl0
ZW0gY3VycmVudFRpbWVdXTsKIH0KIAotc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAg
IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVy
TG9ja19SZWFkT25seSk7Ci0gICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhw
aXhlbEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBv
aW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKLXsKLSAgICBDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7
Ci0gICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhl
bEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwotfQotCi1zdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVs
ZWFzZUluZm9DYWxsYmFjayh2b2lkKiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDRlJl
bGVhc2UocGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNy
ZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCi17
Ci0gICAgLy8gcGl4ZWxCdWZmZXIgd2lsbCBiZSBvZiB0eXBlIGtDVlBpeGVsRm9ybWF0VHlwZV8z
MkJHUkEuCi0gICAgQVNTRVJUKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxC
dWZmZXIpID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpOwotCi0gICAgc2l6ZV90IHdpZHRo
ID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0
ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVz
UGVyUm93ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVsQnVmZmVyKTsKLSAgICBz
aXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShwaXhlbEJ1ZmZlcik7
Ci0gICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRs
ZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKLQotICAgIENGUmV0YWluKHBpeGVsQnVmZmVyKTsgLy8g
QmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJD
YWxsYmFja3MuCi0gICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxs
YmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNl
SW5mb0NhbGxiYWNrIH07Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRl
ciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QocGl4ZWxCdWZmZXIsIGJ5dGVM
ZW5ndGgsICZwcm92aWRlckNhbGxiYWNrcykpOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFn
ZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNl
UmVmKCksIGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBOVUxMLCBmYWxzZSwga0NHUmVuZGVy
aW5nSW50ZW50RGVmYXVsdCkpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZSgpCiB7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKQEAgLTIzMTMsOCArMjIx
MCwyNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxh
c3RJbWFnZSgpCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6aXRl
bVRpbWVGb3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUgcGl4ZWwgYnVmZmVyCiAgICAg
Ly8gZm9yIHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBiZWVuIHJldHJpZXZlZC4gSW4g
dGhpcyBjYXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55KQogICAgIC8vIHNob3VsZCBi
ZSBkaXNwbGF5ZWQuCi0gICAgaWYgKHBpeGVsQnVmZmVyKQotICAgICAgICBtX2xhc3RJbWFnZSA9
IGNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAo
IXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcGl4ZWxCdWZmZXJD
b25mb3JtZXIpIHsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKE5TU3Ry
aW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3JtYXRU
eXBlXzMyQkdSQSkgfTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1
dGVzKTsKKyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdlID0g
bV9waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxC
dWZmZXIuZ2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlvbiA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVwKSAt
IGNyZWF0aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0
KGR1cmF0aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA1LDYgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdMSW1h
Z2UoKQogICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091dHB1
dCBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3Bs
YXk6bmlsXSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZX1BB
SVIoZSkgZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVt
VG9TdHJpbmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50
MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7Ci0g
ICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1IzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVO
Q0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBU
SDMyRl9TVEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1J
TkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JFRCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19J
TlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RF
UFRIX1NURU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfVU5TSUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JU
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lO
VCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5U
XzJfMTBfMTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0jaWYg
UExBVEZPUk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRURfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JBOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkEzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCQThVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JBOEkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
MTBfQTJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JBMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JBMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QkEzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
QTMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
NV9BMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVH
RVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhf
Q09NUE9ORU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5kaWYK
LSAgICB9Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQKLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBsYXRm
b3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51
bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYgKGZs
aXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzIwLDIxIEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBMQVRG
T1JNKElPUykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxw
dHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5HTFRl
eHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0g
Q1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
Y29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChj
b250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOwot
I2VuZGlmCi0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0Q0Yo
Y2FjaGUpOwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0
aChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0o
SU9TKQotICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxscHRy
OwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVh
dGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNh
Y2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0
LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJh
cmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRyPENW
T3BlbkdMRVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1
cmUpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNU
ZXh0dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVvVGV4
dHVyZVRhcmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5nZXQo
KSk7Ci0jZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVs
bHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNy
ZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0dXJl
Q2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZpZGVv
VGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xU
ZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwotICAg
IFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5h
bWUodmlkZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQg
PSBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRpZgot
Ci0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYgKCF3
ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNoZSA9
IHdlYWtUaGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2Vs
c2UKLSAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2Vu
ZGlmCi0gICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJu
YWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01h
cCgpW2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3Ry
aW5nTWFwKClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJl
ICYgZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5n
IHRoZSB2aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAgICBH
QzNEaW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2Vy
dihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsK
LSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJV
RkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+Ymlu
ZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBjb250
ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFS
KTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNE
OjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdy
YXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZyYW1l
YnVmZmVyIG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnkuCi0g
ICAgUGxhdGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVGcmFt
ZWJ1ZmZlcigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJj
ZSBmcm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBjb250
ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIs
IHJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9y
eSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1
dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlO
X0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFy
YW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAg
Y29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBf
VE9fRURHRSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxs
cHRyKTsKLQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZm
ZXIuCi0gICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwg
dmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBHQzNE
ZW51bSBzdGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVzIHRo
ZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+Y29w
eVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdp
ZHRoLCBoZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAgbV90
ZXh0dXJlQ2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAg
aWYgKCFtX3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAK
LSAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5k
aW5ncy4KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVy
ZSk7Ci0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFE
X0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENWT3Bl
bkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVGcm9t
SW1hZ2UobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIg
b3Vyc2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1ZmZl
cik7CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1RleHR1
cmVDb3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29udGV4
dCk7CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1fdmlk
ZW9UZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlkZW9U
ZXh0dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBm
bGlwWSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhMWUwYWEyY2JiMzdiMDU5Y2QyOGJiZTM2ZDNiMDg0OTY3
NWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW5jbHVkZSAiU29mdExp
bmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoVmlkZW9Ub29sYm94KQorU09GVF9MSU5LKFZpZGVvVG9vbGJveCwg
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVzLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIFZUUGl4
ZWxCdWZmZXJDb25mb3JtZXJSZWYqIGNvbmZvcm1lck91dCksIChhbGxvY2F0b3IsIGF0dHJpYnV0
ZXMsIGNvbmZvcm1lck91dCkpOworU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZl
ckNvbmZvcm1lcklzQ29uZm9ybWFudFBpeGVsQnVmZmVyLCBCb29sZWFuLCAoVlRQaXhlbEJ1ZmZl
ckNvbmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZmZXJSZWYgcGl4QnVmKSwgKGNvbmZv
cm1lciwgcGl4QnVmKSkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25m
b3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIsIE9TU3RhdHVzLCAoVlRQaXhlbEJ1ZmZlckNv
bmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBCb29s
ZWFuIGVuc3VyZU1vZGlmaWFibGUsIENWUGl4ZWxCdWZmZXJSZWYqIGNvbmZvcm1lZEJ1ZmZlck91
dCksIChjb25mb3JtZXIsIHNvdXJjZUJ1ZmZlciwgZW5zdXJlTW9kaWZpYWJsZSwgY29uZm9ybWVk
QnVmZmVyT3V0KSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKQor
eworICAgIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyID0gMDsKKyAgICBWVFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgYXR0cmlidXRlcywgJmNvbmZvcm1lcik7CisgICAgbV9waXhlbENvbmZvcm1lciA9IGFkb3B0
Q0YoY29uZm9ybWVyKTsKK30KKworc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxCdWZmZXJHZXRC
eXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAgIENW
UGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9j
a19SZWFkT25seSk7CisgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhwaXhl
bEJ1ZmZlcik7Cit9CisKK3N0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50
ZXJDYWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKK3sKKyAgICBDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Cisg
ICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1
ZmZlckxvY2tfUmVhZE9ubHkpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFz
ZUluZm9DYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDRlJlbGVh
c2UocGl4ZWxCdWZmZXIpOworfQorCitSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVjo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBy
YXdCdWZmZXIpCit7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciB7IHJh
d0J1ZmZlciB9OworICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChidWZm
ZXIuZ2V0KCkpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KGJ1
ZmZlci5nZXQoKSk7CisKKyAgICBpZiAoIVZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1h
bnRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIuZ2V0KCkpKSB7Cisg
ICAgICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAg
T1NTdGF0dXMgc3RhdHVzID0gVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNvcHlDb25mb3JtZWRQaXhl
bEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIuZ2V0KCksIGZhbHNlLCAmb3V0
cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAhb3V0cHV0QnVmZmVy
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJ1ZmZlciA9IGFkb3B0Q0Yo
b3V0cHV0QnVmZmVyKTsKKyAgICB9CisKKyAgICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtD
R0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZpcnN0OworICAgIHNpemVf
dCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhidWZmZXIuZ2V0KCkp
OworICAgIHNpemVfdCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKGJ1ZmZl
ci5nZXQoKSk7CisKKyAgICBDRlJldGFpbihidWZmZXIuZ2V0KCkpOyAvLyBCYWxhbmNlZCBieSBD
VlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNhbGxiYWNrcy4KKyAg
ICBDR0RhdGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxiYWNrcyA9IHsgMCwg
Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxCdWZmZXJSZWxlYXNl
Qnl0ZVBvaW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sg
fTsKKyAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihD
R0RhdGFQcm92aWRlckNyZWF0ZURpcmVjdChidWZmZXIuZ2V0KCksIGJ5dGVMZW5ndGgsICZwcm92
aWRlckNhbGxiYWNrcykpOworCisgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSh3aWR0
aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCksIGJpdG1h
cEluZm8sIHByb3ZpZGVyLmdldCgpLCBudWxscHRyLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50ZW50
RGVmYXVsdCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI2
NTJkZDdiMjliMDJlNTI1MmI0NmFiY2FiMzM1Yzc0MjI1MTM4ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWX2gKKyNkZWZpbmUgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisKKyNpZiBVU0Uo
VklERU9UT09MQk9YKQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIHN0
cnVjdCBPcGFxdWVWVFBpeGVsQnVmZmVyQ29uZm9ybWVyKiBWVFBpeGVsQnVmZmVyQ29uZm9ybWVy
UmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSogQ0dJbWFnZVJlZjsKK3R5cGVkZWYgc3RydWN0
IF9fQ1ZCdWZmZXIgKkNWUGl4ZWxCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViB7CitwdWJsaWM6CisgICAgUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVihDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyk7CisgICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYpOwor
Citwcml2YXRlOgorICAgIFJldGFpblB0cjxWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmPiBtX3Bp
eGVsQ29uZm9ybWVyOworfTsKKworfQorCisjZW5kaWYgLy8gVVNFKFZJREVPVE9PTEJPWCkKKwor
I2VuZGlmIC8vIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFj
ZTUwMmE1YWJkN2FmOGYyYTg1YjNhNjczZWRjMTRjZDA1ZjExZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmgKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGV4dHVyZUNhY2hlQ1ZfaAorI2Rl
ZmluZSBUZXh0dXJlQ2FjaGVDVl9oCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK3R5cGVkZWYgc3Ry
dWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVy
UmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5H
TEVTVGV4dHVyZVJlZjsKK3R5cGVkZWYgc3RydWN0IF9fQ1ZPcGVuR0xUZXh0dXJlQ2FjaGUgKkNW
T3BlbkdMVGV4dHVyZUNhY2hlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTEVTVGV4dHVy
ZUNhY2hlICpDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEOworCitjbGFzcyBUZXh0dXJlQ2FjaGVDViB7Citw
dWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEJik7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgdHlwZWRlZiBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmICBUZXh0dXJlQ2FjaGVUeXBlOworICAgIHR5cGVkZWYg
Q1ZPcGVuR0xFU1RleHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7CisgICAgdHlwZWRlZiBDVk9w
ZW5HTFRleHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZW5kaWYKKworICAgIFRleHR1cmVDYWNoZUNW
KEdyYXBoaWNzQ29udGV4dDNEJiwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYpOworCisg
ICAgUmV0YWluUHRyPFRleHR1cmVUeXBlPiB0ZXh0dXJlRnJvbUltYWdlKENWSW1hZ2VCdWZmZXJS
ZWYpOworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRl
eHQ7CisgICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IG1fY2FjaGU7CisgICAgV2Vha1B0
ckZhY3Rvcnk8VGV4dHVyZUNhY2hlQ1Y+IG1fd2Vha1B0ckZhY3Rvcnk7Cit9OworCit9CisKKyNl
bmRpZiAvLyBUZXh0dXJlQ2FjaGVDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzRlMTRlMjgy
ODRlMzRhM2NmZDNjZjNkZTg2NDI0MDJlZTYxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAtMCwwICsx
LDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0
dXJlQ2FjaGVDVi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKworI2luY2x1
ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1
bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKEdyYXBoaWNz
Q29udGV4dDNEJiBjb250ZXh0KQoreworICAgIFRleHR1cmVDYWNoZVR5cGUgY2FjaGUgPSBudWxs
cHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMRVNU
ZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC5w
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7CisjZWxzZQorICAg
IENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIENH
TEdldFBpeGVsRm9ybWF0KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKSwgbnVs
bHB0ciwgJmNhY2hlKTsKKyNlbmRpZgorICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVU
eXBlPiBzdHJvbmdDYWNoZSA9IGFkb3B0Q0YoY2FjaGUpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFRleHR1cmVDYWNoZUNWPihjb250ZXh0LCBXVEZNb3ZlKHN0cm9uZ0NhY2hlKSk7Cit9
CisKK1RleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYgY29u
dGV4dCwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYgY2FjaGUpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fY2FjaGUoY2FjaGUpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCit7Cit9CisKK1JldGFpblB0cjxUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZVR5cGU+IFRl
eHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2UpCit7
CisgICAgVGV4dHVyZVR5cGUgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7CisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7
CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAg
IGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBu
dWxscHRyLCBvdXRwdXRUYXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3Jt
YXQsIHR5cGUsIGxldmVsLCAmYmFyZVZpZGVvVGV4dHVyZSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworI2Vsc2UKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVD
YWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5n
ZXQoKSwgaW1hZ2UsIG51bGxwdHIsICZiYXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisjZW5kaWYKKyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4dHVy
ZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4dHVyZSk7CisKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3dlYWtUaGlzXSB7CisgICAgICAgIGlmIChhdXRvIGNhY2hl
ID0gd2Vha1RoaXMtPm1fY2FjaGUuZ2V0KCkpCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAg
ICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbHNlCisgICAgICAg
ICAgICBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbmRpZgorICAgIH0p
OworCisgICAgcmV0dXJuIHZpZGVvVGV4dHVyZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1Yu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkMWVhMzljODEwNzA4ZDViYzU5NDY0MDEwZmJjZWY0N2JiNWZjYzcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisK
KyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0Lmg+CisjZW5k
aWYKKworI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNz
Q29udGV4dDNEJiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3Jl
YWRGcmFtZWJ1ZmZlcihjb250ZXh0LmNyZWF0ZUZyYW1lYnVmZmVyKCkpCit7Cit9CisKK1ZpZGVv
VGV4dHVyZUNvcGllckNWOjp+VmlkZW9UZXh0dXJlQ29waWVyQ1YoKQoreworICAgIG1fY29udGV4
dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9yZWFkRnJhbWVidWZmZXIpOworfQorCisjaWYgIUxPR19E
SVNBQkxFRAorCisjZGVmaW5lIFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCitzdGF0aWMgc3RkOjpt
YXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFwOwor
ICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgeworICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+IHN0cmluZ01hcDsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRzMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SRzhVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRzhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRzMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkczMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdC
OCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9BTFBI
QTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTIp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09N
UE9ORU5UMTYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
REVQVEhfQ09NUE9ORU5UMjQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMjRfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRUQpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV82
XzUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfU0hPUlRfNF80XzRfNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZVEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRfOCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8zMl9V
TlNJR05FRF9JTlRfMjRfOF9SRVYpKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBGKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJGKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2SSkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMlVJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjVfQTEpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQV9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZf
UkVWKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF81XzlfOV85X1JFVikpOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiBtYXAuZ2V0
KCk7Cit9CisKKyNlbmRpZgorCitib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRUZXh0dXJlLCBzaXplX3Qg
d2lkdGgsIHNpemVfdCBoZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0Mz
RGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IGJvb2wgZmxpcFkpCit7CisgICAgaWYgKGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaW5wdXRUZXh0dXJlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRl
b1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7Cisg
ICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQoaW5wdXRUZXh0dXJlKTsKKyNlbHNlCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1
cmVOYW1lID0gQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0Rl
bnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldChpbnB1dFRl
eHR1cmUpOworI2VuZGlmCisKKyAgICBMT0coTWVkaWEsICJWaWRlb1RleHR1cmVDb3BpZXJDVjo6
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAl
cywgZm9ybWF0OiAlcywgdHlwZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5h
bEZvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5
cGVdKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVm
ZmVyIG5hbWVzIHNvIHdlIGNhbiByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8g
dGV4dHVyZS4KKyAgICBHQzNEaW50IGJvdW5kVGV4dHVyZSA9IDA7CisgICAgR0MzRGludCBib3Vu
ZFJlYWRGcmFtZWJ1ZmZlciA9IDA7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBtX2Nv
bnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSX0JJ
TkRJTkcsICZib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0
dXJlKHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSk7CisgICAgbV9jb250ZXh0
LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsK
KyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
MkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6
OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBH
cmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisKKyAgICAvLyBNYWtlIHRoYXQgZnJh
bWVidWZmZXIgdGhlIHJlYWQgc291cmNlIGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3aWxs
IHJlYWQgdm94ZWxzLgorICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBtX3JlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICAvLyBB
bGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgorICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsKKyAg
ICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQs
IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNE
OjpMSU5FQVIpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJm
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRl
eHQtPnRleEltYWdlMkREaXJlY3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7CisKKyAgICAvLyBBdHRh
Y2ggdGhlIHZpZGVvIHRleHR1cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgorICAgIG1fY29udGV4dC0+
ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIs
IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9UZXh0dXJlVGFyZ2V0
LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7CisKKyAgICBHQzNEZW51bSBzdGF0dXMgPSBtX2Nv
bnRleHQtPmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJB
TUVCVUZGRVIpOworICAgIGlmIChzdGF0dXMgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSX0NPTVBMRVRFKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDb3B5IHRleHR1
cmUgZnJvbSB0aGUgcmVhZCBmcmFtZWJ1ZmZlciAoYW5kIHRodXMgdGhlIHZpZGVvIHRleHR1cmUp
IHRvIHRoZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91
dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAw
KTsKKworICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHRleHR1cmUgYW5kIGZyYW1lYnVmZmVy
IGJpbmRpbmdzLgorICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBib3Vu
ZFRleHR1cmUpOworICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4
dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICByZXR1
cm4gIW1fY29udGV4dC0+Z2V0RXJyb3IoKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNWY1MTJmODlhY2M0NWZhNWNjNGQ2YjdiYzNlMGY4ZWNlMzJkOWQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBW
aWRlb1RleHR1cmVDb3BpZXJDVl9oCisjZGVmaW5lIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKKwor
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZm
ZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xU
ZXh0dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJlUmVm
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWIHsK
K3B1YmxpYzoKKyAgICBWaWRlb1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYpOwor
ICAgIH5WaWRlb1RleHR1cmVDb3BpZXJDVigpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHR5
cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5cGVk
ZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2VuZGlmCisKKyAgICBib29sIGNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlVHlwZSwgc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVt
IG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
M0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29s
IGZsaXBZKTsKKworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4gbV9j
b250ZXh0LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBt
X2NvbnRleHQ7CisgICAgUGxhdGZvcm0zRE9iamVjdCBtX3JlYWRGcmFtZWJ1ZmZlcjsKK307CisK
K30KKworI2VuZGlmIC8vIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQppbmRleCAwNzc4MzVkNWUyMTI5ZWU5ZWVmZjhkNDBhMWQ0NTA3MTk4NGFjNTYx
Li45NzY4NGYyN2Q0ZDYxNDQwNWVjZjZmNzBlOTdkNzM1NzcwYzIxOGRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCkBAIC01Miw3ICs1Miw2IEBAIHR5cGVkZWYgQVZDYXB0dXJlVmlk
ZW9EYXRhT3V0cHV0IEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGU7CiB0eXBlZGVmIEFWQ2Fw
dHVyZVZpZGVvUHJldmlld0xheWVyIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyVHlwZTsKIAog
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCi1TT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlv
biwgQVZDYXB0dXJlQ29ubmVjdGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFW
Q2FwdHVyZURldmljZSkKQEAgLTgxLDE3ICs4MCw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldExvdywgTlNTdHJpbmcgKikKICNkZWZpbmUg
QVZDYXB0dXJlU2Vzc2lvblByZXNldDM1MngyODggZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNldDM1
MngyODgoKQogI2RlZmluZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93IGdldEFWQ2FwdHVyZVNl
c3Npb25QcmVzZXRMb3coKQogCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0
V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZp
ZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQ
aXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyTG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3Mp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBD
VlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9j
a0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotCi1TT0ZUX0xJTktfUE9JTlRFUihD
b3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAqKQot
I2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleSgpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPEFW
TWVkaWFDYXB0dXJlU291cmNlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVy
ZURldmljZVR5cGUqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50KQo=
</data>
<flag name="review"
          id="296774"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271991</attachid>
            <date>2016-02-22 22:50:00 -0800</date>
            <delta_ts>2016-02-29 13:40:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160222224941.patch</filename>
            <type>text/plain</type>
            <size>88743</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmZlZDA5ZTJkMjgxMmYzMGEyNTJiMmE0OTVhOGQxYmU5
YzA2YzM0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjk2YjZlYjdhZTNmMDdiNzMyMmYxOTQ1YzU1MGZiMzMyMmYxZTU3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExp
bmsuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZp
ZGVvLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8pCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVz
cywgdm9pZCosIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9y
bWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1
ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxv
Y2tGbGFncykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZl
ciwgbG9ja0ZsYWdzKSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENv
cmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIENGU3RyaW5nUmVmKQor
CisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywg
Q1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1
dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNh
Y2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2Fj
aGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJl
QXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90
IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRv
ciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwg
aW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwg
dGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3Jl
VmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENWT3BlbkdMRVNUZXh0
dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVy
ZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdM
RVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQs
IChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNl
T3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNlbHNlCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVy
ZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0
aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQ
aXhlbEZvcm1hdE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRy
aWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBj
YWNoZUF0dHJpYnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmli
dXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENW
UmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJl
ZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFy
eVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2Nh
dG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1
cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3Bl
bkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwg
KGltYWdlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRl
bywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGlt
YWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENv
cmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5
LCBDRlN0cmluZ1JlZikKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0NvcmVWaWRlb1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIwNTNlZTA2N2JkMDk0NmU0MWQ2
MWMwMDA4MzAyNDM2YWIyZjQ5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ29yZVZpZGVvU29mdExpbmtfaAorI2RlZmluZSBDb3JlVmlkZW9Tb2Z0
TGlua19oCisKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgPENvcmVWaWRlby9D
b3JlVmlkZW8uaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIENv
cmVWaWRlbykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZp
ZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
V2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VB
ZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBD
VlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
V2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUsIHNpemVfdCwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4
ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBp
eGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZl
ciwgbG9ja0ZsYWdzKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVs
QnVmZmVyLCBsb2NrRmxhZ3MpKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0X0NvcmVW
aWRlb19rQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCisKKyNpZiBQTEFURk9STShJ
T1MpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENW
T3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVh
Z2xDb250ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNU
ZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBl
YWdsQ29udGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZl
clJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBHTGVu
dW0gdGFyZ2V0LCBHTGludCBpbnRlcm5hbEZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBo
ZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBzaXplX3QgcGxhbmVJbmRleCwgQ1ZP
cGVuR0xFU1RleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUs
IHNvdXJjZUltYWdlLCB0ZXh0dXJlQXR0cmlidXRlcywgdGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwbGFuZUluZGV4LCB0ZXh0dXJlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0
dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9w
ZW5HTEVTVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1h
Z2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMRVNUZXh0
dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
V2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29t
cGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJm
YWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZm
ZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXkoKQorI2Vsc2UKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJl
Q2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rp
b25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQsIENHTFBp
eGVsRm9ybWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJp
YnV0ZXMsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNh
Y2hlQXR0cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVBdHRyaWJ1
dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVm
IHRleHR1cmVDYWNoZSwgQ1ZJbWFnZUJ1ZmZlclJlZiBzb3VyY2VJbWFnZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0
b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIGF0dHJpYnV0ZXMsIHRleHR1cmVPdXQpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5H
TFRleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVy
ZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAo
aW1hZ2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBDVk9wZW5HTFRleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTFRleHR1cmVSZWYgaW1h
Z2UpLCAoaW1hZ2UpKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtl
eSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJP
Q29tcGF0aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3Bl
bkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCisjZW5kaWYKKworI2VuZGlmIC8vIENvcmVWaWRlb1Nv
ZnRMaW5rX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAyMGY2NTc5MjI5ZWI4OTNjZDAxNWJi
ZmZlOThiMjUyYjFiZmJlNzY0Li41NzllZTdlNzZjYWVhZDIyYjVkMjRkZWQ4N2FkM2NkZGY1ZjEw
MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC01Nyw3ICs1Nyw2IEBAIE9CSkNfQ0xBU1Mg
QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CiAKIHR5cGVkZWYgc3RydWN0IENHSW1hZ2Ug
KkNHSW1hZ2VSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVm
OwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbiogVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvblJlZjsKICNpZiBQTEFURk9STShJT1MpCiB0eXBlZGVmIHN0cnVjdCAgX19D
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlICpDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmOwogI2Vsc2UK
QEAgLTcxLDggKzcwLDExIEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNz
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNzIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkZPYmpDOwogY2xhc3MgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM7CitjbGFz
cyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
OwogY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOworY2xhc3MgVGV4dHVyZUNhY2hlQ1Y7
CitjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDVjsKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKIGNsYXNzIFZp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjsKQEAgLTM0NSwxNiArMzQ3LDEzIEBAIHByaXZhdGU6
CiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3QgbV92aWRlb091dHB1dFNlbWFwaG9yZTsKIAogICAg
IFJldGFpblB0cjxBVlBsYXllckl0ZW1WaWRlb091dHB1dD4gbV9vcGVuR0xWaWRlb091dHB1dDsK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgUmV0YWluUHRyPENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWY+IG1fb3BlbkdMVGV4dHVyZUNhY2hlOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVSZWY+IG1fb3BlbkdMVGV4dHVyZUNhY2hlOwotI2VuZGlmCisgICAgc3RkOjp1
bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBtX3RleHR1cmVDYWNoZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8VmlkZW9UZXh0dXJlQ29waWVyQ1Y+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwogICAgIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2xhc3RPcGVuR0xJbWFnZTsKICNlbmRpZgogCiAj
aWYgVVNFKFZJREVPVE9PTEJPWCkKLSAgICBSZXRhaW5QdHI8VlRQaXhlbFRyYW5zZmVyU2Vzc2lv
blJlZj4gbV9waXhlbFRyYW5zZmVyU2Vzc2lvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGl4ZWxC
dWZmZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKICNlbmRpZgogCiAjaWYg
SEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
aW5kZXggOTMzZWFjMWQ5N2NhMzhlYmRlNzcwMDk0NGViOTBhZmRmMjdhYjVkNy4uMmE5NGFlNDZm
MjYwNTY1OTI4YjAxNTdiYWUxOTVhYWI5MzY3NTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0ICJNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIgog
I2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKICNpbXBvcnQgIk1lZGlhVGlt
ZUFWRm91bmRhdGlvbi5oIgorI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2lt
cG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJRdWFydHpDb3JlU1BJLmgiCiAj
aW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjAsNyArNjEsOSBAQAogI2ltcG9ydCAiU2V0
dGluZ3MuaCIKICNpbXBvcnQgIlRleHRFbmNvZGluZy5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCiAjaW1wb3J0ICJVVUlE
LmgiCisjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgogI2ltcG9ydCAiVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCkBAIC0xMDQsMTYgKzEwNywxMyBAQAog
I2lmIFVTRShWSURFT1RPT0xCT1gpCiAjaW1wb3J0IDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAj
aW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisjaW1wb3J0ICJDb3JlVmlkZW9T
b2Z0TGluay5oIgogI2VuZGlmCiAKICNpZiBVU0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgIkNGTlNV
UkxDb25uZWN0aW9uU1BJLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRl
IDxPcGVuR0xFUy9FUzMvZ2xleHQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2Ugc3RkIHsKIHRlbXBs
YXRlIDw+IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8SGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6TWVk
aWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPj46Oml0ZXJhdG9yPiB7CiAgICAgdHlwZWRlZiBSZWZQ
dHI8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPiB2YWx1ZV90eXBlOwpAQCAt
MTQ5LDI1ICsxNDksNiBAQCB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNl
bGVjdGlvbk9wdGlvblR5cGU7CiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRh
dGlvbikKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlSW1hZ2UpCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykKLQotI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9vbGJveCkKLSNlbmRpZgotCi1T
T0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVs
QnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4
ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXpl
LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkK
LVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9T
VHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09G
VF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4s
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyks
IChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdz
KSkKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBp
eGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiAqcGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQp
LCAoYWxsb2NhdG9yLCBwaXhlbFRyYW5zZmVyU2Vzc2lvbk91dCkpCi1TT0ZUX0xJTksoVmlkZW9U
b29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSwgT1NTdGF0dXMsIChW
VFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24sIENWUGl4ZWxCdWZmZXJSZWYgc291cmNl
QnVmZmVyLCBDVlBpeGVsQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyKSwgKHNlc3Npb24sIHNv
dXJjZUJ1ZmZlciwgZGVzdGluYXRpb25CdWZmZXIpKQotI2VuZGlmCiAKIFNPRlRfTElOS19DTEFT
UyhBVkZvdW5kYXRpb24sIEFWUGxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwg
QVZQbGF5ZXJJdGVtKQpAQCAtMTk1LDcgKzE3Niw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91
bmRhdGlvbiwgQVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tleSwgTlNTdHJpbmcgKikK
IFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6
ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZM
YXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktf
UE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5n
ICopCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3Jt
YXRUeXBlS2V5LCBOU1N0cmluZyAqKQogCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZv
dW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmluZyAq
KQogCkBAIC0yMjIsNyArMjAyLDYgQEAgU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3Vu
ZGF0aW9uLCBBVlVSTEFzc2V0Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlMKICNkZWZpbmUg
QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVz
aXplQXNwZWN0KCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwg
Z2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwoKQogI2RlZmluZSBBVkxheWVy
VmlkZW9HcmF2aXR5UmVzaXplIGdldEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUoKQotI2RlZmlu
ZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVs
Rm9ybWF0VHlwZUtleSgpCiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05f
R1JPVVApCiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25Hcm91cCBBVk1lZGlhU2VsZWN0aW9uR3Jv
dXBUeXBlOwpAQCAtMjkxLDI0ICsyNzAsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqKQogI2Rl
ZmluZSBBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSBnZXRBVlVSTEFzc2V0Qm91
bmROZXR3b3JrSW50ZXJmYWNlTmFtZSgpCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLVNP
RlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJu
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1
dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0
dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRv
ciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hl
T3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZP
cGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291
cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdl
dCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBH
TGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNU
ZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJ
bWFnZSwgdGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTkso
Q29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRl
eHR1cmVDYWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1h
Z2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lLCBHTHVp
bnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTktfUE9J
TlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRp
YmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9w
ZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5H
TEVTRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZWxzZQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2JqIGNnbENv
bnRleHQsIENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYg
dGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChh
bGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRl
eHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5H
TFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENW
SW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBD
Vk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUs
IHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNo
ZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUs
IG9wdGlvbnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0
LCBHTGVudW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5L
KENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0
dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NW
UGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmluZyAq
KQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5KCkK
LSNlbmRpZgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKIFNPRlRfTElOS19P
UFRJT05BTChNZWRpYVRvb2xib3gsIE1URW5hYmxlQ2FwdGlvbjIwMTVCZWhhdmlvciwgQm9vbGVh
biwgKCksICgpKQogCkBAIC0yMjIwLDM5ICsyMTgxLDEyIEBAIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1
ZmZlCiAgICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRw
dXQpOwogCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpOwotI2VuZGlmCi0KICAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBb
bV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdOwogCiAgICAgaWYgKCFbbV92aWRlb091
dHB1dC5nZXQoKSBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lXSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVy
ID0gYWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGlt
ZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7Ci0gICAgaWYgKCFidWZmZXIp
Ci0gICAgICAgIHJldHVybiAwOwotCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLSAgICAvLyBDcmVh
dGUgYSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uLCBpZiBuZWNlc3NhcnksIGFzIHdlIGNhbm5vdCBn
dWFyYW50ZWUgdGltZWx5IGRlbGl2ZXJ5IG9mIEFSR0IgcGl4ZWxzLgotICAgIGlmICghbV9waXhl
bFRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNl
c3Npb24gPSAwOwotICAgICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsICZzZXNzaW9uKTsKLSAgICAgICAgbV9waXhlbFRyYW5zZmVyU2Vzc2lvbiA9
IGFkb3B0Q0Yoc2Vzc2lvbik7Ci0gICAgfQotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRC
dWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDVlBp
eGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChi
dWZmZXIuZ2V0KCkpLCBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBLCAwLCAmb3V0cHV0QnVmZmVy
KTsKLSAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3BpeGVsVHJhbnNm
ZXJTZXNzaW9uLmdldCgpLCBidWZmZXIuZ2V0KCksIG91dHB1dEJ1ZmZlcik7Ci0gICAgYnVmZmVy
ID0gYWRvcHRDRihvdXRwdXRCdWZmZXIpOwotI2VuZGlmCi0KLSNpZiAhTE9HX0RJU0FCTEVECi0g
ICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFy
dDsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVQaXhlbEJ1ZmZlciglcCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAlLjRmIiwgdGhpcywg
bmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikpOwotI2VuZGlmCi0KLSAgICByZXR1cm4g
YnVmZmVyOworICAgIHJldHVybiBhZG9wdENGKFttX3ZpZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhl
bEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsK
IH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1
dEhhc0F2YWlsYWJsZUZyYW1lKCkKQEAgLTIyNjksNDMgKzIyMDMsNiBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUo
KQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1l
OlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1dOwogfQogCi1zdGF0aWMgY29uc3Qgdm9pZCog
Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbykKLXsKLSAgICBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJl
Zj4oaW5mbyk7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
a0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLSAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdl
dEJhc2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKLX0KLQotc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZl
clJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqKQotewot
ICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxC
dWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7Ci19Ci0KLXN0YXRpYyB2b2lkIENW
UGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGlu
Zm8pOwotICAgIENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcikKLXsKLSAgICAvLyBwaXhlbEJ1ZmZlciB3aWxsIGJlIG9mIHR5cGUga0NWUGl4
ZWxGb3JtYXRUeXBlXzMyQkdSQS4KLSAgICBBU1NFUlQoQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9y
bWF0VHlwZShwaXhlbEJ1ZmZlcikgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSk7Ci0KLSAg
ICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwotICAg
IHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKLSAg
ICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3cocGl4ZWxC
dWZmZXIpOwotICAgIHNpemVfdCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXpl
KHBpeGVsQnVmZmVyKTsKLSAgICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5
dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZpcnN0OwotCi0gICAgQ0ZSZXRhaW4ocGl4
ZWxCdWZmZXIpOyAvLyBCYWxhbmNlZCBieSBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayBpbiBwcm92aWRlckNhbGxiYWNrcy4KLSAgICBDR0RhdGFQcm92aWRlckRpcmVjdENhbGxiYWNr
cyBwcm92aWRlckNhbGxiYWNrcyA9IHsgMCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2Fs
bGJhY2ssIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhl
bEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgfTsKLSAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlk
ZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZURpcmVjdChwaXhl
bEJ1ZmZlciwgYnl0ZUxlbmd0aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7Ci0KLSAgICByZXR1cm4g
YWRvcHRDRihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywg
c1JHQkNvbG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIE5VTEwsIGZh
bHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIHsKICAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcigpOwpA
QCAtMjMxMyw4ICsyMjEwLDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKICAgICAvLyBDYWxscyB0byBjb3B5UGl4ZWxCdWZmZXJG
b3JJdGVtVGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1heSByZXR1cm4gbmlsIGlmIHRoZSBwaXhl
bCBidWZmZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3RlZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4g
cmV0cmlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0IHZhbGlkIGltYWdlIChpZiBhbnkpCiAg
ICAgLy8gc2hvdWxkIGJlIGRpc3BsYXllZC4KLSAgICBpZiAocGl4ZWxCdWZmZXIpCi0gICAgICAg
IG1fbGFzdEltYWdlID0gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0
KCkpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
bV9waXhlbEJ1ZmZlckNvbmZvcm1lcikgeworICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0
ZXMgPSBAeyAoTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChr
Q1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBKSB9OworICAgICAgICBtX3BpeGVsQnVmZmVyQ29uZm9y
bWVyID0gc3RkOjptYWtlX3VuaXF1ZTxQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPigoQ0ZEaWN0aW9u
YXJ5UmVmKWF0dHJpYnV0ZXMpOworICAgIH0KKworI2lmICFMT0dfRElTQUJMRUQKKyAgICBkb3Vi
bGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyNlbmRpZgorCisgICAg
bV9sYXN0SW1hZ2UgPSBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlci5nZXQoKSk7CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91
YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKKyAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVM
YXN0SW1hZ2UoJXApIC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1By
ZWNpc2lvblRvRmxvYXQoZHVyYXRpb24pKTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBvdXRwdXRSZWN0KQpAQCAtMjM5MiwxMTAg
KzIzMDUsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RPcGVuR0xJbWFnZSgpCiAgICAgbV9sYXN0T3BlbkdMSW1hZ2UgPSBhZG9wdENGKFttX29w
ZW5HTFZpZGVvT3V0cHV0IGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0
ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsKIH0KIAotI2lmICFMT0dfRElTQUJMRUQKLQotI2RlZmlu
ZSBTVFJJTkdJRllfUEFJUihlKSBlLCAjZQotc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25z
dCBjaGFyKj4mIGVudW1Ub1N0cmluZ01hcCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4+IG1hcDsKLSAgICBpZiAobWFwLmdldCgp
LmVtcHR5KCkpIHsKLSAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJp
bmdNYXA7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBI
QSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFO
Q0UpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkcxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkczMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
Ukc4VUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NP
TVBPTkVOVDMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9ERVBUSDI0X1NURU5DSUw4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0RFUFRIMzJGX1NURU5DSUw4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkVEKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHX0lOVEVHRVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfREVQVEhfU1RFTkNJTCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9CWVRFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
U0hPUlRfNV81XzVfMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9CWVRFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0hBTEZfRkxPQVQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfRkxPQVQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
VU5TSUdORURfU0hPUlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfU0hPUlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfVU5TSUdORURfSU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0lOVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzI0XzgpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0Xzhf
UkVWKSk7Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JFRF9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQl9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I1NjUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTFGX0cxMUZfQjEwRikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I5X0U1KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2RikpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2VUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQjMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMzJJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4X1NOT1JNKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQkExNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQTMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxMF9BMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkExNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkExNkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCQTMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0JBMzJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0I1X0ExKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkFfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9ERVBUSF9DT01QT05FTlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYpKTsKLSNlbmRpZgotICAgIH0KLSAgICByZXR1cm4gbWFwLmdldCgpOwotfQotCi0jZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRAotCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRU
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBm
b3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkK
IHsKICAgICBpZiAoZmxpcFkgfHwgcHJlbXVsdGlwbHlBbHBoYSkKQEAgLTI1MTEsOTUgKzIzMjAs
MjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGgKICAgICBpZiAoIW1fbGFzdE9wZW5HTEltYWdl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1fb3BlbkdMVGV4dHVyZUNhY2hl
KSB7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVm
IGNhY2hlID0gbnVsbHB0cjsKLSAgICAgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQtPnBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwgJmNhY2hlKTsKLSNlbHNlCi0gICAg
ICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIGNhY2hlID0gbnVsbHB0cjsKLSAgICAgICAgQ1ZS
ZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIENHTEdl
dFBpeGVsRm9ybWF0KGNvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxw
dHIsICZjYWNoZSk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGVycm9yICE9IGtDVlJldHVyblN1Y2Nl
c3MpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1fb3BlbkdMVGV4dHVyZUNh
Y2hlID0gYWRvcHRDRihjYWNoZSk7Ci0gICAgfQotCiAgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKG1fbGFzdE9wZW5HTEltYWdlLmdldCgpKTsKICAgICBzaXplX3QgaGVp
Z2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgQ1ZPcGVuR0xFU1RleHR1cmVSZWYgYmFyZVZpZGVvVGV4
dHVyZSA9IG51bGxwdHI7Ci0gICAgaWYgKGtDVlJldHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9v
cGVuR0xUZXh0dXJlQ2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRy
LCBvdXRwdXRUYXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5
cGUsIGxldmVsLCAmYmFyZVZpZGVvVGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBSZXRhaW5QdHI8Q1ZPcGVuR0xFU1RleHR1cmVSZWY+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0Yo
YmFyZVZpZGVvVGV4dHVyZSk7Ci0gICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1l
ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lKHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0gICAgR0Mz
RGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQodmlk
ZW9UZXh0dXJlLmdldCgpKTsKLSNlbHNlCi0gICAgQ1ZPcGVuR0xUZXh0dXJlUmVmIGJhcmVWaWRl
b1RleHR1cmUgPSBudWxscHRyOwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdM
VGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBt
X29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSwgbV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG51bGxw
dHIsICZiYXJlVmlkZW9UZXh0dXJlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFJldGFp
blB0cjxDVk9wZW5HTFRleHR1cmVSZWY+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVv
VGV4dHVyZSk7Ci0gICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVu
R0xUZXh0dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVv
VGV4dHVyZVRhcmdldCA9IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCh2aWRlb1RleHR1cmUuZ2V0
KCkpOwotI2VuZGlmCi0KLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewot
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChhdXRvIGNhY2hlID0gd2Vha1RoaXMtPm1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpKQotI2lm
IFBMQVRGT1JNKElPUykKLSAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaChj
YWNoZSwgMCk7Ci0jZWxzZQotICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaChj
YWNoZSwgMCk7Ci0jZW5kaWYKLSAgICB9KTsKLQotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZSglcCkgLSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwgdGhpcywg
ZW51bVRvU3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVtmb3Jt
YXRdLCBlbnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7Ci0KLSAgICAvLyBTYXZlIHRoZSBvcmlnaWFs
IGJvdW5kIHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmluZCB0aGVt
IGFmdGVyIGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCi0gICAgR0MzRGludCBib3VuZFRleHR1
cmUgPSAwOwotICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOwotICAgIGNvbnRl
eHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQsICZi
b3VuZFRleHR1cmUpOwotICAgIGNvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNE
OjpSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZFJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAg
ICBjb250ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5h
bWUpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29u
dGV4dDNEOjpMSU5FQVIpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRl
cmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotCi0gICAgLy8g
Q3JlYXRlIGEgZnJhbWVidWZmZXIgb2JqZWN0IHRvIHJlcHJlc2VudCB0aGUgdmlkZW8gdGV4dHVy
ZSdzIG1lbW9yeS4KLSAgICBQbGF0Zm9ybTNET2JqZWN0IHJlYWRGcmFtZWJ1ZmZlciA9IGNvbnRl
eHQtPmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0KLSAgICAvLyBNYWtlIHRoYXQgZnJhbWVidWZmZXIg
dGhlIHJlYWQgc291cmNlIGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3aWxsIHJlYWQgdm94
ZWxzLgotICAgIGNvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVB
RF9GUkFNRUJVRkZFUiwgcmVhZEZyYW1lYnVmZmVyKTsKLQotICAgIC8vIEFsbG9jYXRlIHVuaW5p
dGlhbGl6ZWQgbWVtb3J5IGZvciB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+Ymlu
ZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsKLSAgICBjb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAgICBj
b250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9U
T19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29u
dGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91
dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3Jt
YXQsIHR5cGUsIG51bGxwdHIpOwotCi0gICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRv
IHRoZSBmcmFtZWJ1ZmZlci4KLSAgICBjb250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFw
aGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9S
X0FUVEFDSE1FTlQwLCB2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUsIGxldmVs
KTsKLQotICAgIEdDM0RlbnVtIHN0YXR1cyA9IGNvbnRleHQtPmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIpOwotICAgIGlmIChzdGF0dXMg
IT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAvLyBDb3B5IHRleHR1cmUgZnJvbSB0aGUgcmVhZCBmcmFtZWJ1ZmZl
ciAoYW5kIHRodXMgdGhlIHZpZGVvIHRleHR1cmUpIHRvIHRoZSBvdXRwdXQgdGV4dHVyZS4KLSAg
ICBjb250ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisgICAgaWYgKCFtX3RleHR1cmVDYWNoZSkg
eworICAgICAgICBtX3RleHR1cmVDYWNoZSA9IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoKmNvbnRl
eHQpOworICAgICAgICBpZiAoIW1fdGV4dHVyZUNhY2hlKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KIAotICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHRleHR1cmUgYW5kIGZy
YW1lYnVmZmVyIGJpbmRpbmdzLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgYm91bmRUZXh0dXJlKTsKLSAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIGJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKyAgICBS
ZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBtX3RleHR1cmVDYWNo
ZS0+dGV4dHVyZUZyb21JbWFnZShtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAKLSAgICAvLyBD
bGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMuCi0gICAgY29udGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIo
cmVhZEZyYW1lYnVmZmVyKTsKKyAgICBpZiAoIW1fdmlkZW9UZXh0dXJlQ29waWVyKQorICAgICAg
ICBtX3ZpZGVvVGV4dHVyZUNvcGllciA9IHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9UZXh0dXJlQ29w
aWVyQ1Y+KCpjb250ZXh0KTsKIAotICAgIHJldHVybiAhY29udGV4dC0+Z2V0RXJyb3IoKTsKKyAg
ICByZXR1cm4gbV92aWRlb1RleHR1cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZSh2aWRlb1RleHR1cmUuZ2V0KCksIHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUs
IG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11
bHRpcGx5QWxwaGEsIGZsaXBZKTsKIH0KIAogUGFzc05hdGl2ZUltYWdlUHRyIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDg4MjhjM2I5OGVjZjY5ZjVmN2Fj
OTQ1MGZkMzkxZTU4MmYzMzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKQEAgLTAsMCArMSw5
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oIgorCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKyNpbmNsdWRl
IDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwo
VmlkZW9Ub29sYm94KQorU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZv
cm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVzLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJS
ZWYqIGNvbmZvcm1lck91dCksIChhbGxvY2F0b3IsIGF0dHJpYnV0ZXMsIGNvbmZvcm1lck91dCkp
OworU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklzQ29uZm9y
bWFudFBpeGVsQnVmZmVyLCBCb29sZWFuLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25m
b3JtZXIsIENWUGl4ZWxCdWZmZXJSZWYgcGl4QnVmKSwgKGNvbmZvcm1lciwgcGl4QnVmKSkKK1NP
RlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVk
UGl4ZWxCdWZmZXIsIE9TU3RhdHVzLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3Jt
ZXIsIENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBCb29sZWFuIGVuc3VyZU1vZGlmaWFi
bGUsIENWUGl4ZWxCdWZmZXJSZWYqIGNvbmZvcm1lZEJ1ZmZlck91dCksIChjb25mb3JtZXIsIHNv
dXJjZUJ1ZmZlciwgZW5zdXJlTW9kaWZpYWJsZSwgY29uZm9ybWVkQnVmZmVyT3V0KSkKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKQoreworICAgIFZUUGl4ZWxCdWZm
ZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyID0gbnVsbHB0cjsKKyAgICBWVFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYXR0cmlidXRl
cywgJmNvbmZvcm1lcik7CisgICAgQVNTRVJUKGNvbmZvcm1lcik7CisgICAgbV9waXhlbENvbmZv
cm1lciA9IGFkb3B0Q0YoY29uZm9ybWVyKTsKK30KKworc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4
ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCit7CisgICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGlu
Zm8pOworICAgIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBp
eGVsQnVmZmVyTG9ja19SZWFkT25seSk7CisgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNl
QWRkcmVzcyhwaXhlbEJ1ZmZlcik7Cit9CisKK3N0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxl
YXNlQnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKK3sKKyAgICBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJl
Zj4oaW5mbyk7CisgICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVy
LCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVs
QnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsK
KyAgICBDRlJlbGVhc2UocGl4ZWxCdWZmZXIpOworfQorCitSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhl
bEJ1ZmZlclJlZiByYXdCdWZmZXIpCit7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IGJ1ZmZlciB7IHJhd0J1ZmZlciB9OworICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJH
ZXRXaWR0aChidWZmZXIuZ2V0KCkpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVy
R2V0SGVpZ2h0KGJ1ZmZlci5nZXQoKSk7CisKKyAgICBpZiAoIVZUUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJJc0NvbmZvcm1hbnRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIu
Z2V0KCkpKSB7CisgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyID0gbnVsbHB0
cjsKKyAgICAgICAgT1NTdGF0dXMgc3RhdHVzID0gVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNvcHlD
b25mb3JtZWRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIuZ2V0KCks
IGZhbHNlLCAmb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAh
b3V0cHV0QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJ1ZmZl
ciA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyKTsKKyAgICB9CisKKyAgICBDR0JpdG1hcEluZm8gYml0
bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZpcnN0
OworICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhi
dWZmZXIuZ2V0KCkpOworICAgIHNpemVfdCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERh
dGFTaXplKGJ1ZmZlci5nZXQoKSk7CisKKyAgICBDRlJldGFpbihidWZmZXIuZ2V0KCkpOyAvLyBC
YWxhbmNlZCBieSBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNh
bGxiYWNrcy4KKyAgICBDR0RhdGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxi
YWNrcyA9IHsgMCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxC
dWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJ
bmZvQ2FsbGJhY2sgfTsKKyAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVy
ID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZURpcmVjdChidWZmZXIuZ2V0KCksIGJ5dGVM
ZW5ndGgsICZwcm92aWRlckNhbGxiYWNrcykpOworCisgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFn
ZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNl
UmVmKCksIGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBudWxscHRyLCBmYWxzZSwga0NHUmVu
ZGVyaW5nSW50ZW50RGVmYXVsdCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgyNjUyZGQ3YjI5YjAyZTUyNTJiNDZhYmNhYjMzNWM3NDIyNTEz
OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisjZGVmaW5lIFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1ZfaAorCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKworI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbEJ1ZmZlckNvbmZvcm1lciog
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZjsKK3R5cGVkZWYgc3RydWN0IENHSW1hZ2UqIENHSW1h
Z2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgeworcHVi
bGljOgorICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0
ZXMpOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZl
cihDVlBpeGVsQnVmZmVyUmVmKTsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8VlRQaXhlbEJ1
ZmZlckNvbmZvcm1lclJlZj4gbV9waXhlbENvbmZvcm1lcjsKK307CisKK30KKworI2VuZGlmIC8v
IFVTRShWSURFT1RPT0xCT1gpCisKKyNlbmRpZiAvLyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQxY2U1MDJhNWFiZDdhZjhmMmE4NWIzYTY3M2VkYzE0Y2QwNWYx
MWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFRleHR1cmVDYWNoZUNWX2gKKyNkZWZpbmUgVGV4dHVyZUNhY2hlQ1ZfaAorCisjaW5jbHVkZSA8
d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1ZmZlclJlZjsK
K3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0eXBlZGVmIENW
SW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NW
T3BlbkdMVGV4dHVyZUNhY2hlICpDVk9wZW5HTFRleHR1cmVDYWNoZVJlZjsKK3R5cGVkZWYgc3Ry
dWN0IF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKKworY2xh
c3MgVGV4dHVyZUNhY2hlQ1YgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNh
Y2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1cmVUeXBlOwor
I2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmICBUZXh0dXJlQ2FjaGVU
eXBlOworICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2VuZGlm
CisKKyAgICBUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYsIFJldGFpblB0cjxUZXh0
dXJlQ2FjaGVUeXBlPiYmKTsKKworICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4gdGV4dHVyZUZy
b21JbWFnZShDVkltYWdlQnVmZmVyUmVmKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZjxHcmFw
aGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBl
PiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBtX3dlYWtQdHJG
YWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOTc0ZTE0ZTI4Mjg0ZTM0YTNjZmQzY2YzZGU4NjQyNDAyZWU2MWFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVy
ZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4gVGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAgICBUZXh0dXJl
Q2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisgICAgQ1ZSZXR1
cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRy
LCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNh
Y2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAgICBpZiAoZXJy
b3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29udGV4dCwgV1RG
TW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1Yo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYm
IGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hlKGNhY2hlKQor
ICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8VGV4dHVyZUNh
Y2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVklt
YWdlQnVmZmVyUmVmIGltYWdlKQoreworICAgIFRleHR1cmVUeXBlIGJhcmVWaWRlb1RleHR1cmUg
PSBudWxscHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVs
QnVmZmVyR2V0V2lkdGgoaW1hZ2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVy
R2V0SGVpZ2h0KGltYWdlKTsKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBt
X2NhY2hlLmdldCgpLCBpbWFnZSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRlcm5hbEZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRlb1RleHR1cmUp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgaWYgKGtDVlJldHVyblN1Y2Nl
c3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCAmYmFyZVZpZGVvVGV4
dHVyZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgUmV0YWluUHRyPFRl
eHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOworCisg
ICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewor
ICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX2NhY2hlLmdldCgpKQorI2lmIFBM
QVRGT1JNKElPUykKKyAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaChjYWNo
ZSwgMCk7CisjZWxzZQorICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaChjYWNo
ZSwgMCk7CisjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiB2aWRlb1RleHR1cmU7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDFlYTM5YzgxMDcwOGQ1YmM1
OTQ2NDAxMGZiY2VmNDdiYjVmY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC0wLDAgKzEs
MjEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWRl
b1RleHR1cmVDb3BpZXJDVi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgPE9wZW5H
TEVTL0VTMy9nbGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1Rl
eHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKKyAgICA6IG1fY29udGV4
dChjb250ZXh0KQorICAgICwgbV9yZWFkRnJhbWVidWZmZXIoY29udGV4dC5jcmVhdGVGcmFtZWJ1
ZmZlcigpKQoreworfQorCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVvVGV4dHVyZUNvcGll
ckNWKCkKK3sKKyAgICBtX2NvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fcmVhZEZyYW1lYnVm
ZmVyKTsKK30KKworI2lmICFMT0dfRElTQUJMRUQKKworI2RlZmluZSBTVFJJTkdJRllfUEFJUihl
KSBlLCAjZQorc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4mIGVudW1Ub1N0
cmluZ01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bWFwPHVpbnQzMl90
LCBjb25zdCBjaGFyKj4+IG1hcDsKKyAgICBpZiAobWFwLmdldCgpLmVtcHR5KCkpIHsKKyAgICAg
ICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMy
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzgpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkYpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkYpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDMyRikpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDI0X1NURU5DSUw4
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMzJG
X1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5D
RV9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9M
VU1JTkFOQ0UpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
QUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVE
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHX0lOVEVH
RVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhf
U1RFTkNJTCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9V
TlNJR05FRF9CWVRFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV81XzVfMSkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9CWVRFKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZfRkxPQVQpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVQpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlQpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU0hPUlQpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0lOVCkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMl8x
MF8xMF8xMF9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfVU5TSUdORURfSU5UXzI0XzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7CisKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JF
RF9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQl9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0I1NjUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTFGX0cxMUZfQjEwRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0I5X0U1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
MzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4
X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QkExNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
QTMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
OFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9B
MlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEx
NlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEx
NkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMy
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJV
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I1X0Ex
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkFfSU5URUdFUikp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01Q
T05FTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsKKyNlbmRpZgorICAg
IH0KKyAgICByZXR1cm4gbWFwLmdldCgpOworfQorCisjZW5kaWYKKworYm9vbCBWaWRlb1RleHR1
cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVUeXBl
IGlucHV0VGV4dHVyZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9ybTNET2Jq
ZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwg
R0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQoreworICAgIGlmIChmbGlwWSB8fCBw
cmVtdWx0aXBseUFscGhhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlucHV0
VGV4dHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0oSU9TKQorICAg
IFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0dXJlR2V0
TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IENW
T3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZWxzZQorICAgIFBsYXRm
b3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5hbWUoaW5w
dXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTFRl
eHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgTE9HKE1lZGlhLCAi
VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgl
cCkgLSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwgdGhpcywgZW51
bVRvU3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVtmb3JtYXRd
LCBlbnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7CisKKyAgICAvLyBTYXZlIHRoZSBvcmlnaWFsIGJv
dW5kIHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmluZCB0aGVtIGFm
dGVyIGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCisgICAgR0MzRGludCBib3VuZFRleHR1cmUg
PSAwOworICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOworICAgIG1fY29udGV4
dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR18yRCwgJmJv
dW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQz
RDo6UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOworCisg
ICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVy
ZU5hbWUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQ
X1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRl
eFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwor
CisgICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9tIHdoaWNo
IGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KKyAgICBtX2NvbnRleHQtPmJpbmRG
cmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgbV9yZWFkRnJh
bWVidWZmZXIpOworCisgICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkgZm9yIHRo
ZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgb3V0cHV0VGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklM
VEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFt
ZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1f
Y29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBf
VE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIG51
bGxwdHIpOworCisgICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRoZSBmcmFtZWJ1
ZmZlci4KKyAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4
dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVO
VDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSwgbGV2ZWwpOworCisgICAg
R0MzRGVudW0gc3RhdHVzID0gbV9jb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKKyAgICBpZiAoc3RhdHVzICE9IEdyYXBo
aWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0
aHVzIHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCisgICAgbV9jb250
ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwg
MCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisKKyAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0
ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0
dXJlKG91dHB1dFRhcmdldCwgYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPmJpbmRGcmFt
ZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRSZWFkRnJh
bWVidWZmZXIpOworCisgICAgcmV0dXJuICFtX2NvbnRleHQtPmdldEVycm9yKCk7Cit9CisKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Zp
ZGVvVGV4dHVyZUNvcGllckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmNTEyZjg5YWNjNDVmYTVjYzRkNmI3
YmMzZTBmOGVjZTMyZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorI2RlZmluZSBWaWRl
b1RleHR1cmVDb3BpZXJDVl9oCisKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dDNELmgiCisKK3R5
cGVkZWYgc3RydWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlwZWRlZiBDVklt
YWdlQnVmZmVyUmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJl
ZiBDVk9wZW5HTEVTVGV4dHVyZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBW
aWRlb1RleHR1cmVDb3BpZXJDViB7CitwdWJsaWM6CisgICAgVmlkZW9UZXh0dXJlQ29waWVyQ1Yo
R3JhcGhpY3NDb250ZXh0M0QmKTsKKyAgICB+VmlkZW9UZXh0dXJlQ29waWVyQ1YoKTsKKworI2lm
IFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1cmVU
eXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsK
KyNlbmRpZgorCisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4
dHVyZVR5cGUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBv
dXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CisKKyAgICBHcmFwaGljc0NvbnRleHQzRCYg
Y29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJl
ZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFBsYXRmb3JtM0RPYmplY3QgbV9y
ZWFkRnJhbWVidWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBWaWRlb1RleHR1cmVDb3BpZXJD
Vl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggMDc3ODM1ZDVlMjEyOWVlOWVl
ZmY4ZDQwYTFkNDUwNzE5ODRhYzU2MS4uOTc2ODRmMjdkNGQ2MTQ0MDVlY2Y2ZjcwZTk3ZDczNTc3
MGMyMThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTIsNyArNTIsNiBA
QCB0eXBlZGVmIEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCBBVkNhcHR1cmVWaWRlb0RhdGFPdXRw
dXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBBVkNhcHR1cmVWaWRl
b1ByZXZpZXdMYXllclR5cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3Vu
ZGF0aW9uKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8pCiAKIFNPRlRf
TElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBTT0ZUX0xJTktf
Q0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC04MSwxNyArODAsNiBAQCBT
T0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3cs
IE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4IGdldEFW
Q2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4KCkKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblBy
ZXNldExvdyBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93KCkKIAotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAo
cGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VB
ZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBz
aXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNP
RlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlw
ZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChw
aXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
LQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0
VHlwZUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5
cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0
cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272512</attachid>
            <date>2016-02-29 13:15:45 -0800</date>
            <delta_ts>2016-02-29 13:52:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229131529.patch</filename>
            <type>text/plain</type>
            <size>89636</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
NTc5ZWU3ZTc2Y2FlYWQyMmI1ZDI0ZGVkODdhZDNjZGRmNWYxMDMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTYgKzM0NywxMyBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAogI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1f
cGl4ZWxCdWZmZXJDb25mb3JtZXI7CiAjZW5kaWYKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzM2VhYzFkOTdjYTM4
ZWJkZTc3MDA5NDRlYjkwYWZkZjI3YWI1ZDcuLmIxNzYwMTlkMjViY2I4Y2ViMTdlZDgxNGMyZTc2
YzRjZGY5ZjhiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNiArNTMsNyBAQAog
I2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKKyNp
bXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmln
aW4uaCIKQEAgLTYwLDcgKzYxLDkgQEAKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJU
ZXh0RW5jb2RpbmcuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1w
b3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgogI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCAiVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIgog
I2ltcG9ydCAiV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlQ0FM
YXllckV4dHJhcy5oIgpAQCAtMTA0LDE2ICsxMDcsMTMgQEAKICNpZiBVU0UoVklERU9UT09MQk9Y
KQogI2ltcG9ydCA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogI2ltcG9ydCA8VmlkZW9Ub29sYm94
L1ZpZGVvVG9vbGJveC5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNlbmRpZgog
CiAjaWYgVVNFKENGTkVUV09SSykKICNpbmNsdWRlICJDRk5TVVJMQ29ubmVjdGlvblNQSS5oIgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0
Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIHN0ZCB7CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXRlcmF0
b3JfdHJhaXRzPEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uQVZG
T2JqQz4+OjppdGVyYXRvcj4gewogICAgIHR5cGVkZWYgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Vs
ZWN0aW9uT3B0aW9uQVZGT2JqQz4gdmFsdWVfdHlwZTsKQEAgLTE0OSwyNSArMTQ5LDYgQEAgdHlw
ZWRlZiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25UeXBlOwog
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoQ29yZUltYWdlKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05B
TChDb3JlVmlkZW8pCi0KLSNpZiBVU0UoVklERU9UT09MQk9YKQotU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTChWaWRlb1Rvb2xib3gpCi0jZW5kaWYKLQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
LCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3Qs
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVv
LCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tG
bGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJl
c3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFn
cyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLSNpZiBVU0UoVklERU9U
T09MQk9YKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIFZUUGl4ZWxUcmFuc2Zl
clNlc3Npb25SZWYgKnBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgcGl4ZWxU
cmFuc2ZlclNlc3Npb25PdXQpKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UsIE9TU3RhdHVzLCAoVlRQaXhlbFRyYW5zZmVyU2Vzc2lv
blJlZiBzZXNzaW9uLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZl
clJlZiBkZXN0aW5hdGlvbkJ1ZmZlciksIChzZXNzaW9uLCBzb3VyY2VCdWZmZXIsIGRlc3RpbmF0
aW9uQnVmZmVyKSkKLSNlbmRpZgogCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlBs
YXllcikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbSkKQEAgLTE5
NSw3ICsxNzYsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRS
ZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihB
VkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QsIE5TU3RyaW5nICop
CiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNp
emVBc3BlY3RGaWxsLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgTlNTdHJpbmcg
KikKIAogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlNTdHJpbmcgKikKIApAQCAtMjIyLDcgKzIwMiw2
IEBAIFNPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENs
aWVudEJ1bmRsZUlkZW50aWZpZXJLZXksIE5TCiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlS
ZXNpemVBc3BlY3QgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCgpCiAjZGVmaW5l
IEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIGdldEFWTGF5ZXJWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3RGaWxsKCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZSBn
ZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplKCkKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQogCiAj
aWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogdHlwZWRlZiBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZTsKQEAgLTI5MSwyNCAr
MjcwLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0Qm91bmRO
ZXR3b3JrSW50ZXJmYWNlTmFtZSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZVUkxBc3NldEJvdW5k
TmV0d29ya0ludGVyZmFjZU5hbWUgZ2V0QVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5h
bWUoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBl
YWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywg
ZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91
dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1
dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0
dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQsIEdMZW51
bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3Jl
VmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1
cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcg
KikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxp
dHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlL
ZXkoKQotI2Vsc2UKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVm
IGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1h
dE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBD
Vk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJp
YnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2Fj
aGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJj
ZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmli
dXRlcywgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVD
YWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBD
Vk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xU
ZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdM
VGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNl
T3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVsQnVmZmVy
SU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZW5kaWYKLQogU09GVF9MSU5L
X0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCiBTT0ZUX0xJTktfT1BUSU9OQUwoTWVkaWFUb29sYm94
LCBNVEVuYWJsZUNhcHRpb24yMDE1QmVoYXZpb3IsIEJvb2xlYW4sICgpLCAoKSkKIApAQCAtMjIy
MCwzOSArMjE4MSwxMiBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZQogICAgICAgICBjcmVhdGVW
aWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKIAotI2lmICFMT0dfRElT
QUJMRUQKLSAgICBkb3VibGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSNlbmRpZgotCiAgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gW21fYXZQbGF5ZXJJdGVtLmdldCgp
IGN1cnJlbnRUaW1lXTsKIAogICAgIGlmICghW21fdmlkZW9PdXRwdXQuZ2V0KCkgaGFzTmV3UGl4
ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZV0pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9P
dXRwdXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUgaXRlbVRp
bWVGb3JEaXNwbGF5Om5pbF0pOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4gMDsK
LQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0gICAgLy8gQ3JlYXRlIGEgVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvbiwgaWYgbmVjZXNzYXJ5LCBhcyB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRpbWVseSBkZWxp
dmVyeSBvZiBBUkdCIHBpeGVscy4KLSAgICBpZiAoIW1fcGl4ZWxUcmFuc2ZlclNlc3Npb24pIHsK
LSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNzaW9uID0gMDsKLSAgICAgICAg
VlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmc2Vzc2lv
bik7Ci0gICAgICAgIG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24gPSBhZG9wdENGKHNlc3Npb24pOwot
ICAgIH0KLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyOwotICAgIENWUGl4ZWxC
dWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGJ1
ZmZlci5nZXQoKSksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoYnVmZmVyLmdldCgpKSwga0NWUGl4
ZWxGb3JtYXRUeXBlXzMyQkdSQSwgMCwgJm91dHB1dEJ1ZmZlcik7Ci0gICAgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV9waXhlbFRyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgYnVm
ZmVyLmdldCgpLCBvdXRwdXRCdWZmZXIpOwotICAgIGJ1ZmZlciA9IGFkb3B0Q0Yob3V0cHV0QnVm
ZmVyKTsKLSNlbmRpZgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBkdXJhdGlvbiA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7Ci0gICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIoJXAp
IC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoZHVyYXRpb24pKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICByZXR1cm4g
YWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpj
dXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgp
CkBAIC0yMjY5LDQzICsyMjAzLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAgICByZXR1cm4gW21fdmlk
ZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9hdlBsYXllckl0ZW0gY3Vy
cmVudFRpbWVdXTsKIH0KIAotc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxCdWZmZXJHZXRCeXRl
UG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19S
ZWFkT25seSk7Ci0gICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhwaXhlbEJ1
ZmZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJD
YWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZl
ckxvY2tfUmVhZE9ubHkpOwotfQotCi1zdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUlu
Zm9DYWxsYmFjayh2b2lkKiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDRlJlbGVhc2Uo
cGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCi17Ci0gICAg
Ly8gcGl4ZWxCdWZmZXIgd2lsbCBiZSBvZiB0eXBlIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEu
Ci0gICAgQVNTRVJUKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIp
ID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpOwotCi0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQ
aXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQ
aXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVzUGVyUm93
ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3Qg
Ynl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShwaXhlbEJ1ZmZlcik7Ci0gICAg
Q0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtD
R0ltYWdlQWxwaGFGaXJzdDsKLQotICAgIENGUmV0YWluKHBpeGVsQnVmZmVyKTsgLy8gQmFsYW5j
ZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFj
a3MuCi0gICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3Mg
PSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVy
UmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0Nh
bGxiYWNrIH07Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFk
b3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QocGl4ZWxCdWZmZXIsIGJ5dGVMZW5ndGgs
ICZwcm92aWRlckNhbGxiYWNrcykpOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0
ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCks
IGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBOVUxMLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50
ZW50RGVmYXVsdCkpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnVwZGF0ZUxhc3RJbWFnZSgpCiB7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKQEAgLTIzMTMsOCArMjIxMCwyNCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFn
ZSgpCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6aXRlbVRpbWVG
b3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUgcGl4ZWwgYnVmZmVyCiAgICAgLy8gZm9y
IHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBiZWVuIHJldHJpZXZlZC4gSW4gdGhpcyBj
YXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55KQogICAgIC8vIHNob3VsZCBiZSBkaXNw
bGF5ZWQuCi0gICAgaWYgKHBpeGVsQnVmZmVyKQotICAgICAgICBtX2xhc3RJbWFnZSA9IGNyZWF0
ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoIXBpeGVs
QnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXIpIHsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3JtYXRUeXBlXzMy
QkdSQSkgfTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6bWFrZV91bmlx
dWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzKTsK
KyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdlID0gbV9waXhl
bEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIu
Z2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVwKSAtIGNyZWF0
aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0
aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA1LDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdMSW1hZ2UoKQog
ICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091dHB1dCBjb3B5
UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmls
XSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkg
ZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVtVG9TdHJp
bmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7Ci0gICAgICAg
IHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4KSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDMyRl9T
VEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19JTlRFR0VS
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX1NU
RU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVCkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRURf
SU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMy
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOF9T
Tk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
MTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOEkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZJ
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVHRVIpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9O
RU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5kaWYKLSAgICB9
Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKLQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBsYXRmb3JtM0RP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYgKGZsaXBZIHx8
IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzIwLDIxIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBMQVRGT1JNKElP
UykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0g
ICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5HTFRleHR1cmVD
YWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4
dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOwotI2VuZGlm
Ci0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0Q0YoY2FjaGUp
OwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChtX2xh
c3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxscHRyOwotICAg
IGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdl
dCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRl
b1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdM
RVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwot
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0dXJl
R2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0j
ZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsK
LSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRl
eHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0dXJlQ2FjaGUu
Z2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZpZGVvVGV4dHVy
ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJl
UmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwotICAgIFBsYXRm
b3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5hbWUodmlk
ZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9w
ZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRpZgotCi0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtU
aGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
ICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2Vsc2UKLSAg
ICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2VuZGlmCi0g
ICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJuYWxGb3Jt
YXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01hcCgpW2lu
dGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3RyaW5nTWFw
KClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJlICYgZnJh
bWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5nIHRoZSB2
aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAgICBHQzNEaW50
IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKLSAgICBj
b250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9C
SU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+YmluZFRleHR1
cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBjb250ZXh0LT50
ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAg
ICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFN
UF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZyYW1lYnVmZmVy
IG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnkuCi0gICAgUGxh
dGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZl
cigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9t
IHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBjb250ZXh0LT5i
aW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIHJlYWRG
cmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9yeSBmb3Ig
dGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVy
ZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29udGV4
dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURH
RSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxscHRyKTsK
LQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZmZXIuCi0g
ICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURf
RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9U
ZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBHQzNEZW51bSBz
dGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29udGV4dDNE
OjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8g
Q29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVzIHRoZSB2aWRl
byB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+Y29weVRleElt
YWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAgbV90ZXh0dXJl
Q2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAgaWYgKCFt
X3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICAv
LyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4K
LSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVyZSk7Ci0g
ICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1F
QlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENWT3BlbkdMVGV4
dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVGcm9tSW1hZ2Uo
bV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0
ZXIgb3Vyc2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1
ZmZlcik7CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1Rl
eHR1cmVDb3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29u
dGV4dCk7CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1f
dmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlk
ZW9UZXh0dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJn
ZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhh
LCBmbGlwWSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ4ODI4YzNiOThlY2Y2OWY1ZjdhYzk0NTBmZDM5MWU1
ODJmMzM0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCIKKworI2lmIFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVv
L0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9vbGJv
eCkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVX
aXRoQXR0cmlidXRlcywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmKiBjb25mb3Jt
ZXJPdXQpLCAoYWxsb2NhdG9yLCBhdHRyaWJ1dGVzLCBjb25mb3JtZXJPdXQpKTsKK1NPRlRfTElO
SyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhlbEJ1
ZmZlciwgQm9vbGVhbiwgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBp
eGVsQnVmZmVyUmVmIHBpeEJ1ZiksIChjb25mb3JtZXIsIHBpeEJ1ZikpCitTT0ZUX0xJTksoVmlk
ZW9Ub29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVmZmVy
LCBPU1N0YXR1cywgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVs
QnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQm9vbGVhbiBlbnN1cmVNb2RpZmlhYmxlLCBDVlBpeGVs
QnVmZmVyUmVmKiBjb25mb3JtZWRCdWZmZXJPdXQpLCAoY29uZm9ybWVyLCBzb3VyY2VCdWZmZXIs
IGVuc3VyZU1vZGlmaWFibGUsIGNvbmZvcm1lZEJ1ZmZlck91dCkpCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVihD
RkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcykKK3sKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVy
UmVmIGNvbmZvcm1lciA9IG51bGxwdHI7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0
ZVdpdGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3Jt
ZXIpOworICAgIEFTU0VSVChjb25mb3JtZXIpOworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9w
dENGKGNvbmZvcm1lcik7Cit9CisKK3N0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBD
VlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxv
Y2tfUmVhZE9ubHkpOworICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4
ZWxCdWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2lu
dGVyQ2FsbGJhY2sodm9pZCogaW5mbywgY29uc3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwor
ICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxC
dWZmZXJMb2NrX1JlYWRPbmx5KTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVh
c2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxl
YXNlKHBpeGVsQnVmZmVyKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYg
cmF3QnVmZmVyKQoreworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyBy
YXdCdWZmZXIgfTsKKyAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVm
ZmVyLmdldCgpKTsKKyAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChi
dWZmZXIuZ2V0KCkpOworCisgICAgaWYgKCFWVFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3Jt
YW50UGl4ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgewor
ICAgICAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAg
IE9TU3RhdHVzIHN0YXR1cyA9IFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4
ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91
dHB1dEJ1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZl
cikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENG
KG91dHB1dEJ1ZmZlcik7CisgICAgfQorCisgICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBr
Q0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXpl
X3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgp
KTsKKyAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZm
ZXIuZ2V0KCkpOworCisgICAgQ0ZSZXRhaW4oYnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkg
Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisg
ICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAs
IENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFz
ZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNr
IH07CisgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0Yo
Q0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QoYnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJv
dmlkZXJDYWxsYmFja3MpKTsKKworICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lk
dGgsIGhlaWdodCwgOCwgMzIsIGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRt
YXBJbmZvLCBwcm92aWRlci5nZXQoKSwgbnVsbHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVu
dERlZmF1bHQpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MjY1MmRkN2IyOWIwMmU1MjUyYjQ2YWJjYWIzMzVjNzQyMjUxMzhlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gK
KworI2lmIFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZVZUUGl4ZWxCdWZmZXJDb25mb3JtZXIqIFZUUGl4ZWxCdWZm
ZXJDb25mb3JtZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0ltYWdlUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHsKK3B1YmxpYzoKKyAgICBQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKTsKKyAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1
ZmZlclJlZik7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPFZUUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJSZWY+IG1fcGl4ZWxDb25mb3JtZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBVU0UoVklERU9U
T09MQk9YKQorCisjZW5kaWYgLy8gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMmFhY2IyNjkyNDY2ZmM1NTk3YTYxZDkzNTc1ZjUwYjE0YTQ4ZDc5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlQ2Fj
aGVDVl9oCisjZGVmaW5lIFRleHR1cmVDYWNoZUNWX2gKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
dHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENW
SW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVy
UmVmIENWT3BlbkdMRVNUZXh0dXJlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTFRleHR1
cmVDYWNoZSAqQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWY7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CisKK2NsYXNzIFRleHR1cmVD
YWNoZUNWIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNo
ZUNWPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7Cisg
ICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisgICAg
dHlwZWRlZiBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0
eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbmRpZgorCisgICAgVGV4
dHVyZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmLCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlw
ZT4mJik7CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHRleHR1cmVGcm9tSW1hZ2UoQ1ZJ
bWFnZUJ1ZmZlclJlZiwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNE
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlKTsKKyAg
ICBHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsg
fQorCitwcml2YXRlOgorICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAg
IFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5
PFRleHR1cmVDYWNoZUNWPiBtX3dlYWtQdHJGYWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8g
VGV4dHVyZUNhY2hlQ1ZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTA5MGM2Yjc3YzI1NmZkNGNl
Mzg0YjRhOTI5M2RjZjk4ZTg1ODczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hl
Q1YuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3Jl
VmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0
cjxUZXh0dXJlQ2FjaGVDVj4gVGV4dHVyZUNhY2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQz
RCYgY29udGV4dCkKK3sKKyAgICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVy
biBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhl
bEZvcm1hdChjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZj
YWNoZSk7CisjZW5kaWYKKyAgICBpZiAoZXJyb3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ry
b25nQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxU
ZXh0dXJlQ2FjaGVDVj4oY29udGV4dCwgV1RGTW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0
dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJl
dGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYmIGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgLCBtX2NhY2hlKGNhY2hlKQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQor
eworfQorCitSZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2Fj
aGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQnVmZmVyUmVmIGltYWdlLCBHQzNEZW51bSBv
dXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUpCit7CisgICAgVGV4dHVyZVR5cGUgYmFyZVZpZGVv
VGV4dHVyZSA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHNpemVfdCB3aWR0aCA9
IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENW
T3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCBvdXRwdXRUeXBlLCBpbnRlcm5h
bEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRlb1Rl
eHR1cmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KG91dHB1dFRhcmdldCk7CisgICAgVU5VU0VEX1BBUkFNKGxldmVsKTsKKyAgICBVTlVTRURfUEFS
QU0oaW50ZXJuYWxGb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOworICAgIFVOVVNF
RF9QQVJBTSh0eXBlKTsKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1
cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNo
ZS5nZXQoKSwgaW1hZ2UsIG51bGxwdHIsICZiYXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4
dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4dHVyZSk7CisKKyAgICBhdXRvIHdlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3dlYWtUaGlzXSB7CisgICAgICAgIGlmIChhdXRvIGNh
Y2hlID0gd2Vha1RoaXMtPm1fY2FjaGUuZ2V0KCkpCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAg
ICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbHNlCisgICAg
ICAgICAgICBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbmRpZgorICAg
IH0pOworCisgICAgcmV0dXJuIHZpZGVvVGV4dHVyZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFkMWVhMzljODEwNzA4ZDViYzU5NDY0MDEwZmJjZWY0N2JiNWZj
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgi
CisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0Lmg+Cisj
ZW5kaWYKKworI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBo
aWNzQ29udGV4dDNEJiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBt
X3JlYWRGcmFtZWJ1ZmZlcihjb250ZXh0LmNyZWF0ZUZyYW1lYnVmZmVyKCkpCit7Cit9CisKK1Zp
ZGVvVGV4dHVyZUNvcGllckNWOjp+VmlkZW9UZXh0dXJlQ29waWVyQ1YoKQoreworICAgIG1fY29u
dGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9yZWFkRnJhbWVidWZmZXIpOworfQorCisjaWYgIUxP
R19ESVNBQkxFRAorCisjZGVmaW5lIFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCitzdGF0aWMgc3Rk
OjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFw
OworICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgeworICAgICAgICBzdGQ6Om1hcDx1aW50MzJf
dCwgY29uc3QgY2hhcio+IHN0cmluZ01hcDsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhV
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOCkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRzhVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SRzhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkczMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9T
UkdCOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
OCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9B
TFBIQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
QTQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBf
QTIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhf
Q09NUE9ORU5UMTYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfREVQVEhfQ09NUE9ORU5UMjQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMjRfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRUQpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdfSU5URUdFUikpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRf
NV82XzUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfU0hPUlRfNF80XzRfNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZVEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRf
OCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8z
Ml9VTlNJR05FRF9JTlRfMjRfOF9SRVYpKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBG
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJGKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2SSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMlVJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjVfQTEpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQV9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8x
MUZfUkVWKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VO
U0lHTkVEX0lOVF81XzlfOV85X1JFVikpOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiBtYXAu
Z2V0KCk7Cit9CisKKyNlbmRpZgorCitib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRUZXh0dXJlLCBzaXpl
X3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwg
R0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wgZmxpcFkpCit7CisgICAgaWYgKGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaW5wdXRUZXh0dXJlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgUGxhdGZvcm0zRE9iamVjdCB2
aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7
CisgICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRU
YXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbHNlCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1Rl
eHR1cmVOYW1lID0gQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdD
M0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldChpbnB1
dFRleHR1cmUpOworI2VuZGlmCisKKyAgICBMT0coTWVkaWEsICJWaWRlb1RleHR1cmVDb3BpZXJD
Vjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0
OiAlcywgZm9ybWF0OiAlcywgdHlwZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRl
cm5hbEZvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgp
W3R5cGVdKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1l
YnVmZmVyIG5hbWVzIHNvIHdlIGNhbiByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlk
ZW8gdGV4dHVyZS4KKyAgICBHQzNEaW50IGJvdW5kVGV4dHVyZSA9IDA7CisgICAgR0MzRGludCBi
b3VuZFJlYWRGcmFtZWJ1ZmZlciA9IDA7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBt
X2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVS
X0JJTkRJTkcsICZib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICBtX2NvbnRleHQtPmJpbmRU
ZXh0dXJlKHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSk7CisgICAgbV9jb250
ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFS
KTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0
M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9U
LCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisKKyAgICAvLyBNYWtlIHRoYXQg
ZnJhbWVidWZmZXIgdGhlIHJlYWQgc291cmNlIGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3
aWxsIHJlYWQgdm94ZWxzLgorICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNz
Q29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBtX3JlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICAv
LyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgor
ICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsK
KyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
MkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4
dDNEOjpMSU5FQVIpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFw
aGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2Nv
bnRleHQtPnRleEltYWdlMkREaXJlY3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7CisKKyAgICAvLyBB
dHRhY2ggdGhlIHZpZGVvIHRleHR1cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgorICAgIG1fY29udGV4
dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZG
RVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9UZXh0dXJlVGFy
Z2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7CisKKyAgICBHQzNEZW51bSBzdGF0dXMgPSBt
X2NvbnRleHQtPmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURf
RlJBTUVCVUZGRVIpOworICAgIGlmIChzdGF0dXMgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1F
QlVGRkVSX0NPTVBMRVRFKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDb3B5IHRl
eHR1cmUgZnJvbSB0aGUgcmVhZCBmcmFtZWJ1ZmZlciAoYW5kIHRodXMgdGhlIHZpZGVvIHRleHR1
cmUpIHRvIHRoZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmNvcHlUZXhJbWFnZTJE
KG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0
LCAwKTsKKworICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHRleHR1cmUgYW5kIGZyYW1lYnVm
ZmVyIGJpbmRpbmdzLgorICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBi
b3VuZFRleHR1cmUpOworICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICBy
ZXR1cm4gIW1fY29udGV4dC0+Z2V0RXJyb3IoKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1Yu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNWY1MTJmODlhY2M0NWZhNWNjNGQ2YjdiYzNlMGY4ZWNlMzJkOWQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlk
ZW9UZXh0dXJlQ29waWVyQ1YuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCisjZGVmaW5lIFZpZGVvVGV4dHVyZUNvcGllckNWX2gK
KworI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZC
dWZmZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVu
R0xUZXh0dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJl
UmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNW
IHsKK3B1YmxpYzoKKyAgICBWaWRlb1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYp
OworICAgIH5WaWRlb1RleHR1cmVDb3BpZXJDVigpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAg
IHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5
cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2VuZGlmCisKKyAgICBib29s
IGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlVHlwZSwgc2l6ZV90IHdp
ZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0Rl
bnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBi
b29sIGZsaXBZKTsKKworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4g
bV9jb250ZXh0LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNE
PiBtX2NvbnRleHQ7CisgICAgUGxhdGZvcm0zRE9iamVjdCBtX3JlYWRGcmFtZWJ1ZmZlcjsKK307
CisKK30KKworI2VuZGlmIC8vIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5tbQppbmRleCAwNzc4MzVkNWUyMTI5ZWU5ZWVmZjhkNDBhMWQ0NTA3MTk4NGFj
NTYxLi45NzY4NGYyN2Q0ZDYxNDQwNWVjZjZmNzBlOTdkNzM1NzcwYzIxOGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC01Miw3ICs1Miw2IEBAIHR5cGVkZWYgQVZDYXB0dXJl
VmlkZW9EYXRhT3V0cHV0IEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGU7CiB0eXBlZGVmIEFW
Q2FwdHVyZVZpZGVvUHJldmlld0xheWVyIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyVHlwZTsK
IAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCi1TT0ZUX0xJTktf
RlJBTUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlQ29ubmVjdGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24s
IEFWQ2FwdHVyZURldmljZSkKQEAgLTgxLDE3ICs4MCw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFW
Rm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldExvdywgTlNTdHJpbmcgKikKICNkZWZp
bmUgQVZDYXB0dXJlU2Vzc2lvblByZXNldDM1MngyODggZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNl
dDM1MngyODgoKQogI2RlZmluZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93IGdldEFWQ2FwdHVy
ZVNlc3Npb25QcmVzZXRMb3coKQogCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
R2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6
ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBp
eGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxh
Z3MpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNz
LCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3Mg
bG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotCi1TT0ZUX0xJTktfUE9JTlRF
UihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAq
KQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1
ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2Fw
dHVyZURldmljZVR5cGUqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272515</attachid>
            <date>2016-02-29 13:52:04 -0800</date>
            <delta_ts>2016-02-29 14:07:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229135148.patch</filename>
            <type>text/plain</type>
            <size>89666</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
NTc5ZWU3ZTc2Y2FlYWQyMmI1ZDI0ZGVkODdhZDNjZGRmNWYxMDMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTYgKzM0NywxMyBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAogI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1f
cGl4ZWxCdWZmZXJDb25mb3JtZXI7CiAjZW5kaWYKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzM2VhYzFkOTdjYTM4
ZWJkZTc3MDA5NDRlYjkwYWZkZjI3YWI1ZDcuLmIxNzYwMTlkMjViY2I4Y2ViMTdlZDgxNGMyZTc2
YzRjZGY5ZjhiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNiArNTMsNyBAQAog
I2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKKyNp
bXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmln
aW4uaCIKQEAgLTYwLDcgKzYxLDkgQEAKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJU
ZXh0RW5jb2RpbmcuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1w
b3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgogI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCAiVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIgog
I2ltcG9ydCAiV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlQ0FM
YXllckV4dHJhcy5oIgpAQCAtMTA0LDE2ICsxMDcsMTMgQEAKICNpZiBVU0UoVklERU9UT09MQk9Y
KQogI2ltcG9ydCA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogI2ltcG9ydCA8VmlkZW9Ub29sYm94
L1ZpZGVvVG9vbGJveC5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNlbmRpZgog
CiAjaWYgVVNFKENGTkVUV09SSykKICNpbmNsdWRlICJDRk5TVVJMQ29ubmVjdGlvblNQSS5oIgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0
Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIHN0ZCB7CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXRlcmF0
b3JfdHJhaXRzPEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uQVZG
T2JqQz4+OjppdGVyYXRvcj4gewogICAgIHR5cGVkZWYgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Vs
ZWN0aW9uT3B0aW9uQVZGT2JqQz4gdmFsdWVfdHlwZTsKQEAgLTE0OSwyNSArMTQ5LDYgQEAgdHlw
ZWRlZiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25UeXBlOwog
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoQ29yZUltYWdlKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05B
TChDb3JlVmlkZW8pCi0KLSNpZiBVU0UoVklERU9UT09MQk9YKQotU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTChWaWRlb1Rvb2xib3gpCi0jZW5kaWYKLQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
LCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3Qs
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVv
LCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tG
bGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJl
c3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFn
cyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLSNpZiBVU0UoVklERU9U
T09MQk9YKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIFZUUGl4ZWxUcmFuc2Zl
clNlc3Npb25SZWYgKnBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgcGl4ZWxU
cmFuc2ZlclNlc3Npb25PdXQpKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UsIE9TU3RhdHVzLCAoVlRQaXhlbFRyYW5zZmVyU2Vzc2lv
blJlZiBzZXNzaW9uLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZl
clJlZiBkZXN0aW5hdGlvbkJ1ZmZlciksIChzZXNzaW9uLCBzb3VyY2VCdWZmZXIsIGRlc3RpbmF0
aW9uQnVmZmVyKSkKLSNlbmRpZgogCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlBs
YXllcikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbSkKQEAgLTE5
NSw3ICsxNzYsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRS
ZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihB
VkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QsIE5TU3RyaW5nICop
CiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNp
emVBc3BlY3RGaWxsLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgTlNTdHJpbmcg
KikKIAogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlNTdHJpbmcgKikKIApAQCAtMjIyLDcgKzIwMiw2
IEBAIFNPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENs
aWVudEJ1bmRsZUlkZW50aWZpZXJLZXksIE5TCiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlS
ZXNpemVBc3BlY3QgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCgpCiAjZGVmaW5l
IEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIGdldEFWTGF5ZXJWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3RGaWxsKCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZSBn
ZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplKCkKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQogCiAj
aWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogdHlwZWRlZiBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZTsKQEAgLTI5MSwyNCAr
MjcwLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0Qm91bmRO
ZXR3b3JrSW50ZXJmYWNlTmFtZSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZVUkxBc3NldEJvdW5k
TmV0d29ya0ludGVyZmFjZU5hbWUgZ2V0QVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5h
bWUoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBl
YWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywg
ZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91
dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1
dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0
dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQsIEdMZW51
bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3Jl
VmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1
cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcg
KikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxp
dHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlL
ZXkoKQotI2Vsc2UKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVm
IGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1h
dE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBD
Vk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJp
YnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2Fj
aGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJj
ZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmli
dXRlcywgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVD
YWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBD
Vk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xU
ZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdM
VGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNl
T3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVsQnVmZmVy
SU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZW5kaWYKLQogU09GVF9MSU5L
X0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCiBTT0ZUX0xJTktfT1BUSU9OQUwoTWVkaWFUb29sYm94
LCBNVEVuYWJsZUNhcHRpb24yMDE1QmVoYXZpb3IsIEJvb2xlYW4sICgpLCAoKSkKIApAQCAtMjIy
MCwzOSArMjE4MSwxMiBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZQogICAgICAgICBjcmVhdGVW
aWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKIAotI2lmICFMT0dfRElT
QUJMRUQKLSAgICBkb3VibGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSNlbmRpZgotCiAgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gW21fYXZQbGF5ZXJJdGVtLmdldCgp
IGN1cnJlbnRUaW1lXTsKIAogICAgIGlmICghW21fdmlkZW9PdXRwdXQuZ2V0KCkgaGFzTmV3UGl4
ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZV0pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9P
dXRwdXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUgaXRlbVRp
bWVGb3JEaXNwbGF5Om5pbF0pOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4gMDsK
LQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0gICAgLy8gQ3JlYXRlIGEgVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvbiwgaWYgbmVjZXNzYXJ5LCBhcyB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRpbWVseSBkZWxp
dmVyeSBvZiBBUkdCIHBpeGVscy4KLSAgICBpZiAoIW1fcGl4ZWxUcmFuc2ZlclNlc3Npb24pIHsK
LSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNzaW9uID0gMDsKLSAgICAgICAg
VlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmc2Vzc2lv
bik7Ci0gICAgICAgIG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24gPSBhZG9wdENGKHNlc3Npb24pOwot
ICAgIH0KLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyOwotICAgIENWUGl4ZWxC
dWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGJ1
ZmZlci5nZXQoKSksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoYnVmZmVyLmdldCgpKSwga0NWUGl4
ZWxGb3JtYXRUeXBlXzMyQkdSQSwgMCwgJm91dHB1dEJ1ZmZlcik7Ci0gICAgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV9waXhlbFRyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgYnVm
ZmVyLmdldCgpLCBvdXRwdXRCdWZmZXIpOwotICAgIGJ1ZmZlciA9IGFkb3B0Q0Yob3V0cHV0QnVm
ZmVyKTsKLSNlbmRpZgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBkdXJhdGlvbiA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7Ci0gICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIoJXAp
IC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoZHVyYXRpb24pKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICByZXR1cm4g
YWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpj
dXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgp
CkBAIC0yMjY5LDQzICsyMjAzLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAgICByZXR1cm4gW21fdmlk
ZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9hdlBsYXllckl0ZW0gY3Vy
cmVudFRpbWVdXTsKIH0KIAotc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxCdWZmZXJHZXRCeXRl
UG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19S
ZWFkT25seSk7Ci0gICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhwaXhlbEJ1
ZmZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJD
YWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZl
ckxvY2tfUmVhZE9ubHkpOwotfQotCi1zdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUlu
Zm9DYWxsYmFjayh2b2lkKiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDRlJlbGVhc2Uo
cGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCi17Ci0gICAg
Ly8gcGl4ZWxCdWZmZXIgd2lsbCBiZSBvZiB0eXBlIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEu
Ci0gICAgQVNTRVJUKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIp
ID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpOwotCi0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQ
aXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQ
aXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVzUGVyUm93
ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3Qg
Ynl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShwaXhlbEJ1ZmZlcik7Ci0gICAg
Q0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtD
R0ltYWdlQWxwaGFGaXJzdDsKLQotICAgIENGUmV0YWluKHBpeGVsQnVmZmVyKTsgLy8gQmFsYW5j
ZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFj
a3MuCi0gICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3Mg
PSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVy
UmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0Nh
bGxiYWNrIH07Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFk
b3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QocGl4ZWxCdWZmZXIsIGJ5dGVMZW5ndGgs
ICZwcm92aWRlckNhbGxiYWNrcykpOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0
ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCks
IGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBOVUxMLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50
ZW50RGVmYXVsdCkpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnVwZGF0ZUxhc3RJbWFnZSgpCiB7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKQEAgLTIzMTMsOCArMjIxMCwyNCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFn
ZSgpCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6aXRlbVRpbWVG
b3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUgcGl4ZWwgYnVmZmVyCiAgICAgLy8gZm9y
IHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBiZWVuIHJldHJpZXZlZC4gSW4gdGhpcyBj
YXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55KQogICAgIC8vIHNob3VsZCBiZSBkaXNw
bGF5ZWQuCi0gICAgaWYgKHBpeGVsQnVmZmVyKQotICAgICAgICBtX2xhc3RJbWFnZSA9IGNyZWF0
ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoIXBpeGVs
QnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXIpIHsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3JtYXRUeXBlXzMy
QkdSQSkgfTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6bWFrZV91bmlx
dWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzKTsK
KyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdlID0gbV9waXhl
bEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIu
Z2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVwKSAtIGNyZWF0
aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0
aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA1LDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdMSW1hZ2UoKQog
ICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091dHB1dCBjb3B5
UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmls
XSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkg
ZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVtVG9TdHJp
bmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7Ci0gICAgICAg
IHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4KSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDMyRl9T
VEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19JTlRFR0VS
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX1NU
RU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVCkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRURf
SU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMy
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOF9T
Tk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
MTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOEkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZJ
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVHRVIpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9O
RU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5kaWYKLSAgICB9
Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKLQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBsYXRmb3JtM0RP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYgKGZsaXBZIHx8
IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzIwLDIxIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBMQVRGT1JNKElP
UykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0g
ICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5HTFRleHR1cmVD
YWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4
dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOwotI2VuZGlm
Ci0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0Q0YoY2FjaGUp
OwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChtX2xh
c3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxscHRyOwotICAg
IGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdl
dCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRl
b1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdM
RVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwot
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0dXJl
R2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0j
ZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsK
LSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRl
eHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0dXJlQ2FjaGUu
Z2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZpZGVvVGV4dHVy
ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJl
UmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwotICAgIFBsYXRm
b3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5hbWUodmlk
ZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9w
ZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRpZgotCi0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtU
aGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
ICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2Vsc2UKLSAg
ICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2VuZGlmCi0g
ICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJuYWxGb3Jt
YXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01hcCgpW2lu
dGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3RyaW5nTWFw
KClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJlICYgZnJh
bWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5nIHRoZSB2
aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAgICBHQzNEaW50
IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKLSAgICBj
b250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9C
SU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+YmluZFRleHR1
cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBjb250ZXh0LT50
ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAg
ICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFN
UF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZyYW1lYnVmZmVy
IG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnkuCi0gICAgUGxh
dGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZl
cigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9t
IHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBjb250ZXh0LT5i
aW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIHJlYWRG
cmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9yeSBmb3Ig
dGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVy
ZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29udGV4
dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURH
RSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxscHRyKTsK
LQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZmZXIuCi0g
ICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURf
RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9U
ZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBHQzNEZW51bSBz
dGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29udGV4dDNE
OjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8g
Q29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVzIHRoZSB2aWRl
byB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+Y29weVRleElt
YWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAgbV90ZXh0dXJl
Q2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAgaWYgKCFt
X3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICAv
LyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4K
LSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVyZSk7Ci0g
ICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1F
QlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENWT3BlbkdMVGV4
dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVGcm9tSW1hZ2Uo
bV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0
ZXIgb3Vyc2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1
ZmZlcik7CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1Rl
eHR1cmVDb3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29u
dGV4dCk7CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1f
dmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlk
ZW9UZXh0dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJn
ZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhh
LCBmbGlwWSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ4ODI4YzNiOThlY2Y2OWY1ZjdhYzk0NTBmZDM5MWU1
ODJmMzM0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCIKKworI2lmIFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVv
L0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9vbGJv
eCkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVX
aXRoQXR0cmlidXRlcywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmKiBjb25mb3Jt
ZXJPdXQpLCAoYWxsb2NhdG9yLCBhdHRyaWJ1dGVzLCBjb25mb3JtZXJPdXQpKTsKK1NPRlRfTElO
SyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhlbEJ1
ZmZlciwgQm9vbGVhbiwgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBp
eGVsQnVmZmVyUmVmIHBpeEJ1ZiksIChjb25mb3JtZXIsIHBpeEJ1ZikpCitTT0ZUX0xJTksoVmlk
ZW9Ub29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVmZmVy
LCBPU1N0YXR1cywgKFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVs
QnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQm9vbGVhbiBlbnN1cmVNb2RpZmlhYmxlLCBDVlBpeGVs
QnVmZmVyUmVmKiBjb25mb3JtZWRCdWZmZXJPdXQpLCAoY29uZm9ybWVyLCBzb3VyY2VCdWZmZXIs
IGVuc3VyZU1vZGlmaWFibGUsIGNvbmZvcm1lZEJ1ZmZlck91dCkpCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVihD
RkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcykKK3sKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVy
UmVmIGNvbmZvcm1lciA9IG51bGxwdHI7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0
ZVdpdGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3Jt
ZXIpOworICAgIEFTU0VSVChjb25mb3JtZXIpOworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9w
dENGKGNvbmZvcm1lcik7Cit9CisKK3N0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBD
VlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxv
Y2tfUmVhZE9ubHkpOworICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4
ZWxCdWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2lu
dGVyQ2FsbGJhY2sodm9pZCogaW5mbywgY29uc3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwor
ICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxC
dWZmZXJMb2NrX1JlYWRPbmx5KTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVh
c2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxl
YXNlKHBpeGVsQnVmZmVyKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYg
cmF3QnVmZmVyKQoreworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyBy
YXdCdWZmZXIgfTsKKyAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVm
ZmVyLmdldCgpKTsKKyAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChi
dWZmZXIuZ2V0KCkpOworCisgICAgaWYgKCFWVFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3Jt
YW50UGl4ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgewor
ICAgICAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAg
IE9TU3RhdHVzIHN0YXR1cyA9IFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4
ZWxCdWZmZXIobV9waXhlbENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91
dHB1dEJ1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZl
cikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENG
KG91dHB1dEJ1ZmZlcik7CisgICAgfQorCisgICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBr
Q0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXpl
X3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgp
KTsKKyAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZm
ZXIuZ2V0KCkpOworCisgICAgQ0ZSZXRhaW4oYnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkg
Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisg
ICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAs
IENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFz
ZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNr
IH07CisgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0Yo
Q0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QoYnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJv
dmlkZXJDYWxsYmFja3MpKTsKKworICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lk
dGgsIGhlaWdodCwgOCwgMzIsIGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRt
YXBJbmZvLCBwcm92aWRlci5nZXQoKSwgbnVsbHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVu
dERlZmF1bHQpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MjY1MmRkN2IyOWIwMmU1MjUyYjQ2YWJjYWIzMzVjNzQyMjUxMzhlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gK
KworI2lmIFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZVZUUGl4ZWxCdWZmZXJDb25mb3JtZXIqIFZUUGl4ZWxCdWZm
ZXJDb25mb3JtZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0ltYWdlUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHsKK3B1YmxpYzoKKyAgICBQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKTsKKyAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1
ZmZlclJlZik7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPFZUUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJSZWY+IG1fcGl4ZWxDb25mb3JtZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBVU0UoVklERU9U
T09MQk9YKQorCisjZW5kaWYgLy8gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNzk2ZGQ3NmU5M2I3NmQwMzQ2ZjczOWQyY2UzNDUyMTE3Mjc4NjRjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlQ2Fj
aGVDVl9oCisjZGVmaW5lIFRleHR1cmVDYWNoZUNWX2gKKworI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMzRC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIq
IENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0
dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJlUmVmOwor
dHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTFRleHR1cmVDYWNoZSAqQ1ZPcGVuR0xUZXh0dXJlQ2Fj
aGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhp
Y3NDb250ZXh0M0Q7CisKK2NsYXNzIFRleHR1cmVDYWNoZUNWIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0
M0QmKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJl
Q2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7CisgICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVy
ZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiBDVk9wZW5HTFRleHR1cmVDYWNo
ZVJlZiAgVGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBU
ZXh0dXJlVHlwZTsKKyNlbmRpZgorCisgICAgVGV4dHVyZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0
M0QmLCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4mJik7CisKKyAgICBSZXRhaW5QdHI8VGV4
dHVyZVR5cGU+IHRleHR1cmVGcm9tSW1hZ2UoQ1ZJbWFnZUJ1ZmZlclJlZiwgR0MzRGVudW0gb3V0
cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZjxHcmFw
aGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBl
PiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBtX3dlYWtQdHJG
YWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZTA5MGM2Yjc3YzI1NmZkNGNlMzg0YjRhOTI5M2RjZjk4ZTg1ODczCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVy
ZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4gVGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAgICBUZXh0dXJl
Q2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisgICAgQ1ZSZXR1
cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRy
LCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNh
Y2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAgICBpZiAoZXJy
b3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29udGV4dCwgV1RG
TW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1Yo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYm
IGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hlKGNhY2hlKQor
ICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8VGV4dHVyZUNh
Y2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVklt
YWdlQnVmZmVyUmVmIGltYWdlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWws
IEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUp
Cit7CisgICAgVGV4dHVyZVR5cGUgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7CisjaWYgUExB
VEZPUk0oSU9TKQorICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFn
ZSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOwor
ICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdl
LCBudWxscHRyLCBvdXRwdXRUeXBlLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9y
bWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRlb1RleHR1cmUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG91dHB1dFRhcmdldCk7CisgICAgVU5VU0VE
X1BBUkFNKGxldmVsKTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxGb3JtYXQpOworICAgIFVO
VVNFRF9QQVJBTShmb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICBpZiAoa0NW
UmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1h
Z2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5nZXQoKSwgaW1hZ2UsIG51bGxwdHIsICZi
YXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBS
ZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4
dHVyZSk7CisKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3dl
YWtUaGlzXSB7CisgICAgICAgIGlmIChhdXRvIGNhY2hlID0gd2Vha1RoaXMtPm1fY2FjaGUuZ2V0
KCkpCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZUZsdXNoKGNhY2hlLCAwKTsKKyNlbHNlCisgICAgICAgICAgICBDVk9wZW5HTFRleHR1cmVDYWNo
ZUZsdXNoKGNhY2hlLCAwKTsKKyNlbmRpZgorICAgIH0pOworCisgICAgcmV0dXJuIHZpZGVvVGV4
dHVyZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMWVhMzlj
ODEwNzA4ZDViYzU5NDY0MDEwZmJjZWY0N2JiNWZjYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAK
QEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKKyNpZiBQTEFURk9STShJT1MpCisjaW5j
bHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0Lmg+CisjZW5kaWYKKworI2luY2x1ZGUgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVmlkZW9UZXh0dXJlQ29waWVy
Q1Y6OlZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KQorICAg
IDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3JlYWRGcmFtZWJ1ZmZlcihjb250ZXh0LmNy
ZWF0ZUZyYW1lYnVmZmVyKCkpCit7Cit9CisKK1ZpZGVvVGV4dHVyZUNvcGllckNWOjp+VmlkZW9U
ZXh0dXJlQ29waWVyQ1YoKQoreworICAgIG1fY29udGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9y
ZWFkRnJhbWVidWZmZXIpOworfQorCisjaWYgIUxPR19ESVNBQkxFRAorCisjZGVmaW5lIFNUUklO
R0lGWV9QQUlSKGUpIGUsICNlCitzdGF0aWMgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIq
PiYgZW51bVRvU3RyaW5nTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpt
YXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFwOworICAgIGlmIChtYXAuZ2V0KCkuZW1wdHko
KSkgeworICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+IHN0cmluZ01hcDsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZGKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUjE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
RzE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMy
RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZVSSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2SSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMyVUkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOCkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOCkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9BTFBIQTgpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMTYpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMjQpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5U
MzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRI
MjRfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRUQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9ERVBUSF9TVEVOQ0lMKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV82XzUpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNF80XzRfNCkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81
XzVfNV8xKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZ
VEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9G
TE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9B
VCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05F
RF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9T
SE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJ
R05FRF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
SU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRfOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYpKTsK
KworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IzMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQThfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCQTE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JBMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkE4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQThJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjEwX0EyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkEzMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjVfQTEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkcpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
QV9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIX0NPTVBPTkVOVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF81XzlfOV85X1JFVikpOwor
I2VuZGlmCisgICAgfQorICAgIHJldHVybiBtYXAuZ2V0KCk7Cit9CisKKyNlbmRpZgorCitib29s
IFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUo
VGV4dHVyZVR5cGUgaW5wdXRUZXh0dXJlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIFBs
YXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCit7CisgICAgaWYg
KGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghaW5wdXRUZXh0dXJlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xF
U1RleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7CisgICAgR0MzRGVudW0gdmlkZW9UZXh0dXJl
VGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbHNl
CisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xUZXh0dXJl
R2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9
IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldChpbnB1dFRleHR1cmUpOworI2VuZGlmCisKKyAgICBM
T0coTWVkaWEsICJWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAlcywgZm9ybWF0OiAlcywgdHlwZTogJXMi
LCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5hbEZvcm1hdF0sIGVudW1Ub1N0cmluZ01h
cCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5cGVdKTsKKworICAgIC8vIFNhdmUgdGhl
IG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVmZmVyIG5hbWVzIHNvIHdlIGNhbiByZS1i
aW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8gdGV4dHVyZS4KKyAgICBHQzNEaW50IGJv
dW5kVGV4dHVyZSA9IDA7CisgICAgR0MzRGludCBib3VuZFJlYWRGcmFtZWJ1ZmZlciA9IDA7Cisg
ICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5E
SU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZFJlYWRGcmFtZWJ1
ZmZlcik7CisKKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKHZpZGVvVGV4dHVyZVRhcmdldCwg
dmlkZW9UZXh0dXJlTmFtZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklM
VEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFt
ZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1f
Y29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBf
VE9fRURHRSk7CisKKyAgICAvLyBNYWtlIHRoYXQgZnJhbWVidWZmZXIgdGhlIHJlYWQgc291cmNl
IGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3aWxsIHJlYWQgdm94ZWxzLgorICAgIG1fY29u
dGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVS
LCBtX3JlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1l
bW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgorICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUo
b3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRl
cmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgIG1fY29udGV4
dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURH
RSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4
dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkREaXJlY3Qob3V0
cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGZvcm1h
dCwgdHlwZSwgbnVsbHB0cik7CisKKyAgICAvLyBBdHRhY2ggdGhlIHZpZGVvIHRleHR1cmUgdG8g
dGhlIGZyYW1lYnVmZmVyLgorICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9BVFRBQ0hNRU5UMCwgdmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZl
bCk7CisKKyAgICBHQzNEZW51bSBzdGF0dXMgPSBtX2NvbnRleHQtPmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIpOworICAgIGlmIChzdGF0
dXMgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDb3B5IHRleHR1cmUgZnJvbSB0aGUgcmVhZCBmcmFtZWJ1
ZmZlciAoYW5kIHRodXMgdGhlIHZpZGVvIHRleHR1cmUpIHRvIHRoZSBvdXRwdXQgdGV4dHVyZS4K
KyAgICBtX2NvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVy
bmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKKworICAgIC8vIFJlc3RvcmUgdGhl
IHByZXZpb3VzIHRleHR1cmUgYW5kIGZyYW1lYnVmZmVyIGJpbmRpbmdzLgorICAgIG1fY29udGV4
dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBib3VuZFRleHR1cmUpOworICAgIG1fY29udGV4
dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBi
b3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICByZXR1cm4gIW1fY29udGV4dC0+Z2V0RXJyb3Io
KTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWY1MTJmODlhY2M0
NWZhNWNjNGQ2YjdiYzNlMGY4ZWNlMzJkOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCisj
ZGVmaW5lIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKKworI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0
eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmOwordHlwZWRlZiBDVklt
YWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJlUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWIHsKK3B1YmxpYzoKKyAgICBWaWRlb1RleHR1
cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYpOworICAgIH5WaWRlb1RleHR1cmVDb3BpZXJD
VigpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRl
eHR1cmVUeXBlOworI2VuZGlmCisKKyAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZShUZXh0dXJlVHlwZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9y
bTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBs
ZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0g
dHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKKworICAgIEdyYXBoaWNz
Q29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisKK3ByaXZh
dGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CisgICAgUGxhdGZvcm0z
RE9iamVjdCBtX3JlYWRGcmFtZWJ1ZmZlcjsKK307CisKK30KKworI2VuZGlmIC8vIFZpZGVvVGV4
dHVyZUNvcGllckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCAwNzc4MzVk
NWUyMTI5ZWU5ZWVmZjhkNDBhMWQ0NTA3MTk4NGFjNTYxLi45NzY4NGYyN2Q0ZDYxNDQwNWVjZjZm
NzBlOTdkNzM1NzcwYzIxOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC01
Miw3ICs1Miw2IEBAIHR5cGVkZWYgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0IEFWQ2FwdHVyZVZp
ZGVvRGF0YU91dHB1dFR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyIEFW
Q2FwdHVyZVZpZGVvUHJldmlld0xheWVyVHlwZTsKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJ
T05BTChBVkZvdW5kYXRpb24pCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENvcmVWaWRl
bykKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQ29ubmVjdGlvbikK
IFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSkKQEAgLTgxLDE3
ICs4MCw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lv
blByZXNldExvdywgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblByZXNldDM1
MngyODggZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNldDM1MngyODgoKQogI2RlZmluZSBBVkNhcHR1
cmVTZXNzaW9uUHJlc2V0TG93IGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3coKQogCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRl
bywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVm
ZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciks
IChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0
ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZl
cikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzLCBD
VlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9j
a0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBs
b2NrRmxhZ3MpKQotCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVy
UGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGUqIGRldmljZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJh
aW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272517</attachid>
            <date>2016-02-29 14:07:26 -0800</date>
            <delta_ts>2016-02-29 14:48:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229140710.patch</filename>
            <type>text/plain</type>
            <size>89653</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
NTc5ZWU3ZTc2Y2FlYWQyMmI1ZDI0ZGVkODdhZDNjZGRmNWYxMDMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTYgKzM0NywxMyBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAogI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1f
cGl4ZWxCdWZmZXJDb25mb3JtZXI7CiAjZW5kaWYKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzM2VhYzFkOTdjYTM4
ZWJkZTc3MDA5NDRlYjkwYWZkZjI3YWI1ZDcuLjQ2ZmJkOGUxMzJmNjg1ODQxMzM5MmI4ZTk1OTg0
NWNiMDdkNzRiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNiArNTMsNyBAQAog
I2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKKyNp
bXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmln
aW4uaCIKQEAgLTYwLDcgKzYxLDkgQEAKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJU
ZXh0RW5jb2RpbmcuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1w
b3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgogI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCAiVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIgog
I2ltcG9ydCAiV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlQ0FM
YXllckV4dHJhcy5oIgpAQCAtMTA0LDE2ICsxMDcsMTMgQEAKICNpZiBVU0UoVklERU9UT09MQk9Y
KQogI2ltcG9ydCA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogI2ltcG9ydCA8VmlkZW9Ub29sYm94
L1ZpZGVvVG9vbGJveC5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNlbmRpZgog
CiAjaWYgVVNFKENGTkVUV09SSykKICNpbmNsdWRlICJDRk5TVVJMQ29ubmVjdGlvblNQSS5oIgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0
Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIHN0ZCB7CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXRlcmF0
b3JfdHJhaXRzPEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uQVZG
T2JqQz4+OjppdGVyYXRvcj4gewogICAgIHR5cGVkZWYgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Vs
ZWN0aW9uT3B0aW9uQVZGT2JqQz4gdmFsdWVfdHlwZTsKQEAgLTE0OSwyNSArMTQ5LDYgQEAgdHlw
ZWRlZiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25UeXBlOwog
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoQ29yZUltYWdlKQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05B
TChDb3JlVmlkZW8pCi0KLSNpZiBVU0UoVklERU9UT09MQk9YKQotU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTChWaWRlb1Rvb2xib3gpCi0jZW5kaWYKLQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
LCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3Qs
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVv
LCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tG
bGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJl
c3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFn
cyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLSNpZiBVU0UoVklERU9U
T09MQk9YKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIFZUUGl4ZWxUcmFuc2Zl
clNlc3Npb25SZWYgKnBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgcGl4ZWxU
cmFuc2ZlclNlc3Npb25PdXQpKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UsIE9TU3RhdHVzLCAoVlRQaXhlbFRyYW5zZmVyU2Vzc2lv
blJlZiBzZXNzaW9uLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZl
clJlZiBkZXN0aW5hdGlvbkJ1ZmZlciksIChzZXNzaW9uLCBzb3VyY2VCdWZmZXIsIGRlc3RpbmF0
aW9uQnVmZmVyKSkKLSNlbmRpZgogCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlBs
YXllcikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbSkKQEAgLTE5
NSw3ICsxNzYsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRS
ZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihB
VkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QsIE5TU3RyaW5nICop
CiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNp
emVBc3BlY3RGaWxsLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgTlNTdHJpbmcg
KikKIAogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlNTdHJpbmcgKikKIApAQCAtMjIyLDcgKzIwMiw2
IEBAIFNPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENs
aWVudEJ1bmRsZUlkZW50aWZpZXJLZXksIE5TCiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlS
ZXNpemVBc3BlY3QgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCgpCiAjZGVmaW5l
IEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIGdldEFWTGF5ZXJWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3RGaWxsKCkKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZSBn
ZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplKCkKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQogCiAj
aWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogdHlwZWRlZiBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZTsKQEAgLTI5MSwyNCAr
MjcwLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0Qm91bmRO
ZXR3b3JrSW50ZXJmYWNlTmFtZSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZVUkxBc3NldEJvdW5k
TmV0d29ya0ludGVyZmFjZU5hbWUgZ2V0QVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5h
bWUoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBD
Vk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBl
YWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywg
ZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91
dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1
dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0
dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQsIEdMZW51
bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3Jl
VmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1
cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcg
KikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxp
dHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlL
ZXkoKQotI2Vsc2UKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVm
IGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1h
dE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBD
Vk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJp
YnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2Fj
aGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJj
ZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmli
dXRlcywgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVD
YWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBD
Vk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xU
ZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdM
VGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNl
T3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5IGdldGtDVlBpeGVsQnVmZmVy
SU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZW5kaWYKLQogU09GVF9MSU5L
X0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCiBTT0ZUX0xJTktfT1BUSU9OQUwoTWVkaWFUb29sYm94
LCBNVEVuYWJsZUNhcHRpb24yMDE1QmVoYXZpb3IsIEJvb2xlYW4sICgpLCAoKSkKIApAQCAtMjIy
MCwzOSArMjE4MSwxMiBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZQogICAgICAgICBjcmVhdGVW
aWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKIAotI2lmICFMT0dfRElT
QUJMRUQKLSAgICBkb3VibGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSNlbmRpZgotCiAgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gW21fYXZQbGF5ZXJJdGVtLmdldCgp
IGN1cnJlbnRUaW1lXTsKIAogICAgIGlmICghW21fdmlkZW9PdXRwdXQuZ2V0KCkgaGFzTmV3UGl4
ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZV0pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9P
dXRwdXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6Y3VycmVudFRpbWUgaXRlbVRp
bWVGb3JEaXNwbGF5Om5pbF0pOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4gMDsK
LQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0gICAgLy8gQ3JlYXRlIGEgVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvbiwgaWYgbmVjZXNzYXJ5LCBhcyB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRpbWVseSBkZWxp
dmVyeSBvZiBBUkdCIHBpeGVscy4KLSAgICBpZiAoIW1fcGl4ZWxUcmFuc2ZlclNlc3Npb24pIHsK
LSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNzaW9uID0gMDsKLSAgICAgICAg
VlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmc2Vzc2lv
bik7Ci0gICAgICAgIG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24gPSBhZG9wdENGKHNlc3Npb24pOwot
ICAgIH0KLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyOwotICAgIENWUGl4ZWxC
dWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGJ1
ZmZlci5nZXQoKSksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoYnVmZmVyLmdldCgpKSwga0NWUGl4
ZWxGb3JtYXRUeXBlXzMyQkdSQSwgMCwgJm91dHB1dEJ1ZmZlcik7Ci0gICAgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV9waXhlbFRyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgYnVm
ZmVyLmdldCgpLCBvdXRwdXRCdWZmZXIpOwotICAgIGJ1ZmZlciA9IGFkb3B0Q0Yob3V0cHV0QnVm
ZmVyKTsKLSNlbmRpZgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBkdXJhdGlvbiA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7Ci0gICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIoJXAp
IC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoZHVyYXRpb24pKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICByZXR1cm4g
YWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpj
dXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgp
CkBAIC0yMjY5LDQzICsyMjAzLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAgICByZXR1cm4gW21fdmlk
ZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9hdlBsYXllckl0ZW0gY3Vy
cmVudFRpbWVdXTsKIH0KIAotc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxCdWZmZXJHZXRCeXRl
UG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19S
ZWFkT25seSk7Ci0gICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhwaXhlbEJ1
ZmZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJD
YWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZl
ckxvY2tfUmVhZE9ubHkpOwotfQotCi1zdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUlu
Zm9DYWxsYmFjayh2b2lkKiBpbmZvKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDRlJlbGVhc2Uo
cGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUlt
YWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCi17Ci0gICAg
Ly8gcGl4ZWxCdWZmZXIgd2lsbCBiZSBvZiB0eXBlIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEu
Ci0gICAgQVNTRVJUKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIp
ID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpOwotCi0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQ
aXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQ
aXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVzUGVyUm93
ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3Qg
Ynl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShwaXhlbEJ1ZmZlcik7Ci0gICAg
Q0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtD
R0ltYWdlQWxwaGFGaXJzdDsKLQotICAgIENGUmV0YWluKHBpeGVsQnVmZmVyKTsgLy8gQmFsYW5j
ZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFj
a3MuCi0gICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3Mg
PSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVy
UmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0Nh
bGxiYWNrIH07Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFk
b3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QocGl4ZWxCdWZmZXIsIGJ5dGVMZW5ndGgs
ICZwcm92aWRlckNhbGxiYWNrcykpOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0
ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCks
IGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBOVUxMLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50
ZW50RGVmYXVsdCkpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnVwZGF0ZUxhc3RJbWFnZSgpCiB7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKQEAgLTIzMTMsOCArMjIxMCwyNCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFn
ZSgpCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6aXRlbVRpbWVG
b3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUgcGl4ZWwgYnVmZmVyCiAgICAgLy8gZm9y
IHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBiZWVuIHJldHJpZXZlZC4gSW4gdGhpcyBj
YXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55KQogICAgIC8vIHNob3VsZCBiZSBkaXNw
bGF5ZWQuCi0gICAgaWYgKHBpeGVsQnVmZmVyKQotICAgICAgICBtX2xhc3RJbWFnZSA9IGNyZWF0
ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoIXBpeGVs
QnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXIpIHsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3JtYXRUeXBlXzMy
QkdSQSkgfTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6bWFrZV91bmlx
dWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzKTsK
KyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdlID0gbV9waXhl
bEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIu
Z2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVwKSAtIGNyZWF0
aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0
aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA1LDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdMSW1hZ2UoKQog
ICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091dHB1dCBjb3B5
UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmls
XSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkg
ZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVtVG9TdHJp
bmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7Ci0gICAgICAg
IHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4KSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDMyRl9T
VEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRCkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19JTlRFR0VS
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX1NU
RU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVCkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRURf
SU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0Iz
MlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMy
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOF9T
Tk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
MTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEz
MkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOEkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZJ
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVHRVIpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9O
RU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5kaWYKLSAgICB9
Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKLQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBsYXRmb3JtM0RP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYgKGZsaXBZIHx8
IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzIwLDIxIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBMQVRGT1JNKElP
UykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0g
ICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5HTFRleHR1cmVD
YWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4
dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOwotI2VuZGlm
Ci0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0Q0YoY2FjaGUp
OwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChtX2xh
c3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxscHRyOwotICAg
IGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdl
dCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRl
b1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdM
RVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwot
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0dXJl
R2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0j
ZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsK
LSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRl
eHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0dXJlQ2FjaGUu
Z2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZpZGVvVGV4dHVy
ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJl
UmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwotICAgIFBsYXRm
b3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5hbWUodmlk
ZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9w
ZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRpZgotCi0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtU
aGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
ICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2Vsc2UKLSAg
ICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwotI2VuZGlmCi0g
ICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJuYWxGb3Jt
YXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01hcCgpW2lu
dGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3RyaW5nTWFw
KClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJlICYgZnJh
bWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5nIHRoZSB2
aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAgICBHQzNEaW50
IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKLSAgICBj
b250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9C
SU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+YmluZFRleHR1
cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBjb250ZXh0LT50
ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAg
ICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFN
UF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZyYW1lYnVmZmVy
IG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnkuCi0gICAgUGxh
dGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZl
cigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9t
IHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBjb250ZXh0LT5i
aW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIHJlYWRG
cmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1lbW9yeSBmb3Ig
dGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVy
ZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29udGV4
dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURH
RSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxscHRyKTsK
LQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZmZXIuCi0g
ICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURf
RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9U
ZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBHQzNEZW51bSBz
dGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29udGV4dDNE
OjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8g
Q29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVzIHRoZSB2aWRl
byB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+Y29weVRleElt
YWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAgbV90ZXh0dXJl
Q2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAgaWYgKCFt
X3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICAv
LyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4K
LSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVyZSk7Ci0g
ICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1F
QlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENWT3BlbkdMVGV4
dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVGcm9tSW1hZ2Uo
bV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9y
bWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzLgot
ICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1ZmZlcik7CisgICAgaWYg
KCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1RleHR1cmVDb3BpZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29udGV4dCk7CiAKLSAgICBy
ZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29w
aWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlkZW9UZXh0dXJlLmdldCgp
LCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAK
IFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzQ4ODI4YzNiOThlY2Y2OWY1ZjdhYzk0NTBmZDM5MWU1ODJmMzM0NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKKworI2lm
IFVTRShWSURFT1RPT0xCT1gpCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2lu
Y2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgor
CitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZpZGVvVG9vbGJveCkKK1NPRlRfTElOSyhW
aWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVXaXRoQXR0cmlidXRlcywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBhdHRy
aWJ1dGVzLCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmKiBjb25mb3JtZXJPdXQpLCAoYWxsb2Nh
dG9yLCBhdHRyaWJ1dGVzLCBjb25mb3JtZXJPdXQpKTsKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gs
IFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhlbEJ1ZmZlciwgQm9vbGVhbiwg
KFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVsQnVmZmVyUmVmIHBp
eEJ1ZiksIChjb25mb3JtZXIsIHBpeEJ1ZikpCitTT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVmZmVyLCBPU1N0YXR1cywgKFZU
UGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJj
ZUJ1ZmZlciwgQm9vbGVhbiBlbnN1cmVNb2RpZmlhYmxlLCBDVlBpeGVsQnVmZmVyUmVmKiBjb25m
b3JtZWRCdWZmZXJPdXQpLCAoY29uZm9ybWVyLCBzb3VyY2VCdWZmZXIsIGVuc3VyZU1vZGlmaWFi
bGUsIGNvbmZvcm1lZEJ1ZmZlck91dCkpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVjo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVihDRkRpY3Rpb25hcnlSZWYg
YXR0cmlidXRlcykKK3sKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciA9
IG51bGxwdHI7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVz
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIpOworICAgIEFTU0VS
VChjb25mb3JtZXIpOworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7
Cit9CisKK3N0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxs
YmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBz
dGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyTG9j
a0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwor
ICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOworfQor
CitzdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9p
ZCogaW5mbywgY29uc3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAgIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRP
bmx5KTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2so
dm9pZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVy
KTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNy
ZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcmF3QnVmZmVyKQorewor
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyByYXdCdWZmZXIgfTsKKyAg
ICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKTsKKyAg
ICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpOwor
CisgICAgaWYgKCFWVFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3JtYW50UGl4ZWxCdWZmZXIo
bV9waXhlbENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgeworICAgICAgICBDVlBpeGVs
QnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1
cyA9IFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIobV9waXhl
bENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91dHB1dEJ1ZmZlcik7Cisg
ICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZlcikKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7
CisgICAgfQorCisgICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3Jk
ZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXplX3QgYnl0ZXNQZXJSb3cg
PSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3Qg
Ynl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZmZXIuZ2V0KCkpOworCisg
ICAgQ0ZSZXRhaW4oYnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJl
bGVhc2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisgICAgQ0dEYXRhUHJvdmlk
ZXJEaXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJH
ZXRCeXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2Fs
bGJhY2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIH07CisgICAgUmV0YWlu
UHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJD
cmVhdGVEaXJlY3QoYnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3Mp
KTsKKworICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwg
MzIsIGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRl
ci5nZXQoKSwgbnVsbHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjY1MmRk
N2IyOWIwMmU1MjUyYjQ2YWJjYWIzMzVjNzQyMjUxMzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gKKworI2lmIFVTRShWSURF
T1RPT0xCT1gpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0
IE9wYXF1ZVZUUGl4ZWxCdWZmZXJDb25mb3JtZXIqIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWY7
Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0ltYWdlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19D
VkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHsKK3B1YmxpYzoKKyAgICBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZik7CisKK3By
aXZhdGU6CisgICAgUmV0YWluUHRyPFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWY+IG1fcGl4ZWxD
b25mb3JtZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBVU0UoVklERU9UT09MQk9YKQorCisjZW5k
aWYgLy8gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzk2ZGQ3
NmU5M2I3NmQwMzQ2ZjczOWQyY2UzNDUyMTE3Mjc4NjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlQ2FjaGVDVl9oCisjZGVmaW5l
IFRleHR1cmVDYWNoZUNWX2gKKworI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJS
ZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmOwordHlwZWRl
ZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJlUmVmOwordHlwZWRlZiBzdHJ1Y3Qg
X19DVk9wZW5HTFRleHR1cmVDYWNoZSAqQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWY7Cit0eXBlZGVm
IHN0cnVjdCBfX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CisK
K2NsYXNzIFRleHR1cmVDYWNoZUNWIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFRleHR1cmVDYWNoZUNWPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmKTsKKworI2lmIFBM
QVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgIFRleHR1
cmVDYWNoZVR5cGU7CisgICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlw
ZTsKKyNlbHNlCisgICAgdHlwZWRlZiBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNh
Y2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNl
bmRpZgorCisgICAgVGV4dHVyZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmLCBSZXRhaW5QdHI8
VGV4dHVyZUNhY2hlVHlwZT4mJik7CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHRleHR1
cmVGcm9tSW1hZ2UoQ1ZJbWFnZUJ1ZmZlclJlZiwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCgpIHsgcmV0dXJuIG1f
Y29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4g
bV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiBtX2NhY2hlOworICAg
IFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBtX3dlYWtQdHJGYWN0b3J5OworfTsKKwor
fQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmNj
MDNmZTk0NzQ4YjUxOTQxNmY5N2JjNjc1MjcyZmEzYTM5N2NjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAg
LTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisK
KyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4gVGV4dHVyZUNhY2hlQ1Y6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAgICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hl
ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9w
ZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNv
bnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAmY2FjaGUpOworI2Vs
c2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qo
KSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAgICBpZiAoZXJyb3IgIT0ga0NWUmV0dXJu
U3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZXRhaW5QdHI8VGV4dHVy
ZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29udGV4dCwgV1RGTW92ZShzdHJvbmdDYWNo
ZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0
M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYmIGNhY2hlKQorICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hlKGNhY2hlKQorICAgICwgbV93ZWFrUHRy
RmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVU
eXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQnVmZmVyUmVmIGlt
YWdlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVy
bmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUpCit7CisgICAgVGV4dHVy
ZVR5cGUgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oSU9TKQorICAg
IHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7CisgICAgc2l6ZV90
IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIGlmIChrQ1ZSZXR1
cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCBvdXRw
dXRUYXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGxl
dmVsLCAmYmFyZVZpZGVvVGV4dHVyZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ob3V0cHV0VGFyZ2V0KTsKKyAgICBVTlVTRURfUEFSQU0obGV2ZWwp
OworICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKGZv
cm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOworICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNz
ICE9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtX2NhY2hlLmdldCgpLCBpbWFnZSwgbnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1
cmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIFJldGFpblB0cjxUZXh0
dXJlVHlwZT4gdmlkZW9UZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKKworICAg
IGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKKyAg
ICAgICAgaWYgKGF1dG8gY2FjaGUgPSB3ZWFrVGhpcy0+bV9jYWNoZS5nZXQoKSkKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUs
IDApOworI2Vsc2UKKyAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUs
IDApOworI2VuZGlmCisgICAgfSk7CisKKyAgICByZXR1cm4gdmlkZW9UZXh0dXJlOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQxZWEzOWM4MTA3MDhkNWJjNTk0
NjQwMTBmYmNlZjQ3YmI1ZmNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtMCwwICsxLDIx
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDxPcGVuR0xF
Uy9FUzMvZ2xleHQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0
dXJlQ29waWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQo
Y29udGV4dCkKKyAgICAsIG1fcmVhZEZyYW1lYnVmZmVyKGNvbnRleHQuY3JlYXRlRnJhbWVidWZm
ZXIoKSkKK3sKK30KKworVmlkZW9UZXh0dXJlQ29waWVyQ1Y6On5WaWRlb1RleHR1cmVDb3BpZXJD
VigpCit7CisgICAgbV9jb250ZXh0LT5kZWxldGVGcmFtZWJ1ZmZlcihtX3JlYWRGcmFtZWJ1ZmZl
cik7Cit9CisKKyNpZiAhTE9HX0RJU0FCTEVECisKKyNkZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkg
ZSwgI2UKK3N0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBlbnVtVG9TdHJp
bmdNYXAoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+PiBtYXA7CisgICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7CisgICAgICAg
IHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1I4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Iz
MlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4KSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZGKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0IxMF9BMikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDMyRl9T
VEVOQ0lMOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR19JTlRFR0VS
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX1NU
RU5DSUwpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfQllURSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81XzEpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FUKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JUKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVCkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8yNF84KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRURf
SU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzhfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCNTY1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjhfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjExRl9HMTFGX0IxMEYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCOV9FNSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjhVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
QjE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0Iz
MlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMy
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOF9T
Tk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
MTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEz
MkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThV
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOEkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJV
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZV
SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZJ
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRykpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lOVEVHRVIpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9O
RU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7CisjZW5kaWYKKyAgICB9
CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKworI2VuZGlmCisKK2Jvb2wgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlVHlwZSBp
bnB1dFRleHR1cmUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVj
dCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdD
M0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkKK3sKKyAgICBpZiAoZmxpcFkgfHwgcHJl
bXVsdGlwbHlBbHBoYSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpbnB1dFRl
eHR1cmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTEVTVGV4dHVyZUdldE5h
bWUoaW5wdXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9w
ZW5HTEVTVGV4dHVyZUdldFRhcmdldChpbnB1dFRleHR1cmUpOworI2Vsc2UKKyAgICBQbGF0Zm9y
bTNET2JqZWN0IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTFRleHR1cmVHZXROYW1lKGlucHV0
VGV4dHVyZSk7CisgICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0
dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZW5kaWYKKworICAgIExPRyhNZWRpYSwgIlZp
ZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXAp
IC0gaW50ZXJuYWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1U
b1N0cmluZ01hcCgpW2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwg
ZW51bVRvU3RyaW5nTWFwKClbdHlwZV0pOworCisgICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3Vu
ZCB0ZXh0dXJlICYgZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRl
ciBjb3B5aW5nIHRoZSB2aWRlbyB0ZXh0dXJlLgorICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0g
MDsKKyAgICBHQzNEaW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKKyAgICBtX2NvbnRleHQt
PmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQsICZib3Vu
ZFRleHR1cmUpOworICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFQURfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKworICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVO
YW1lKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNz
Q29udGV4dDNEOjpMSU5FQVIpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9T
LCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKwor
ICAgIC8vIE1ha2UgdGhhdCBmcmFtZWJ1ZmZlciB0aGUgcmVhZCBzb3VyY2UgZnJvbSB3aGljaCBk
cmF3aW5nIGNvbW1hbmRzIHdpbGwgcmVhZCB2b3hlbHMuCisgICAgbV9jb250ZXh0LT5iaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIG1fcmVhZEZyYW1l
YnVmZmVyKTsKKworICAgIC8vIEFsbG9jYXRlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZvciB0aGUg
b3V0cHV0IHRleHR1cmUuCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQs
IG91dHB1dFRleHR1cmUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2Nv
bnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RP
X0VER0UpOworICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBudWxs
cHRyKTsKKworICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVidWZm
ZXIuCisgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFwaGljc0NvbnRleHQz
RDo6UkVBRF9GUkFNRUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQw
LCB2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUsIGxldmVsKTsKKworICAgIEdD
M0RlbnVtIHN0YXR1cyA9IG1fY29udGV4dC0+Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGlj
c0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUik7CisgICAgaWYgKHN0YXR1cyAhPSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIC8vIENvcHkgdGV4dHVyZSBmcm9tIHRoZSByZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1
cyB0aGUgdmlkZW8gdGV4dHVyZSkgdG8gdGhlIG91dHB1dCB0ZXh0dXJlLgorICAgIG1fY29udGV4
dC0+Y29weVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAs
IDAsIHdpZHRoLCBoZWlnaHQsIDApOworCisgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgdGV4
dHVyZSBhbmQgZnJhbWVidWZmZXIgYmluZGluZ3MuCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVy
ZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVi
dWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIGJvdW5kUmVhZEZyYW1l
YnVmZmVyKTsKKworICAgIHJldHVybiAhbV9jb250ZXh0LT5nZXRFcnJvcigpOworfQorCisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4
dHVyZUNvcGllckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRl
b1RleHR1cmVDb3BpZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZjUxMmY4OWFjYzQ1ZmE1Y2M0ZDZiN2Jj
M2UwZjhlY2UzMmQ5ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKKyNkZWZpbmUgVmlkZW9U
ZXh0dXJlQ29waWVyQ1ZfaAorCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQzRC5oIgorCit0eXBl
ZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFn
ZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYg
Q1ZPcGVuR0xFU1RleHR1cmVSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlk
ZW9UZXh0dXJlQ29waWVyQ1YgeworcHVibGljOgorICAgIFZpZGVvVGV4dHVyZUNvcGllckNWKEdy
YXBoaWNzQ29udGV4dDNEJik7CisgICAgflZpZGVvVGV4dHVyZUNvcGllckNWKCk7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlw
ZTsKKyNlbHNlCisgICAgdHlwZWRlZiBDVk9wZW5HTFRleHR1cmVSZWYgVGV4dHVyZVR5cGU7Cisj
ZW5kaWYKKworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1
cmVUeXBlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0
cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51
bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHBy
ZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOworCisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGNv
bnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IG1fcmVh
ZEZyYW1lYnVmZmVyOworfTsKKworfQorCisjZW5kaWYgLy8gVmlkZW9UZXh0dXJlQ29waWVyQ1Zf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDA3NzgzNWQ1ZTIxMjllZTllZWZm
OGQ0MGExZDQ1MDcxOTg0YWM1NjEuLjk3Njg0ZjI3ZDRkNjE0NDA1ZWNmNmY3MGU5N2Q3MzU3NzBj
MjE4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUyLDcgKzUyLDYgQEAg
dHlwZWRlZiBBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0
VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXIgQVZDYXB0dXJlVmlkZW9Q
cmV2aWV3TGF5ZXJUeXBlOwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRh
dGlvbikKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZVZpZGVvKQogCiBTT0ZUX0xJ
TktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtODEsMTcgKzgwLDYgQEAgU09G
VF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93LCBO
U1N0cmluZyAqKQogI2RlZmluZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MzUyeDI4OCBnZXRBVkNh
cHR1cmVTZXNzaW9uUHJlc2V0MzUyeDI4OCgpCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVz
ZXRMb3cgZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNldExvdygpCiAKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVm
ZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBp
eGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRk
cmVzcywgdm9pZCosIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVy
KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6
ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUs
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElO
SyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4
ZWxCdWZmZXIsIGxvY2tGbGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
VW5sb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0K
LVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5
cGVLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBl
S2V5IGdldGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5KCkKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0dXJlU291
cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272519</attachid>
            <date>2016-02-29 14:39:24 -0800</date>
            <delta_ts>2016-02-29 15:01:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229143908.patch</filename>
            <type>text/plain</type>
            <size>89843</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
ODc4MDg4YzM3M2MzN2VkYWI2ZWZmYWI1MGM5YmRlYjQ4M2E3YzQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTcgKzM0NywxMiBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAotI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247Ci0jZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTMzZWFjMWQ5N2NhMzhlYmRlNzcwMDk0NGVi
OTBhZmRmMjdhYjVkNy4uNTg1ZDY3NTgzYzIxOGYxN2RmZDRjNWUzYjljNGRiMmYwOWUyZWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0ICJNZWRp
YVBsYXliYWNrVGFyZ2V0TW9jay5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9i
akMuaCIKICNpbXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgorI2ltcG9ydCAiUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1w
b3J0ICJRdWFydHpDb3JlU1BJLmgiCiAjaW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjAs
NyArNjEsOSBAQAogI2ltcG9ydCAiU2V0dGluZ3MuaCIKICNpbXBvcnQgIlRleHRFbmNvZGluZy5o
IgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlRleHR1cmVD
YWNoZUNWLmgiCiAjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJD
Vi5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgi
CkBAIC0xMDQsMTYgKzEwNywxMyBAQAogI2lmIFVTRShWSURFT1RPT0xCT1gpCiAjaW1wb3J0IDxD
b3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94
Lmg+CisjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2VuZGlmCiAKICNpZiBVU0UoQ0ZO
RVRXT1JLKQogI2luY2x1ZGUgIkNGTlNVUkxDb25uZWN0aW9uU1BJLmgiCiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxPcGVuR0xFUy9FUzMvZ2xleHQuaD4KLSNlbmRpZgot
CiBuYW1lc3BhY2Ugc3RkIHsKIHRlbXBsYXRlIDw+IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8SGFz
aFNldDxSZWZQdHI8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPj46Oml0ZXJh
dG9yPiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25B
VkZPYmpDPiB2YWx1ZV90eXBlOwpAQCAtMTQ5LDI1ICsxNDksNiBAQCB0eXBlZGVmIEFWTWVkaWFT
ZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGU7CiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJ
T05BTChDb3JlSW1hZ2UpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykK
LQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZp
ZGVvVG9vbGJveCkKLSNlbmRpZgotCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
R2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6
ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxv
Y2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBD
Vk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRf
TElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4s
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyks
IChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZU
X0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiAq
cGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCBwaXhlbFRyYW5zZmVyU2Vzc2lv
bk91dCkpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJh
bnNmZXJJbWFnZSwgT1NTdGF0dXMsIChWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24s
IENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBDVlBpeGVsQnVmZmVyUmVmIGRlc3RpbmF0
aW9uQnVmZmVyKSwgKHNlc3Npb24sIHNvdXJjZUJ1ZmZlciwgZGVzdGluYXRpb25CdWZmZXIpKQot
I2VuZGlmCiAKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVyKQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtKQpAQCAtMTk1LDcgKzE3Niw2IEBA
IFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldFJlZmVyZW5jZVJlc3Ry
aWN0aW9uc0tleSwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwg
QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGws
IE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRl
b0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8s
IGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAqKQogCiBTT0ZUX0xJ
TktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJ
ZGVudGlmaWVyS2V5LCBOU1N0cmluZyAqKQogCkBAIC0yMjIsNyArMjAyLDYgQEAgU09GVF9MSU5L
X1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0Q2xpZW50QnVuZGxlSWRl
bnRpZmllcktleSwgTlMKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCBn
ZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0KCkKICNkZWZpbmUgQVZMYXllclZpZGVv
R3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVj
dEZpbGwoKQogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplIGdldEFWTGF5ZXJWaWRl
b0dyYXZpdHlSZXNpemUoKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCiAKICNpZiBIQVZFKEFWRk9V
TkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25H
cm91cCBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlOwpAQCAtMjkxLDI0ICsyNzAsNiBAQCBTT0ZU
X0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZh
Y2VOYW1lLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJm
YWNlTmFtZSBnZXRBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSgpCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPUykKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0
dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRp
Y3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBD
RkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwg
dGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2Fj
aGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJl
QXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90
IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRv
ciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwg
aW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwg
dGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Rmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZP
cHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTkso
Q29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xF
U1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9T
dXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBr
Q1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZWxzZQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJu
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1
dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQsIENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVs
Rm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVy
ZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29u
dGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1h
Z2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVD
YWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAo
YWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJl
T3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZv
aWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mg
b3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1h
Z2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFt
ZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElO
S19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21w
YXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFj
ZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVu
R0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbmRpZgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLKE1l
ZGlhVG9vbGJveCkKIFNPRlRfTElOS19PUFRJT05BTChNZWRpYVRvb2xib3gsIE1URW5hYmxlQ2Fw
dGlvbjIwMTVCZWhhdmlvciwgQm9vbGVhbiwgKCksICgpKQogCkBAIC0yMjIwLDM5ICsyMTgxLDEy
IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlCiAgICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7
CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwogCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRv
dWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwotI2VuZGlmCi0KICAg
ICBDTVRpbWUgY3VycmVudFRpbWUgPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVd
OwogCiAgICAgaWYgKCFbbV92aWRlb091dHB1dC5nZXQoKSBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0
ZW1UaW1lOmN1cnJlbnRUaW1lXSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBj
b3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6
bmlsXSk7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiAwOwotCi0jaWYgVVNFKFZJ
REVPVE9PTEJPWCkKLSAgICAvLyBDcmVhdGUgYSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uLCBpZiBu
ZWNlc3NhcnksIGFzIHdlIGNhbm5vdCBndWFyYW50ZWUgdGltZWx5IGRlbGl2ZXJ5IG9mIEFSR0Ig
cGl4ZWxzLgotICAgIGlmICghbV9waXhlbFRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICBWVFBp
eGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24gPSAwOwotICAgICAgICBWVFBpeGVsVHJhbnNm
ZXJTZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZzZXNzaW9uKTsKLSAgICAgICAg
bV9waXhlbFRyYW5zZmVyU2Vzc2lvbiA9IGFkb3B0Q0Yoc2Vzc2lvbik7Ci0gICAgfQotCi0gICAg
Q1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKSwg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpLCBrQ1ZQaXhlbEZvcm1hdFR5cGVf
MzJCR1JBLCAwLCAmb3V0cHV0QnVmZmVyKTsKLSAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJh
bnNmZXJJbWFnZShtX3BpeGVsVHJhbnNmZXJTZXNzaW9uLmdldCgpLCBidWZmZXIuZ2V0KCksIG91
dHB1dEJ1ZmZlcik7Ci0gICAgYnVmZmVyID0gYWRvcHRDRihvdXRwdXRCdWZmZXIpOwotI2VuZGlm
Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlciglcCkgLSBjcmVhdGluZyBi
dWZmZXIgdG9vayAlLjRmIiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikp
OwotI2VuZGlmCi0KLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiBhZG9wdENGKFttX3Zp
ZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0
ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKQEAgLTIyNjksNDMg
KzIyMDMsNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVv
T3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBoYXNO
ZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1dOwog
fQogCi1zdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2sodm9pZCogaW5mbykKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3Rh
dGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLSAg
ICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKLX0KLQot
c3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQq
IGluZm8sIGNvbnN0IHZvaWQqKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIg
PSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVy
VW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25s
eSk7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZv
aWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7
Ci19Ci0KLXN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxC
dWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikKLXsKLSAgICAvLyBwaXhlbEJ1ZmZl
ciB3aWxsIGJlIG9mIHR5cGUga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQS4KLSAgICBBU1NFUlQo
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikgPT0ga0NWUGl4ZWxG
b3JtYXRUeXBlXzMyQkdSQSk7Ci0KLSAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0
V2lkdGgocGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0
SGVpZ2h0KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVm
ZmVyR2V0Qnl0ZXNQZXJSb3cocGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBieXRlTGVuZ3RoID0g
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKHBpeGVsQnVmZmVyKTsKLSAgICBDR0JpdG1hcEluZm8g
Yml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZp
cnN0OwotCi0gICAgQ0ZSZXRhaW4ocGl4ZWxCdWZmZXIpOyAvLyBCYWxhbmNlZCBieSBDVlBpeGVs
QnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNhbGxiYWNrcy4KLSAgICBDR0Rh
dGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxiYWNrcyA9IHsgMCwgQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBv
aW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgfTsKLSAg
ICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQ
cm92aWRlckNyZWF0ZURpcmVjdChwaXhlbEJ1ZmZlciwgYnl0ZUxlbmd0aCwgJnByb3ZpZGVyQ2Fs
bGJhY2tzKSk7Ci0KLSAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWln
aHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbywg
cHJvdmlkZXIuZ2V0KCksIE5VTEwsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7
Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFz
dEltYWdlKCkKIHsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXIg
PSBjcmVhdGVQaXhlbEJ1ZmZlcigpOwpAQCAtMjMxMyw4ICsyMjEwLDI4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKICAgICAvLyBD
YWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1h
eSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZmZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3Rl
ZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0
IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8gc2hvdWxkIGJlIGRpc3BsYXllZC4KLSAgICBp
ZiAocGl4ZWxCdWZmZXIpCi0gICAgICAgIG1fbGFzdEltYWdlID0gY3JlYXRlSW1hZ2VGcm9tUGl4
ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9waXhlbEJ1ZmZlckNvbmZvcm1lcikgeworI2lmIFVT
RShWSURFT1RPT0xCT1gpCisgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IEB7IChO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKGtDVlBpeGVsRm9y
bWF0VHlwZV8zMkJHUkEpIH07CisjZWxzZQorICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0
ZXMgPSBuaWw7CisjZW5kaWYKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6
bWFrZV91bmlxdWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRy
aWJ1dGVzKTsKKyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdl
ID0gbV9waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4
ZWxCdWZmZXIuZ2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlv
biA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVw
KSAtIGNyZWF0aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zs
b2F0KGR1cmF0aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA5LDYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdM
SW1hZ2UoKQogICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091
dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRp
c3BsYXk6bmlsXSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZ
X1BBSVIoZSkgZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBl
bnVtVG9TdHJpbmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1
aW50MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7
Ci0gICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1IzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
Ukc4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZG
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9T
VEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9E
RVBUSDMyRl9TVEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9M
VU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JFRCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R19JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIX1NURU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81
XzEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FU
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NI
T1JUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JU
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVE
X0lOVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
SU5UXzJfMTBfMTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0j
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRURfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkEzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQThVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBOEkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCMTBfQTJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkEzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCQTMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCNV9BMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
RykpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lO
VEVHRVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQ
VEhfQ09NUE9ORU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5k
aWYKLSAgICB9Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElT
QUJMRUQKLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBs
YXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYg
KGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzI0LDIxIEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxh
dGZvcm1UZXh0dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBM
QVRGT1JNKElPUykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51
bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5H
TFRleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9y
ID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0
ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1h
dChjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUp
OwotI2VuZGlmCi0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0
Q0YoY2FjaGUpOwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRX
aWR0aChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxs
cHRyOwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVD
cmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVy
ZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFy
Z2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwg
JmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRy
PENWT3BlbkdMRVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1Rl
eHR1cmUpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdM
RVNUZXh0dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVv
VGV4dHVyZVRhcmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5n
ZXQoKSk7Ci0jZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0g
bnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNo
ZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0
dXJlQ2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZp
ZGVvVGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVu
R0xUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwot
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUodmlkZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJn
ZXQgPSBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRp
ZgotCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYg
KCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNo
ZSA9IHdlYWtUaGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwot
I2Vsc2UKLSAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwot
I2VuZGlmCi0gICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50
ZXJuYWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmlu
Z01hcCgpW2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRv
U3RyaW5nTWFwKClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0
dXJlICYgZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5
aW5nIHRoZSB2aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAg
ICBHQzNEaW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRl
Z2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJl
KTsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFN
RUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+
YmluZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBj
b250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElO
RUFSKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4
dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Qs
IEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZy
YW1lYnVmZmVyIG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnku
Ci0gICAgUGxhdGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVG
cmFtZWJ1ZmZlcigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNv
dXJjZSBmcm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBj
b250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZG
RVIsIHJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1l
bW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91
dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
TUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4
UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0g
ICAgY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xB
TVBfVE9fRURHRSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBu
dWxscHRyKTsKLQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVi
dWZmZXIuCi0gICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0
M0Q6OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5U
MCwgdmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBH
QzNEZW51bSBzdGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNz
Q29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVz
IHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+
Y29weVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAs
IHdpZHRoLCBoZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAg
bV90ZXh0dXJlQ2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAg
ICAgaWYgKCFtX3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CiAKLSAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBi
aW5kaW5ncy4KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4
dHVyZSk7Ci0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpS
RUFEX0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENW
T3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVG
cm9tSW1hZ2UobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vy
c2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1ZmZlcik7
CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1RleHR1cmVD
b3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29udGV4dCk7
CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1fdmlkZW9U
ZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlkZW9UZXh0
dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlw
WSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTAxZTM1NzExYWY1NjI1M2M1MmYzNGIzMTkzNDJjYTQxMWIzMGFi
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5r
aW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCisjaWYgVVNFKFZJREVP
VE9PTEJPWCkKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoVmlkZW9Ub29sYm94KQorU09G
VF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYqIGNvbmZvcm1lck91dCks
IChhbGxvY2F0b3IsIGF0dHJpYnV0ZXMsIGNvbmZvcm1lck91dCkpOworU09GVF9MSU5LKFZpZGVv
VG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklzQ29uZm9ybWFudFBpeGVsQnVmZmVyLCBC
b29sZWFuLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4QnVmKSwgKGNvbmZvcm1lciwgcGl4QnVmKSkKK1NPRlRfTElOSyhWaWRlb1Rvb2xi
b3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIsIE9TU3Rh
dHVzLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZmZXJS
ZWYgc291cmNlQnVmZmVyLCBCb29sZWFuIGVuc3VyZU1vZGlmaWFibGUsIENWUGl4ZWxCdWZmZXJS
ZWYqIGNvbmZvcm1lZEJ1ZmZlck91dCksIChjb25mb3JtZXIsIHNvdXJjZUJ1ZmZlciwgZW5zdXJl
TW9kaWZpYWJsZSwgY29uZm9ybWVkQnVmZmVyT3V0KSkKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yo
Q0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpCit7CisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKyAg
ICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciA9IG51bGxwdHI7CisgICAgVlRQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIpOworICAgIEFTU0VSVChjb25mb3JtZXIpOworICAg
IG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7CisjZWxzZQorICAgIEFTU0VS
VCghYXR0cmlidXRlcyk7CisjZW5kaWYKK30KKworc3RhdGljIGNvbnN0IHZvaWQqIENWUGl4ZWxC
dWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCit7CisgICAgQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8p
OworICAgIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVs
QnVmZmVyTG9ja19SZWFkT25seSk7CisgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRk
cmVzcyhwaXhlbEJ1ZmZlcik7Cit9CisKK3N0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNl
Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKK3sKKyAgICBDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
aW5mbyk7CisgICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBr
Q1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVsQnVm
ZmVyUmVsZWFzZUluZm9DYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAg
ICBDRlJlbGVhc2UocGl4ZWxCdWZmZXIpOworfQorCitSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gUGl4
ZWxCdWZmZXJDb25mb3JtZXJDVjo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1
ZmZlclJlZiByYXdCdWZmZXIpCit7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1
ZmZlciB7IHJhd0J1ZmZlciB9OworICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRX
aWR0aChidWZmZXIuZ2V0KCkpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0
SGVpZ2h0KGJ1ZmZlci5nZXQoKSk7CisKKyNpZiBVU0UoVklERU9UT09MQk9YKQorICAgIGlmICgh
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklzQ29uZm9ybWFudFBpeGVsQnVmZmVyKG1fcGl4ZWxDb25m
b3JtZXIuZ2V0KCksIGJ1ZmZlci5nZXQoKSkpIHsKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBv
dXRwdXRCdWZmZXIgPSBudWxscHRyOworICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ29weUNvbmZvcm1lZFBpeGVsQnVmZmVyKG1fcGl4ZWxDb25mb3JtZXIu
Z2V0KCksIGJ1ZmZlci5nZXQoKSwgZmFsc2UsICZvdXRwdXRCdWZmZXIpOworICAgICAgICBpZiAo
c3RhdHVzICE9IG5vRXJyIHx8ICFvdXRwdXRCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgYnVmZmVyID0gYWRvcHRDRihvdXRwdXRCdWZmZXIpOworICAgIH0KKyNl
bmRpZgorCisgICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRlT3JkZXIz
MkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKKyAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBD
VlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgpKTsKKyAgICBzaXplX3QgYnl0
ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZmZXIuZ2V0KCkpOworCisgICAg
Q0ZSZXRhaW4oYnVmZmVyLmdldCgpKTsgLy8gQmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVh
c2VJbmZvQ2FsbGJhY2sgaW4gcHJvdmlkZXJDYWxsYmFja3MuCisgICAgQ0dEYXRhUHJvdmlkZXJE
aXJlY3RDYWxsYmFja3MgcHJvdmlkZXJDYWxsYmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRC
eXRlUG9pbnRlckNhbGxiYWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJh
Y2ssIDAsIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIH07CisgICAgUmV0YWluUHRy
PENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVh
dGVEaXJlY3QoYnVmZmVyLmdldCgpLCBieXRlTGVuZ3RoLCAmcHJvdmlkZXJDYWxsYmFja3MpKTsK
KworICAgIHJldHVybiBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwgMzIs
IGJ5dGVzUGVyUm93LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvLCBwcm92aWRlci5n
ZXQoKSwgbnVsbHB0ciwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZWE4MWIyMDcxMDcwODIyYmRh
OGE4OGRiY2Y1NmZjNTIyZWU5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisjZGVm
aW5lIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaAorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFBpeGVsQnVmZmVyQ29uZm9ybWVyKiBWVFBpeGVs
QnVmZmVyQ29uZm9ybWVyUmVmOwordHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSogQ0dJbWFnZVJlZjsK
K3R5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIgKkNWUGl4ZWxCdWZmZXJSZWY7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViB7CitwdWJsaWM6Cisg
ICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVihDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyk7Cisg
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4
ZWxCdWZmZXJSZWYpOworCitwcml2YXRlOgorI2lmIFVTRShWSURFT1RPT0xCT1gpCisgICAgUmV0
YWluUHRyPFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWY+IG1fcGl4ZWxDb25mb3JtZXI7CisjZW5k
aWYKK307CisKK30KKworI2VuZGlmIC8vIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1Yu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDc5NmRkNzZlOTNiNzZkMDM0NmY3MzlkMmNlMzQ1MjExNzI3ODY0YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1
cmVDYWNoZUNWLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGV4dHVy
ZUNhY2hlQ1ZfaAorI2RlZmluZSBUZXh0dXJlQ2FjaGVDVl9oCisKKyNpbmNsdWRlICJHcmFwaGlj
c1R5cGVzM0QuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0ICBfX0NWQnVm
ZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdM
VGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTEVTVGV4dHVyZVJl
ZjsKK3R5cGVkZWYgc3RydWN0IF9fQ1ZPcGVuR0xUZXh0dXJlQ2FjaGUgKkNWT3BlbkdMVGV4dHVy
ZUNhY2hlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTEVTVGV4dHVyZUNhY2hlICpDVk9w
ZW5HTEVTVGV4dHVyZUNhY2hlUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOworCitjbGFzcyBUZXh0dXJlQ2FjaGVDViB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4gY3JlYXRlKEdyYXBoaWNzQ29u
dGV4dDNEJik7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgdHlwZWRlZiBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlUmVmICBUZXh0dXJlQ2FjaGVUeXBlOworICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1Rl
eHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJl
Q2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7CisgICAgdHlwZWRlZiBDVk9wZW5HTFRleHR1cmVS
ZWYgVGV4dHVyZVR5cGU7CisjZW5kaWYKKworICAgIFRleHR1cmVDYWNoZUNWKEdyYXBoaWNzQ29u
dGV4dDNEJiwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYpOworCisgICAgUmV0YWluUHRy
PFRleHR1cmVUeXBlPiB0ZXh0dXJlRnJvbUltYWdlKENWSW1hZ2VCdWZmZXJSZWYsIEdDM0RlbnVt
IG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
M0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSk7CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGNv
bnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hl
VHlwZT4gbV9jYWNoZTsKKyAgICBXZWFrUHRyRmFjdG9yeTxUZXh0dXJlQ2FjaGVDVj4gbV93ZWFr
UHRyRmFjdG9yeTsKK307CisKK30KKworI2VuZGlmIC8vIFRleHR1cmVDYWNoZUNWX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNW
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1Yu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzZjYzAzZmU5NDc0OGI1MTk0MTZmOTdiYzY3NTI3MmZhM2EzOTdjYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Rl
eHR1cmVDYWNoZUNWLm1tCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHR1cmVDYWNoZUNWLmgiCisKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgorCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IFRleHR1
cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCit7CisgICAgVGV4
dHVyZUNhY2hlVHlwZSBjYWNoZSA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIENW
UmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVs
bHB0ciwgJmNhY2hlKTsKKyNlbHNlCisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1
cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC5wbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOworI2VuZGlmCisgICAgaWYg
KGVycm9yICE9IGtDVlJldHVyblN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IHN0cm9uZ0NhY2hlID0gYWRvcHRDRihjYWNo
ZSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZUNhY2hlQ1Y+KGNvbnRleHQs
IFdURk1vdmUoc3Ryb25nQ2FjaGUpKTsKK30KKworVGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNo
ZUNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlw
ZT4mJiBjYWNoZSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9jYWNoZShjYWNo
ZSkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKK3sKK30KKworUmV0YWluUHRyPFRleHR1
cmVDYWNoZUNWOjpUZXh0dXJlVHlwZT4gVGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2Uo
Q1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxl
dmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0
eXBlKQoreworICAgIFRleHR1cmVUeXBlIGJhcmVWaWRlb1RleHR1cmUgPSBudWxscHRyOworI2lm
IFBMQVRGT1JNKElPUykKKyAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgo
aW1hZ2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KGltYWdl
KTsKKyAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2NhY2hlLmdldCgpLCBp
bWFnZSwgbnVsbHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdo
dCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRlb1RleHR1cmUpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG91dHB1dFRhcmdldCk7CisgICAg
VU5VU0VEX1BBUkFNKGxldmVsKTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxGb3JtYXQpOwor
ICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICBp
ZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVG
cm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5nZXQoKSwgaW1hZ2UsIG51bGxw
dHIsICZiYXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYK
KyAgICBSZXRhaW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZp
ZGVvVGV4dHVyZSk7CisKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3dlYWtUaGlzXSB7CisgICAgICAgIGlmIChhdXRvIGNhY2hlID0gd2Vha1RoaXMtPm1fY2Fj
aGUuZ2V0KCkpCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbHNlCisgICAgICAgICAgICBDVk9wZW5HTFRleHR1
cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKKyNlbmRpZgorICAgIH0pOworCisgICAgcmV0dXJuIHZp
ZGVvVGV4dHVyZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
MWVhMzljODEwNzA4ZDViYzU5NDY0MDEwZmJjZWY0N2JiNWZjYzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5jcHAKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKKyNpZiBQTEFURk9STShJT1Mp
CisjaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0Lmg+CisjZW5kaWYKKworI2luY2x1ZGUgIkNv
cmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVmlkZW9UZXh0dXJl
Q29waWVyQ1Y6OlZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0
KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3JlYWRGcmFtZWJ1ZmZlcihjb250
ZXh0LmNyZWF0ZUZyYW1lYnVmZmVyKCkpCit7Cit9CisKK1ZpZGVvVGV4dHVyZUNvcGllckNWOjp+
VmlkZW9UZXh0dXJlQ29waWVyQ1YoKQoreworICAgIG1fY29udGV4dC0+ZGVsZXRlRnJhbWVidWZm
ZXIobV9yZWFkRnJhbWVidWZmZXIpOworfQorCisjaWYgIUxPR19ESVNBQkxFRAorCisjZGVmaW5l
IFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCitzdGF0aWMgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0
IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFwOworICAgIGlmIChtYXAuZ2V0KCku
ZW1wdHkoKSkgeworICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+IHN0cmlu
Z01hcDsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhB
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5D
RSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOCkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZGKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMkYpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhVSSkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRzE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SRzMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
RzhVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhJ
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2SSkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMyVUkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkkpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOCkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOCkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9BTFBIQTgpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTQpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBfQTIpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMTYpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMjQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfQ09N
UE9ORU5UMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIMjRfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRUQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV82XzUpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNF80XzRfNCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9T
SE9SVF81XzVfNV8xKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX0JZVEUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
SEFMRl9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9GTE9BVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9V
TlNJR05FRF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9TSE9SVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9VTlNJR05FRF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfSU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRfOCkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9S
RVYpKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBGKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0IzMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0JBMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCQThJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCQTE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0JBMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQkEzMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjVfQTEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkcpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQV9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF81XzlfOV85X1JF
VikpOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiBtYXAuZ2V0KCk7Cit9CisKKyNlbmRpZgor
Citib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRUZXh0dXJlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWln
aHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCit7Cisg
ICAgaWYgKGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghaW5wdXRUZXh0dXJlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZP
cGVuR0xFU1RleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7CisgICAgR0MzRGVudW0gdmlkZW9U
ZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsK
KyNlbHNlCisgICAgUGxhdGZvcm0zRE9iamVjdCB2aWRlb1RleHR1cmVOYW1lID0gQ1ZPcGVuR0xU
ZXh0dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRh
cmdldCA9IENWT3BlbkdMVGV4dHVyZUdldFRhcmdldChpbnB1dFRleHR1cmUpOworI2VuZGlmCisK
KyAgICBMT0coTWVkaWEsICJWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAlcywgZm9ybWF0OiAlcywgdHlw
ZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5hbEZvcm1hdF0sIGVudW1Ub1N0
cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5cGVdKTsKKworICAgIC8vIFNh
dmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVmZmVyIG5hbWVzIHNvIHdlIGNh
biByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8gdGV4dHVyZS4KKyAgICBHQzNE
aW50IGJvdW5kVGV4dHVyZSA9IDA7CisgICAgR0MzRGludCBib3VuZFJlYWRGcmFtZWJ1ZmZlciA9
IDA7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2
KEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZFJlYWRG
cmFtZWJ1ZmZlcik7CisKKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKHZpZGVvVGV4dHVyZVRh
cmdldCwgdmlkZW9UZXh0dXJlTmFtZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9N
SU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQtPnRl
eFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwor
ICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6
Q0xBTVBfVE9fRURHRSk7CisKKyAgICAvLyBNYWtlIHRoYXQgZnJhbWVidWZmZXIgdGhlIHJlYWQg
c291cmNlIGZyb20gd2hpY2ggZHJhd2luZyBjb21tYW5kcyB3aWxsIHJlYWQgdm94ZWxzLgorICAg
IG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1F
QlVGRkVSLCBtX3JlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxp
emVkIG1lbW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgorICAgIG1fY29udGV4dC0+YmluZFRl
eHR1cmUob3V0cHV0VGFyZ2V0LCBvdXRwdXRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPnRleFBh
cmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgIG1f
Y29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBf
VE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkREaXJl
Y3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAs
IGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7CisKKyAgICAvLyBBdHRhY2ggdGhlIHZpZGVvIHRleHR1
cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgorICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJl
MkQoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1l
LCBsZXZlbCk7CisKKyAgICBHQzNEZW51bSBzdGF0dXMgPSBtX2NvbnRleHQtPmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIpOworICAgIGlm
IChzdGF0dXMgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDb3B5IHRleHR1cmUgZnJvbSB0aGUgcmVhZCBm
cmFtZWJ1ZmZlciAoYW5kIHRodXMgdGhlIHZpZGVvIHRleHR1cmUpIHRvIHRoZSBvdXRwdXQgdGV4
dHVyZS4KKyAgICBtX2NvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwgbGV2ZWws
IGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKKworICAgIC8vIFJlc3Rv
cmUgdGhlIHByZXZpb3VzIHRleHR1cmUgYW5kIGZyYW1lYnVmZmVyIGJpbmRpbmdzLgorICAgIG1f
Y29udGV4dC0+YmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBib3VuZFRleHR1cmUpOworICAgIG1f
Y29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVG
RkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisKKyAgICByZXR1cm4gIW1fY29udGV4dC0+Z2V0
RXJyb3IoKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWY1MTJm
ODlhY2M0NWZhNWNjNGQ2YjdiYzNlMGY4ZWNlMzJkOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaApA
QCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaWRlb1RleHR1cmVDb3BpZXJD
Vl9oCisjZGVmaW5lIFZpZGVvVGV4dHVyZUNvcGllckNWX2gKKworI2ltcG9ydCAiR3JhcGhpY3ND
b250ZXh0M0QuaCIKKwordHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJS
ZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmOwordHlwZWRl
ZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0dXJlUmVmOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWIHsKK3B1YmxpYzoKKyAgICBWaWRl
b1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYpOworICAgIH5WaWRlb1RleHR1cmVD
b3BpZXJDVigpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1Rl
eHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJl
UmVmIFRleHR1cmVUeXBlOworI2VuZGlmCisKKyAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShUZXh0dXJlVHlwZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQ
bGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0Mz
RGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKKworICAgIEdy
YXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisK
K3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CisgICAgUGxh
dGZvcm0zRE9iamVjdCBtX3JlYWRGcmFtZWJ1ZmZlcjsKK307CisKK30KKworI2VuZGlmIC8vIFZp
ZGVvVGV4dHVyZUNvcGllckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCAw
Nzc4MzVkNWUyMTI5ZWU5ZWVmZjhkNDBhMWQ0NTA3MTk4NGFjNTYxLi45NzY4NGYyN2Q0ZDYxNDQw
NWVjZjZmNzBlOTdkNzM1NzcwYzIxOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
CkBAIC01Miw3ICs1Miw2IEBAIHR5cGVkZWYgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0IEFWQ2Fw
dHVyZVZpZGVvRGF0YU91dHB1dFR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xh
eWVyIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyVHlwZTsKIAogU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTChBVkZvdW5kYXRpb24pCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENv
cmVWaWRlbykKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQ29ubmVj
dGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSkKQEAg
LTgxLDE3ICs4MCw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJl
U2Vzc2lvblByZXNldExvdywgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblBy
ZXNldDM1MngyODggZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNldDM1MngyODgoKQogI2RlZmluZSBB
VkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93IGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3coKQog
Ci1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENv
cmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBp
eGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
R2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAo
cGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVs
Rm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhl
bEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRy
ZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxh
Z3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVm
ZmVyLCBsb2NrRmxhZ3MpKQotCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVs
QnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1
ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSgpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNl
PiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGUqIGRldmlj
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBj
b25zdHJhaW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272520</attachid>
            <date>2016-02-29 14:55:17 -0800</date>
            <delta_ts>2016-02-29 15:10:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229145502.patch</filename>
            <type>text/plain</type>
            <size>89874</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
ODc4MDg4YzM3M2MzN2VkYWI2ZWZmYWI1MGM5YmRlYjQ4M2E3YzQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTcgKzM0NywxMiBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAotI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247Ci0jZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTMzZWFjMWQ5N2NhMzhlYmRlNzcwMDk0NGVi
OTBhZmRmMjdhYjVkNy4uNTg1ZDY3NTgzYzIxOGYxN2RmZDRjNWUzYjljNGRiMmYwOWUyZWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0ICJNZWRp
YVBsYXliYWNrVGFyZ2V0TW9jay5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9i
akMuaCIKICNpbXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgorI2ltcG9ydCAiUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1w
b3J0ICJRdWFydHpDb3JlU1BJLmgiCiAjaW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjAs
NyArNjEsOSBAQAogI2ltcG9ydCAiU2V0dGluZ3MuaCIKICNpbXBvcnQgIlRleHRFbmNvZGluZy5o
IgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlRleHR1cmVD
YWNoZUNWLmgiCiAjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJD
Vi5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgi
CkBAIC0xMDQsMTYgKzEwNywxMyBAQAogI2lmIFVTRShWSURFT1RPT0xCT1gpCiAjaW1wb3J0IDxD
b3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94
Lmg+CisjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2VuZGlmCiAKICNpZiBVU0UoQ0ZO
RVRXT1JLKQogI2luY2x1ZGUgIkNGTlNVUkxDb25uZWN0aW9uU1BJLmgiCiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxPcGVuR0xFUy9FUzMvZ2xleHQuaD4KLSNlbmRpZgot
CiBuYW1lc3BhY2Ugc3RkIHsKIHRlbXBsYXRlIDw+IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8SGFz
aFNldDxSZWZQdHI8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPj46Oml0ZXJh
dG9yPiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb25B
VkZPYmpDPiB2YWx1ZV90eXBlOwpAQCAtMTQ5LDI1ICsxNDksNiBAQCB0eXBlZGVmIEFWTWVkaWFT
ZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGU7CiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJ
T05BTChDb3JlSW1hZ2UpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKENvcmVWaWRlbykK
LQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFZp
ZGVvVG9vbGJveCkKLSNlbmRpZgotCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVy
R2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxC
dWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6
ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVfdCwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckxv
Y2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBD
Vk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLVNPRlRf
TElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4s
IChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyks
IChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZU
X0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiAq
cGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCBwaXhlbFRyYW5zZmVyU2Vzc2lv
bk91dCkpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJh
bnNmZXJJbWFnZSwgT1NTdGF0dXMsIChWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24s
IENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBDVlBpeGVsQnVmZmVyUmVmIGRlc3RpbmF0
aW9uQnVmZmVyKSwgKHNlc3Npb24sIHNvdXJjZUJ1ZmZlciwgZGVzdGluYXRpb25CdWZmZXIpKQot
I2VuZGlmCiAKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVyKQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtKQpAQCAtMTk1LDcgKzE3Niw2IEBA
IFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldFJlZmVyZW5jZVJlc3Ry
aWN0aW9uc0tleSwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwg
QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGws
IE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRl
b0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8s
IGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmluZyAqKQogCiBTT0ZUX0xJ
TktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJ
ZGVudGlmaWVyS2V5LCBOU1N0cmluZyAqKQogCkBAIC0yMjIsNyArMjAyLDYgQEAgU09GVF9MSU5L
X1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0Q2xpZW50QnVuZGxlSWRl
bnRpZmllcktleSwgTlMKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCBn
ZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0KCkKICNkZWZpbmUgQVZMYXllclZpZGVv
R3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVj
dEZpbGwoKQogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplIGdldEFWTGF5ZXJWaWRl
b0dyYXZpdHlSZXNpemUoKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCiAKICNpZiBIQVZFKEFWRk9V
TkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25H
cm91cCBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlOwpAQCAtMjkxLDI0ICsyNzAsNiBAQCBTT0ZU
X0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZh
Y2VOYW1lLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJm
YWNlTmFtZSBnZXRBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSgpCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPUykKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0
dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRp
Y3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0LCBD
RkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBlYWdsQ29udGV4dCwg
dGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2Fj
aGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJl
QXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90
IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRv
ciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwg
aW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGxhbmVJbmRleCwg
dGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Rmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZP
cHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCi1TT0ZUX0xJTkso
Q29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xF
U1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9T
dXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBr
Q1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSBnZXRrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0jZWxzZQot
U09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJu
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1
dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQsIENHTFBpeGVsRm9ybWF0T2JqIGNnbFBpeGVs
Rm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMVGV4dHVy
ZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgY2dsQ29u
dGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1h
Z2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVD
YWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAo
YWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJl
T3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZv
aWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mg
b3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTFRleHR1cmVSZWYgaW1h
Z2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFt
ZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElO
S19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21w
YXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFj
ZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVu
R0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbmRpZgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLKE1l
ZGlhVG9vbGJveCkKIFNPRlRfTElOS19PUFRJT05BTChNZWRpYVRvb2xib3gsIE1URW5hYmxlQ2Fw
dGlvbjIwMTVCZWhhdmlvciwgQm9vbGVhbiwgKCksICgpKQogCkBAIC0yMjIwLDM5ICsyMTgxLDEy
IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlCiAgICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7
CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwogCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIGRv
dWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwotI2VuZGlmCi0KICAg
ICBDTVRpbWUgY3VycmVudFRpbWUgPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVd
OwogCiAgICAgaWYgKCFbbV92aWRlb091dHB1dC5nZXQoKSBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0
ZW1UaW1lOmN1cnJlbnRUaW1lXSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBj
b3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6
bmlsXSk7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiAwOwotCi0jaWYgVVNFKFZJ
REVPVE9PTEJPWCkKLSAgICAvLyBDcmVhdGUgYSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uLCBpZiBu
ZWNlc3NhcnksIGFzIHdlIGNhbm5vdCBndWFyYW50ZWUgdGltZWx5IGRlbGl2ZXJ5IG9mIEFSR0Ig
cGl4ZWxzLgotICAgIGlmICghbV9waXhlbFRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICBWVFBp
eGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24gPSAwOwotICAgICAgICBWVFBpeGVsVHJhbnNm
ZXJTZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZzZXNzaW9uKTsKLSAgICAgICAg
bV9waXhlbFRyYW5zZmVyU2Vzc2lvbiA9IGFkb3B0Q0Yoc2Vzc2lvbik7Ci0gICAgfQotCi0gICAg
Q1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKSwg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpLCBrQ1ZQaXhlbEZvcm1hdFR5cGVf
MzJCR1JBLCAwLCAmb3V0cHV0QnVmZmVyKTsKLSAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJh
bnNmZXJJbWFnZShtX3BpeGVsVHJhbnNmZXJTZXNzaW9uLmdldCgpLCBidWZmZXIuZ2V0KCksIG91
dHB1dEJ1ZmZlcik7Ci0gICAgYnVmZmVyID0gYWRvcHRDRihvdXRwdXRCdWZmZXIpOwotI2VuZGlm
Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlciglcCkgLSBjcmVhdGluZyBi
dWZmZXIgdG9vayAlLjRmIiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikp
OwotI2VuZGlmCi0KLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiBhZG9wdENGKFttX3Zp
ZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lIGl0
ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKQEAgLTIyNjksNDMg
KzIyMDMsNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVv
T3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBoYXNO
ZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1dOwog
fQogCi1zdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJh
Y2sodm9pZCogaW5mbykKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3Rh
dGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKLSAg
ICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKLX0KLQot
c3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQq
IGluZm8sIGNvbnN0IHZvaWQqKQotewotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIg
PSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAgICBDVlBpeGVsQnVmZmVy
VW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25s
eSk7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZv
aWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7
Ci19Ci0KLXN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxC
dWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikKLXsKLSAgICAvLyBwaXhlbEJ1ZmZl
ciB3aWxsIGJlIG9mIHR5cGUga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQS4KLSAgICBBU1NFUlQo
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikgPT0ga0NWUGl4ZWxG
b3JtYXRUeXBlXzMyQkdSQSk7Ci0KLSAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0
V2lkdGgocGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0
SGVpZ2h0KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVm
ZmVyR2V0Qnl0ZXNQZXJSb3cocGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBieXRlTGVuZ3RoID0g
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKHBpeGVsQnVmZmVyKTsKLSAgICBDR0JpdG1hcEluZm8g
Yml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZp
cnN0OwotCi0gICAgQ0ZSZXRhaW4ocGl4ZWxCdWZmZXIpOyAvLyBCYWxhbmNlZCBieSBDVlBpeGVs
QnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNhbGxiYWNrcy4KLSAgICBDR0Rh
dGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxiYWNrcyA9IHsgMCwgQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBv
aW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgfTsKLSAg
ICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQ
cm92aWRlckNyZWF0ZURpcmVjdChwaXhlbEJ1ZmZlciwgYnl0ZUxlbmd0aCwgJnByb3ZpZGVyQ2Fs
bGJhY2tzKSk7Ci0KLSAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWln
aHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbywg
cHJvdmlkZXIuZ2V0KCksIE5VTEwsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7
Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFz
dEltYWdlKCkKIHsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXIg
PSBjcmVhdGVQaXhlbEJ1ZmZlcigpOwpAQCAtMjMxMyw4ICsyMjEwLDI4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKICAgICAvLyBD
YWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1h
eSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZmZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3Rl
ZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0
IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8gc2hvdWxkIGJlIGRpc3BsYXllZC4KLSAgICBp
ZiAocGl4ZWxCdWZmZXIpCi0gICAgICAgIG1fbGFzdEltYWdlID0gY3JlYXRlSW1hZ2VGcm9tUGl4
ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9waXhlbEJ1ZmZlckNvbmZvcm1lcikgeworI2lmIFVT
RShWSURFT1RPT0xCT1gpCisgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IEB7IChO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKGtDVlBpeGVsRm9y
bWF0VHlwZV8zMkJHUkEpIH07CisjZWxzZQorICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0
ZXMgPSBuaWw7CisjZW5kaWYKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IHN0ZDo6
bWFrZV91bmlxdWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGljdGlvbmFyeVJlZilhdHRy
aWJ1dGVzKTsKKyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0ID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKworICAgIG1fbGFzdEltYWdl
ID0gbV9waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4
ZWxCdWZmZXIuZ2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGRvdWJsZSBkdXJhdGlv
biA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7CisgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCVw
KSAtIGNyZWF0aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJyb3dQcmVjaXNpb25Ub0Zs
b2F0KGR1cmF0aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIsMTEwICsyMzA5LDYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0T3BlbkdM
SW1hZ2UoKQogICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihbbV9vcGVuR0xWaWRlb091
dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRp
c3BsYXk6bmlsXSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNkZWZpbmUgU1RSSU5HSUZZ
X1BBSVIoZSkgZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+JiBl
bnVtVG9TdHJpbmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1
aW50MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5nZXQoKS5lbXB0eSgpKSB7
Ci0gICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4gc3RyaW5nTWFwOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1IzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
Ukc4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZG
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOFVJKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOEkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNlVJKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQyNCkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQzMkYp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgyNF9T
VEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9E
RVBUSDMyRl9TVEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9M
VU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JFRCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R19JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X0RFUFRIX1NURU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80KSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNV81
XzEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQllURSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9IQUxGX0ZMT0FU
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NI
T1JUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NIT1JU
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVE
X0lOVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9JTlQp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
SU5UXzJfMTBfMTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVikpOwotCi0j
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SRURfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SR0JBMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkEzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQThVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBOEkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCMTBfQTJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkEzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCQTMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCNV9BMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
RykpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBX0lO
VEVHRVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQ
VEhfQ09NUE9ORU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKSk7Ci0jZW5k
aWYKLSAgICB9Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2VuZGlmIC8vICFMT0dfRElT
QUJMRUQKLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFBs
YXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CiAgICAgaWYg
KGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsyMzI0LDIxIEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxh
dGZvcm1UZXh0dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJbWFnZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVDYWNoZSkgewotI2lmIFBM
QVRGT1JNKElPUykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51
bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LT5wbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQotICAgICAgICBDVk9wZW5H
TFRleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9y
ID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0
ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1h
dChjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUp
OwotI2VuZGlmCi0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1cmVDYWNoZSA9IGFkb3B0
Q0YoY2FjaGUpOwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRX
aWR0aChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkpOwogCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRlb1RleHR1cmUgPSBudWxs
cHRyOwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVD
cmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVy
ZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgb3V0cHV0VGFy
Z2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBsZXZlbCwg
JmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRy
PENWT3BlbkdMRVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1Rl
eHR1cmUpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdM
RVNUZXh0dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAgIEdDM0RlbnVtIHZpZGVv
VGV4dHVyZVRhcmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KHZpZGVvVGV4dHVyZS5n
ZXQoKSk7Ci0jZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0g
bnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9wZW5HTFRleHR1cmVDYWNo
ZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vcGVuR0xUZXh0
dXJlQ2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBudWxscHRyLCAmYmFyZVZp
ZGVvVGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZXRhaW5QdHI8Q1ZPcGVu
R0xUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwot
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUodmlkZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJn
ZXQgPSBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJlLmdldCgpKTsKLSNlbmRp
ZgotCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYg
KCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byBjYWNo
ZSA9IHdlYWtUaGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwot
I2Vsc2UKLSAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOwot
I2VuZGlmCi0gICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50
ZXJuYWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmlu
Z01hcCgpW2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRv
U3RyaW5nTWFwKClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0
dXJlICYgZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5
aW5nIHRoZSB2aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAg
ICBHQzNEaW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBjb250ZXh0LT5nZXRJbnRl
Z2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJl
KTsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFN
RUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwotCi0gICAgY29udGV4dC0+
YmluZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKLSAgICBj
b250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElO
RUFSKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4
dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Qs
IEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAgIC8vIENyZWF0ZSBhIGZy
YW1lYnVmZmVyIG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRleHR1cmUncyBtZW1vcnku
Ci0gICAgUGxhdGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBjb250ZXh0LT5jcmVhdGVG
cmFtZWJ1ZmZlcigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNv
dXJjZSBmcm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KLSAgICBj
b250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZG
RVIsIHJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1bmluaXRpYWxpemVkIG1l
bW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKG91
dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
TUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4
UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0g
ICAgY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xB
TVBfVE9fRURHRSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChvdXRwdXRUYXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgZm9ybWF0LCB0eXBlLCBu
dWxscHRyKTsKLQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVyZSB0byB0aGUgZnJhbWVi
dWZmZXIuCi0gICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0
M0Q6OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5U
MCwgdmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBsZXZlbCk7Ci0KLSAgICBH
QzNEZW51bSBzdGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNz
Q29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVz
IHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCi0gICAgY29udGV4dC0+
Y29weVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAs
IHdpZHRoLCBoZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpIHsKKyAgICAgICAg
bV90ZXh0dXJlQ2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAg
ICAgaWYgKCFtX3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CiAKLSAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBi
aW5kaW5ncy4KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4
dHVyZSk7Ci0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpS
RUFEX0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7CisgICAgUmV0YWluUHRyPENW
T3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJlQ2FjaGUtPnRleHR1cmVG
cm9tSW1hZ2UobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vy
c2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJlYWRGcmFtZWJ1ZmZlcik7
CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRlb1RleHR1cmVD
b3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckNWPigqY29udGV4dCk7
CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAgcmV0dXJuIG1fdmlkZW9U
ZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodmlkZW9UZXh0
dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlw
WSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWIyYmNhYjJhNjNiYzVhODg2YWFmZDNlZTIwYjFiOGQ0NDg3ZjBh
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2luY2x1ZGUgIlNvZnRMaW5r
aW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCisjaWYgVVNFKFZJREVP
VE9PTEJPWCkKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoVmlkZW9Ub29sYm94KQorU09G
VF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYqIGNvbmZvcm1lck91dCks
IChhbGxvY2F0b3IsIGF0dHJpYnV0ZXMsIGNvbmZvcm1lck91dCkpOworU09GVF9MSU5LKFZpZGVv
VG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklzQ29uZm9ybWFudFBpeGVsQnVmZmVyLCBC
b29sZWFuLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4QnVmKSwgKGNvbmZvcm1lciwgcGl4QnVmKSkKK1NPRlRfTElOSyhWaWRlb1Rvb2xi
b3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIsIE9TU3Rh
dHVzLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIsIENWUGl4ZWxCdWZmZXJS
ZWYgc291cmNlQnVmZmVyLCBCb29sZWFuIGVuc3VyZU1vZGlmaWFibGUsIENWUGl4ZWxCdWZmZXJS
ZWYqIGNvbmZvcm1lZEJ1ZmZlck91dCksIChjb25mb3JtZXIsIHNvdXJjZUJ1ZmZlciwgZW5zdXJl
TW9kaWZpYWJsZSwgY29uZm9ybWVkQnVmZmVyT3V0KSkKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yo
Q0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpCit7CisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKyAg
ICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciA9IG51bGxwdHI7CisgICAgVlRQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIpOworICAgIEFTU0VSVChjb25mb3JtZXIpOworICAg
IG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBBU1NFUlQoIWF0dHJpYnV0ZXMpOworI2VuZGlmCit9
CisKK3N0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFj
ayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0
aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOworICAg
IHJldHVybiBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOworfQorCitz
dGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCog
aW5mbywgY29uc3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9
IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAgIENWUGl4ZWxCdWZmZXJV
bmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5
KTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9p
ZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxlYXNlKHBpeGVsQnVmZmVyKTsK
K30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0
ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcmF3QnVmZmVyKQoreworICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyByYXdCdWZmZXIgfTsKKyAgICBz
aXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVyLmdldCgpKTsKKyAgICBz
aXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpOworCisj
aWYgVVNFKFZJREVPVE9PTEJPWCkKKyAgICBpZiAoIVZUUGl4ZWxCdWZmZXJDb25mb3JtZXJJc0Nv
bmZvcm1hbnRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIuZ2V0KCkp
KSB7CisgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVyID0gbnVsbHB0cjsKKyAg
ICAgICAgT1NTdGF0dXMgc3RhdHVzID0gVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNvcHlDb25mb3Jt
ZWRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZmZXIuZ2V0KCksIGZhbHNl
LCAmb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAhb3V0cHV0
QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJ1ZmZlciA9IGFk
b3B0Q0Yob3V0cHV0QnVmZmVyKTsKKyAgICB9CisjZW5kaWYKKworICAgIENHQml0bWFwSW5mbyBi
aXRtYXBJbmZvID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhRmly
c3Q7CisgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93
KGJ1ZmZlci5nZXQoKSk7CisgICAgc2l6ZV90IGJ5dGVMZW5ndGggPSBDVlBpeGVsQnVmZmVyR2V0
RGF0YVNpemUoYnVmZmVyLmdldCgpKTsKKworICAgIENGUmV0YWluKGJ1ZmZlci5nZXQoKSk7IC8v
IEJhbGFuY2VkIGJ5IENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIGluIHByb3ZpZGVy
Q2FsbGJhY2tzLgorICAgIENHRGF0YVByb3ZpZGVyRGlyZWN0Q2FsbGJhY2tzIHByb3ZpZGVyQ2Fs
bGJhY2tzID0geyAwLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjaywgQ1ZQaXhl
bEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrLCAwLCBDVlBpeGVsQnVmZmVyUmVsZWFz
ZUluZm9DYWxsYmFjayB9OworICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlk
ZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlRGlyZWN0KGJ1ZmZlci5nZXQoKSwgYnl0
ZUxlbmd0aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7CisKKyAgICByZXR1cm4gYWRvcHRDRihDR0lt
YWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3Bh
Y2VSZWYoKSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIG51bGxwdHIsIGZhbHNlLCBrQ0dS
ZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NmVhODFiMjA3MTA3MDgyMmJkYThhODhkYmNmNTZmYzUyMmVlOWMwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
X2gKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVl
VlRQaXhlbEJ1ZmZlckNvbmZvcm1lciogVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZjsKK3R5cGVk
ZWYgc3RydWN0IENHSW1hZ2UqIENHSW1hZ2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVy
ICpDVlBpeGVsQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YgeworcHVibGljOgorICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yo
Q0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBj
cmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKKworcHJpdmF0ZToK
KyNpZiBVU0UoVklERU9UT09MQk9YKQorICAgIFJldGFpblB0cjxWVFBpeGVsQnVmZmVyQ29uZm9y
bWVyUmVmPiBtX3BpeGVsQ29uZm9ybWVyOworI2VuZGlmCit9OworCit9CisKKyNlbmRpZiAvLyBQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTZkZDc2ZTkzYjc2
ZDAzNDZmNzM5ZDJjZTM0NTIxMTcyNzg2NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRleHR1cmVDYWNoZUNWX2gKKyNkZWZpbmUgVGV4dHVy
ZUNhY2hlQ1ZfaAorCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1ZmZlclJlZjsKK3R5
cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0eXBlZGVmIENWSW1h
Z2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWT3Bl
bkdMVGV4dHVyZUNhY2hlICpDVk9wZW5HTFRleHR1cmVDYWNoZVJlZjsKK3R5cGVkZWYgc3RydWN0
IF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKKworY2xhc3Mg
VGV4dHVyZUNhY2hlQ1YgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8VGV4
dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOworCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNhY2hl
VHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2Vs
c2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmICBUZXh0dXJlQ2FjaGVUeXBl
OworICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2VuZGlmCisK
KyAgICBUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYsIFJldGFpblB0cjxUZXh0dXJl
Q2FjaGVUeXBlPiYmKTsKKworICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4gdGV4dHVyZUZyb21J
bWFnZShDVkltYWdlQnVmZmVyUmVmLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5
cGUpOworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRl
eHQ7CisgICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IG1fY2FjaGU7CisgICAgV2Vha1B0
ckZhY3Rvcnk8VGV4dHVyZUNhY2hlQ1Y+IG1fd2Vha1B0ckZhY3Rvcnk7Cit9OworCit9CisKKyNl
bmRpZiAvLyBUZXh0dXJlQ2FjaGVDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Y2MwM2ZlOTQ3
NDhiNTE5NDE2Zjk3YmM2NzUyNzJmYTNhMzk3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAtMCwwICsx
LDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0
dXJlQ2FjaGVDVi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKworI2luY2x1
ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1
bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKEdyYXBoaWNz
Q29udGV4dDNEJiBjb250ZXh0KQoreworICAgIFRleHR1cmVDYWNoZVR5cGUgY2FjaGUgPSBudWxs
cHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMRVNU
ZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC5w
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7CisjZWxzZQorICAg
IENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIENH
TEdldFBpeGVsRm9ybWF0KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKSwgbnVs
bHB0ciwgJmNhY2hlKTsKKyNlbmRpZgorICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5TdWNjZXNz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVU
eXBlPiBzdHJvbmdDYWNoZSA9IGFkb3B0Q0YoY2FjaGUpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFRleHR1cmVDYWNoZUNWPihjb250ZXh0LCBXVEZNb3ZlKHN0cm9uZ0NhY2hlKSk7Cit9
CisKK1RleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYgY29u
dGV4dCwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYgY2FjaGUpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fY2FjaGUoY2FjaGUpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCit7Cit9CisKK1JldGFpblB0cjxUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZVR5cGU+IFRl
eHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2UsIEdD
M0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSkKK3sKKyAgICBUZXh0dXJlVHlwZSBi
YXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisgICAgc2l6ZV90
IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3QgaGVpZ2h0
ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisgICAgaWYgKGtDVlJldHVyblN1Y2Nl
c3MgIT0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5nZXQoKSwgaW1hZ2UsIG51bGxwdHIsIG91dHB1dFRhcmdl
dCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgbGV2ZWwsICZi
YXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShvdXRwdXRUYXJnZXQpOworICAgIFVOVVNFRF9QQVJBTShsZXZlbCk7CisgICAg
VU5VU0VEX1BBUkFNKGludGVybmFsRm9ybWF0KTsKKyAgICBVTlVTRURfUEFSQU0oZm9ybWF0KTsK
KyAgICBVTlVTRURfUEFSQU0odHlwZSk7CisgICAgaWYgKGtDVlJldHVyblN1Y2Nlc3MgIT0gQ1ZP
cGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCAmYmFyZVZpZGVvVGV4dHVyZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgUmV0YWluUHRyPFRleHR1cmVUeXBl
PiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOworCisgICAgYXV0byB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10geworICAgICAgICBp
ZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX2NhY2hlLmdldCgpKQorI2lmIFBMQVRGT1JNKElP
UykKKyAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaChjYWNoZSwgMCk7Cisj
ZWxzZQorICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaChjYWNoZSwgMCk7Cisj
ZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiB2aWRlb1RleHR1cmU7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNv
cGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4
dHVyZUNvcGllckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDFlYTM5YzgxMDcwOGQ1YmM1OTQ2NDAxMGZi
Y2VmNDdiYjVmY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC0wLDAgKzEsMjEyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWRlb1RleHR1cmVD
b3BpZXJDVi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgPE9wZW5HTEVTL0VTMy9n
bGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1ZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVDb3Bp
ZXJDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0
KQorICAgICwgbV9yZWFkRnJhbWVidWZmZXIoY29udGV4dC5jcmVhdGVGcmFtZWJ1ZmZlcigpKQor
eworfQorCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVvVGV4dHVyZUNvcGllckNWKCkKK3sK
KyAgICBtX2NvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fcmVhZEZyYW1lYnVmZmVyKTsKK30K
KworI2lmICFMT0dfRElTQUJMRUQKKworI2RlZmluZSBTVFJJTkdJRllfUEFJUihlKSBlLCAjZQor
c3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4mIGVudW1Ub1N0cmluZ01hcCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBj
aGFyKj4+IG1hcDsKKyAgICBpZiAobWFwLmdldCgpLmVtcHR5KCkpIHsKKyAgICAgICAgc3RkOjpt
YXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1Ix
NlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyVUkpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMySSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzgpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkYpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkYpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkpKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfU1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfU1JHQjhfQUxQSEE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQkE0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjEwX0EyKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDMyRikpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDI0X1NURU5DSUw4KSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMzJGX1NURU5DSUw4
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Up
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHX0lOVEVHRVIpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhfU1RFTkNJTCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9C
WVRFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX1NIT1JUXzVfNl81KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV81XzVfMSkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9CWVRFKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZfRkxPQVQpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVQpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlQpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU0hPUlQpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UKSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0lOVCkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9S
RVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdO
RURfSU5UXzI0XzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7CisKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JFRF9JTlRFR0VS
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQl9JTlRF
R0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOF9T
Tk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I1
NjUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOF9T
Tk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTFG
X0cxMUZfQjEwRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0I5X0U1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
OFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhJ
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2VUkp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZJKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyVUkpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4X1NOT1JNKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkExNkYpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMyRikpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBOFVJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4SSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMlVJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkExNlVJKSk7Cisg
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkExNkkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTMySSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJVSSkpOworICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I1X0ExKSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkFfSU5URUdFUikpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5U
XzEwRl8xMUZfMTFGX1JFVikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsKKyNlbmRpZgorICAgIH0KKyAgICBy
ZXR1cm4gbWFwLmdldCgpOworfQorCisjZW5kaWYKKworYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJD
Vjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVUeXBlIGlucHV0VGV4
dHVyZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1
dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVt
dWx0aXBseUFscGhhLCBib29sIGZsaXBZKQoreworICAgIGlmIChmbGlwWSB8fCBwcmVtdWx0aXBs
eUFscGhhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlucHV0VGV4dHVyZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFBsYXRmb3Jt
M0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZShpbnB1
dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IENWT3BlbkdMRVNU
ZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZWxzZQorICAgIFBsYXRmb3JtM0RPYmpl
Y3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5hbWUoaW5wdXRUZXh0dXJl
KTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTFRleHR1cmVHZXRU
YXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgTE9HKE1lZGlhLCAiVmlkZW9UZXh0
dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSglcCkgLSBpbnRl
cm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwgdGhpcywgZW51bVRvU3RyaW5n
TWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVtmb3JtYXRdLCBlbnVtVG9T
dHJpbmdNYXAoKVt0eXBlXSk7CisKKyAgICAvLyBTYXZlIHRoZSBvcmlnaWFsIGJvdW5kIHRleHR1
cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmluZCB0aGVtIGFmdGVyIGNvcHlp
bmcgdGhlIHZpZGVvIHRleHR1cmUuCisgICAgR0MzRGludCBib3VuZFRleHR1cmUgPSAwOworICAg
IEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOworICAgIG1fY29udGV4dC0+Z2V0SW50
ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR18yRCwgJmJvdW5kVGV4dHVy
ZSk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9G
UkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOworCisgICAgbV9jb250
ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVyZU5hbWUpOwor
ICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBo
aWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRl
cmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworCisgICAgLy8g
TWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9tIHdoaWNoIGRyYXdpbmcg
Y29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KKyAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZl
cihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgbV9yZWFkRnJhbWVidWZmZXIp
OworCisgICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkgZm9yIHRoZSBvdXRwdXQg
dGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgb3V0cHV0
VGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFw
aGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmYoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dC0+
dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7
CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIG51bGxwdHIpOwor
CisgICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRoZSBmcmFtZWJ1ZmZlci4KKyAg
ICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFE
X0ZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIHZpZGVv
VGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSwgbGV2ZWwpOworCisgICAgR0MzRGVudW0g
c3RhdHVzID0gbV9jb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29udGV4
dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKKyAgICBpZiAoc3RhdHVzICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Ly8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIgKGFuZCB0aHVzIHRoZSB2
aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCisgICAgbV9jb250ZXh0LT5jb3B5
VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgMCwgMCwgd2lk
dGgsIGhlaWdodCwgMCk7CisKKyAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFu
ZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1
dFRhcmdldCwgYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRSZWFkRnJhbWVidWZmZXIp
OworCisgICAgcmV0dXJuICFtX2NvbnRleHQtPmdldEVycm9yKCk7Cit9CisKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29w
aWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVy
ZUNvcGllckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmNTEyZjg5YWNjNDVmYTVjYzRkNmI3YmMzZTBmOGVj
ZTMyZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorI2RlZmluZSBWaWRlb1RleHR1cmVD
b3BpZXJDVl9oCisKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dDNELmgiCisKK3R5cGVkZWYgc3Ry
dWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVy
UmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5H
TEVTVGV4dHVyZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb1RleHR1
cmVDb3BpZXJDViB7CitwdWJsaWM6CisgICAgVmlkZW9UZXh0dXJlQ29waWVyQ1YoR3JhcGhpY3ND
b250ZXh0M0QmKTsKKyAgICB+VmlkZW9UZXh0dXJlQ29waWVyQ1YoKTsKKworI2lmIFBMQVRGT1JN
KElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRleHR1cmVUeXBlOworI2Vs
c2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbmRpZgor
CisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUs
IHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVy
bmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSk7CisKKyAgICBHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCgp
IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZjxHcmFwaGlj
c0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFBsYXRmb3JtM0RPYmplY3QgbV9yZWFkRnJhbWVi
dWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggMDc3ODM1ZDVlMjEyOWVlOWVlZmY4ZDQwYTFk
NDUwNzE5ODRhYzU2MS4uOTc2ODRmMjdkNGQ2MTQ0MDVlY2Y2ZjcwZTk3ZDczNTc3MGMyMThkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTIsNyArNTIsNiBAQCB0eXBlZGVm
IEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCBBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXRUeXBlOwog
dHlwZWRlZiBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBBVkNhcHR1cmVWaWRlb1ByZXZpZXdM
YXllclR5cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQot
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8pCiAKIFNPRlRfTElOS19DTEFT
UyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBTT0ZUX0xJTktfQ0xBU1MoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC04MSwxNyArODAsNiBAQCBTT0ZUX0xJTktf
UE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3csIE5TU3RyaW5n
ICopCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4IGdldEFWQ2FwdHVyZVNl
c3Npb25QcmVzZXQzNTJ4Mjg4KCkKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblByZXNldExvdyBn
ZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93KCkKIAotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQ
aXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
KSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRI
ZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzLCB2
b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09G
VF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3QsIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVW
aWRlbywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZl
ciwgbG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tC
YXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9w
dGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQotU09GVF9M
SU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwg
TlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQs
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272523</attachid>
            <date>2016-02-29 15:10:13 -0800</date>
            <delta_ts>2016-02-29 16:09:50 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229150957.patch</filename>
            <type>text/plain</type>
            <size>89677</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAyYjllODFkNWY4ZDA4
OTMyNDFlY2ExMGQ5ZjU4ZWQwYTBjZDAxMy4uMmFiZDA3YjI3NjdjZTVlNzk5ZTM1YTY1N2QxMGMw
MjhiMGQ2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTIyICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIE1vdmVkIGxpYnJhcnkgc2V0
dXAgY29kZSB0byBXRUJLSVRfRlJBTUVXT1JLIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2YTYxNGUyOWY2MzlkYjIx
MWIzODQ4MmE3M2Q3M2JiZmIyNzFhOTUuLjhmOGUxYjFkMDg3MTU0ZDA4Y2Y2Njg3MzAzZmUzZjU1
MDZhZmYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYwNjYsNiArNjA2NiwxMCBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBF
RTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1
ZmZlclByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
OyB9OworCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdE
MzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07
CisJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OworCQlDRDdE
MzM0NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQx
MjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDgxQzdBMTZCRjAw
MDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NjFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVv
U29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q3REJCMjgxOENBMTlBNDAwQzExMDY2IC8qIENTU0dyaWRM
aW5lTmFtZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDdEQkIyNjE4Q0ExMUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCAqLzsgfTsKIAkJQ0Q3REJCMjkxOENBMTlDNjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
QEAgLTYwODIsNiArNjA4NiwxMCBAQAogCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlk
ZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCNUE0NTE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291
cmNlLmggKi87IH07CiAJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QjVBNDgxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggKi87IH07
CiAJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTRCMTgw
RTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5RDgy
NzUxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8q
IFRleHR1cmVDYWNoZUNWLm1tICovOyB9OworCQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOUQ4Mjc0MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oICovOyB9
OworCQlDRDlEODI3OTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgyNzcx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLzsgfTsKKwkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3ODFDN0I4RUUxMDA2
RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLzsgfTsKIAkJQ0Q5REUxNzQxN0FBQzc0
QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q5REUx
N0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC0xNDAxOSw2ICsxNDAyNywxMCBAQAogCQlD
RDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENjQxRUJFMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRp
YVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQ1MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEQkIyNjE4Q0ExMUZGMDBDMTEw
NjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0RCQjI3MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVz
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTR3JpZExpbmVOYW1l
c1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAzOSw2ICsxNDA1MSwxMCBAQAogCQlDRDhCNUE0ODE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRy
YWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNEEx
ODBFMTdBMzAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9U
cmFja01lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NEIxODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVD
YWNoZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dHVy
ZUNhY2hlQ1YubW07IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNo
ZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHR1cmVDYWNoZUNWLmg7
IHBhdGggPSAuLi9jdi9UZXh0dXJlQ2FjaGVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NzFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlEODI3ODFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlERTE3MzE3QUFD
NzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
OURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTk4MCw2ICsxOTk5Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkxQSAvKiBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKKwkJCQlDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovLAorCQkJCUNEN0QzMzQ2MUM3QTE2
QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICovLAogCQkJCTdDNzk0MUUyMUM1NkMy
OTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tICovLAogCQkJCTdDNzk0
MUUzMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8sCiAJ
CQkJNUQ4QzREQkQxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
Y3BwICovLApAQCAtMjE4NDcsNiArMjE4NjUsNyBAQAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMy
NkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8q
IGNhICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAqLywKKwkJCQlDRDlE
ODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQx
NDQwIC8qIGNvY29hICovLAogCQkJCTkzMzJBQjNCMTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8s
CiAJCQkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0cyAqLywKQEAgLTIz
MDU1LDYgKzIzMDc0LDIwIEBACiAJCQlwYXRoID0gbWVkaWFjb250cm9sczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNEOUQ4MjdDMUM3QkIyRUQwMDZGRjA2NiAvKiBjdiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAorCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJQ0Q5RDgyNzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi8sCisJCQkJ
Q0Q5RDgyNzMxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tICovLAorCQkJCUNE
OUQ4Mjc3MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8sCisJ
CQkJQ0Q5RDgyNzgxQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IGN2OworCQkJcGF0aCA9IGNnOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1l
ZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1MTk0
LDYgKzI1MjI3LDcgQEAKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4
QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEJBNTA5MDFCQ0ZCRDk1MDBFMzRFRjcgLyogQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0RkExODUx
QkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTc3LDYgKzI3MDExLDcgQEAKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyog
SlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEw
RDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc4MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDN0EwQTA3NEYyNjAw
OTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTMsNiArMjc3
MjgsNyBAQAogCQkJCTA3OEUwOTJBMTdEMTREMUMwMDQyMEFBMSAvKiBSVENTdGF0c1JlcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTQ1MTdEMTZFMUMwMDQyMEFBMSAv
KiBSVENTdGF0c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUQ4Mjc2MUM3QUU1MzUw
MDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkMx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTQ2MTdEMTZFMUMwMDQyMEFBMSAvKiBSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUUyQzQzNjgxQkNFRTM3NzAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTcsNiArMjgyNTMsNyBAQAogCQkJCTdDQzU2NEI4MThC
QUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzY1MDQ2QTkxNjdCRkI1NTAwQ0MyQTREIC8qIFRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RTk0NEREMUFDNEI0RUEwMDdCODVCNSAv
KiBUZXJtLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcw
MDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1
NkU1ODEgLyogVGV4dEFmZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5Mzc5LDYgKzI5NDE2LDcgQEAKIAkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyog
RG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxQTM3QUUwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDBGQkQwMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdEMzM0MzFD
N0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTk4NDgwOTFBMUU2Q0JGMDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDMjBEQjU1Q0RDMDAxREI3OTQgLyogRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUQzODlCMzBBOTkxQTdGMDAyODIx
NDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk1NTEsNiArMjk1ODksNyBAQAog
CQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
N0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTQxMjk5QjFDNkMxNjc0MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgzMSw2ICsyOTg3MCw3IEBACiAJ
CQkJQThFQTc5RjgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQzI3MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MTWV0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzUxQzdBRTUz
NTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQ1NDQy
NEExMTlCMzY2MTAwOUJFOTEyIC8qIEhUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDRkY3QTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxNb2RFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4REYzRkQ1MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MTmFtZUNvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTI0NSw2ICszMTI4NSw3IEBACiAJCQkJQTg3
MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNEOUQ4Mjc5MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMDkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuY3BwCmluZGV4IDI4YjlhNmFmZjk4ZjEyMWMwZTRiNTEyNzBmZWEyZWFlYjZkMzkxZmIu
LjEyMjQxNGY3OGYyNzNiZmEyNDgzOTEyZGJhNDI1ZTQ2NTdkZjc1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTM1LDEwICsz
NSwxMiBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNv
dXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQq
IGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBkZXN0aW5hdGlvbikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8sIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2Ft
cGxlSW5kZXgsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1w
bGVJbmRleCwgdGltaW5nSW5mb091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEs
IENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1l
LCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRz
LCBwcmVmZXJyZWRUaW1lU2NhbGUpKQpAQCAtMTIyLDcgKzEyNCw2IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oV0lOKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVB
ZGQsIENNVGltZSwgKENNVGltZSBhZGRlbmQxLCBDTVRpbWUgYWRkZW5kMiksIChhZGRlbmQxLCBh
ZGRlbmQyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg3OTViNWIwNjhiNmQ2MzAy
ZGFkN2E3YmY3OGFhNzUxZTkxMTI5MTAuLmNkMmQ0MDJkZjY5OTU0NjlkZjhlZWNhZDgwMWZiMGQ5
MzBlMjYwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29m
dExpbmsuaApAQCAtMzksMTIgKzM5LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpCiAjZGVm
aW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3Jt
YXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBs
ZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxl
SW5kZXgsIHRpbWluZ0luZm9PdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUNv
bXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb21w
YXJlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
VGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkKQEAgLTIwNiw4
ICsyMTAsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdAogCiAjaWYgUExBVEZPUk0oV0lOKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGlt
ZUFkZCwgQ01UaW1lLCAoQ01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEs
IGFkZGVuZDIpKQotI2RlZmluZSBDTVRpbWVBZGQgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUFk
ZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRp
bWVNYWtlRnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRp
Y3QpKQogI2RlZmluZSBDTVRpbWVNYWtlRnJvbURpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1ha2VGcm9tRGljdGlvbmFyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5NmI2ZWI3YWUz
ZjA3YjczMjJmMTk0NWM1NTBmYjMzMjJmMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlNvZnRM
aW5raW5nLmgiCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorCitTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0
aCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4
ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0
aW9uRmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5s
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmluZ1JlZikKKworI2lmIFBMQVRGT1JNKElPUykK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJpYnV0ZXMsIENWRUFHTENvbnRleHQgZWFnbENv
bnRleHQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGVhZ2xD
b250ZXh0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3Jl
YXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVm
IHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0
YXJnZXQsIEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5H
TEVTVGV4dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291
cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVD
YWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdM
RVNUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSks
IChpbWFnZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlk
ZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xFU1RleHR1cmVS
ZWYgaW1hZ2UpLCAoaW1hZ2UpKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZWxzZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSwgQ1ZSZXR1
cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBjYWNoZUF0dHJp
YnV0ZXMsIENHTENvbnRleHRPYmogY2dsQ29udGV4dCwgQ0dMUGl4ZWxGb3JtYXRPYmogY2dsUGl4
ZWxGb3JtYXQsIENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0
dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBjZ2xD
b250ZXh0LCBjZ2xQaXhlbEZvcm1hdCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gs
IHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxh
Z3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQs
IEdMZW51bSwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdl
dE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1Nv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiMDUzZWUwNjdiZDA5NDZlNDFkNjFjMDAwODMwMjQzNmFiMmY0OTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlk
ZW9Tb2Z0TGluay5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvcmVW
aWRlb1NvZnRMaW5rX2gKKyNkZWZpbmUgQ29yZVZpZGVvU29mdExpbmtfaAorCisjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKKyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBl
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwg
Q1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkK
KworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXkoKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5
UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9u
YXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNo
ZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVB
dHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUlt
YWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENG
RGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50
ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0
ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVy
ZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZs
YWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJn
ZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1Rl
eHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFn
ZSkpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxpdHlLZXksIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0
aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNG
Qk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVy
biwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmli
dXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhl
bEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENv
bnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRl
eHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1h
Z2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9w
ZW5HTFRleHR1cmVSZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNv
dXJjZUltYWdlLCBhdHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwg
dm9pZCwgKENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFn
cyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0
TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0
X0NvcmVWaWRlb19rQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlL
ZXkoKQorI2VuZGlmCisKKyNlbmRpZiAvLyBDb3JlVmlkZW9Tb2Z0TGlua19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NC4u
ODc4MDg4YzM3M2MzN2VkYWI2ZWZmYWI1MGM5YmRlYjQ4M2E3YzQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtNTcsNyArNTcsNiBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0OwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IE9w
YXF1ZVZUUGl4ZWxUcmFuc2ZlclNlc3Npb24qIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY7CiAj
aWYgUExBVEZPUk0oSU9TKQogdHlwZWRlZiBzdHJ1Y3QgIF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZSAqQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZjsKICNlbHNlCkBAIC03MSw4ICs3MCwxMSBAQCBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOworY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFRleHR1cmVDYWNoZUNWOworY2xhc3MgVmlkZW9UZXh0dXJl
Q29waWVyQ1Y7CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXI7CkBAIC0zNDUsMTcgKzM0NywxMiBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQ+IG1fb3BlbkdMVmlkZW9PdXRwdXQ7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmPiBtX29wZW5HTFRleHR1cmVD
YWNoZTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmPiBtX29w
ZW5HTFRleHR1cmVDYWNoZTsKLSNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2Fj
aGVDVj4gbV90ZXh0dXJlQ2FjaGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNv
cGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbV9sYXN0T3BlbkdMSW1hZ2U7CiAjZW5kaWYKIAotI2lmIFVTRShWSURFT1RPT0xCT1gp
Ci0gICAgUmV0YWluUHRyPFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWY+IG1fcGl4ZWxUcmFuc2Zl
clNlc3Npb247Ci0jZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTMzZWFjMWQ5N2NhMzhlYmRlNzcwMDk0NGVi
OTBhZmRmMjdhYjVkNy4uYmNlYjFjYmM1NTJjMmMyMGUzMTczNjliN2FhMTE1MTU4MDZmMzllNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0ICJNZWRp
YVBsYXliYWNrVGFyZ2V0TW9jay5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9i
akMuaCIKICNpbXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgorI2ltcG9ydCAiUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1w
b3J0ICJRdWFydHpDb3JlU1BJLmgiCiAjaW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjAs
NyArNjEsOSBAQAogI2ltcG9ydCAiU2V0dGluZ3MuaCIKICNpbXBvcnQgIlRleHRFbmNvZGluZy5o
IgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlRleHR1cmVD
YWNoZUNWLmgiCiAjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJD
Vi5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgi
CkBAIC0xMTAsOSArMTEzLDcgQEAKICNpbmNsdWRlICJDRk5TVVJMQ29ubmVjdGlvblNQSS5oIgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8T3BlbkdMRVMvRVMzL2dsZXh0
Lmg+Ci0jZW5kaWYKKyNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBz
dGQgewogdGVtcGxhdGUgPD4gc3RydWN0IGl0ZXJhdG9yX3RyYWl0czxIYXNoU2V0PFJlZlB0cjxX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+Pjo6aXRlcmF0b3I+IHsKQEAgLTE0
OSwyNSArMTUwLDYgQEAgdHlwZWRlZiBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIEFWTWVkaWFTZWxl
Y3Rpb25PcHRpb25UeXBlOwogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRp
b24pCiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQ29yZUltYWdlKQotU09GVF9MSU5L
X0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8pCi0KLSNpZiBVU0UoVklERU9UT09MQk9YKQot
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChWaWRlb1Rvb2xib3gpCi0jZW5kaWYKLQotU09G
VF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1
ZmZlckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIp
LCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5
dGVzUGVyUm93LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVs
QnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwg
c2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1T
T0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlLCBPU1R5
cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRf
TElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAo
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAo
cGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVm
ZmVyVW5sb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykp
Ci0KLSNpZiBVU0UoVklERU9UT09MQk9YKQotU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhl
bFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWYgKnBpeGVsVHJhbnNmZXJTZXNzaW9uT3V0KSwg
KGFsbG9jYXRvciwgcGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpKQotU09GVF9MSU5LKFZpZGVvVG9v
bGJveCwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UsIE9TU3RhdHVzLCAoVlRQ
aXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNzaW9uLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1
ZmZlciwgQ1ZQaXhlbEJ1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciksIChzZXNzaW9uLCBzb3Vy
Y2VCdWZmZXIsIGRlc3RpbmF0aW9uQnVmZmVyKSkKLSNlbmRpZgogCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVlBsYXllcikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFW
UGxheWVySXRlbSkKQEAgLTE5NSw3ICsxNzcsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5k
YXRpb24sIEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCiBT
T0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVB
c3BlY3QsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5
ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BP
SU5URVIoQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplLCBOU1N0cmluZyAq
KQotU09GVF9MSU5LX1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0
VHlwZUtleSwgTlNTdHJpbmcgKikKIAogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3Vu
ZGF0aW9uLCBBVlVSTEFzc2V0Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlNTdHJpbmcgKikK
IApAQCAtMjIyLDcgKzIwMyw2IEBAIFNPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKEFWRm91bmRh
dGlvbiwgQVZVUkxBc3NldENsaWVudEJ1bmRsZUlkZW50aWZpZXJLZXksIE5TCiAjZGVmaW5lIEFW
TGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QgZ2V0QVZMYXllclZpZGVvR3Jhdml0eVJlc2l6
ZUFzcGVjdCgpCiAjZGVmaW5lIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIGdl
dEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsKCkKICNkZWZpbmUgQVZMYXllclZp
ZGVvR3Jhdml0eVJlc2l6ZSBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplKCkKLSNkZWZpbmUg
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJQaXhlbEZv
cm1hdFR5cGVLZXkoKQogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dS
T1VQKQogdHlwZWRlZiBBVk1lZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlvbkdyb3Vw
VHlwZTsKQEAgLTI5MSwyNCArMjcxLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNlTmFtZSwgTlNTdHJpbmcgKikKICNkZWZp
bmUgQVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUgZ2V0QVZVUkxBc3NldEJvdW5k
TmV0d29ya0ludGVyZmFjZU5hbWUoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi1TT0ZU
X0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRl
cywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRy
aWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3Is
IGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1cmVBdHRyaWJ1dGVzLCBjYWNoZU91
dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4
dHVyZUZyb21JbWFnZSwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJj
ZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQs
IEdMaW50IGludGVybmFsRm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4
dHVyZVJlZiogdGV4dHVyZU91dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1h
Z2UsIHRleHR1cmVBdHRyaWJ1dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBmb3JtYXQsIHR5cGUsIHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQotU09GVF9MSU5LKENv
cmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0
dXJlQ2FjaGUsIG9wdGlvbnMpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1
cmVHZXRUYXJnZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdl
KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSwgR0x1aW50
LCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LX1BPSU5U
RVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSwgTlNTdHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVu
R0xFU0ZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xF
U0ZCT0NvbXBhdGliaWxpdHlLZXkoKQotI2Vsc2UKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3Bl
bkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250
ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRl
eHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxs
b2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0
dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVklt
YWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZP
cGVuR0xUZXh0dXJlUmVmKiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBz
b3VyY2VJbWFnZSwgYXR0cmlidXRlcywgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVv
LCBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoLCB2b2lkLCAoQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVS
ZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlvbkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBv
cHRpb25zKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwg
R0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldE5hbWUsIEdMdWludCwgKENWT3BlbkdMVGV4dHVy
ZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtDVlBp
eGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgTlNTdHJpbmcgKikK
LSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5
IGdldGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCi0j
ZW5kaWYKLQogU09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCiBTT0ZUX0xJTktfT1BU
SU9OQUwoTWVkaWFUb29sYm94LCBNVEVuYWJsZUNhcHRpb24yMDE1QmVoYXZpb3IsIEJvb2xlYW4s
ICgpLCAoKSkKIApAQCAtMjIyMCwzOSArMjE4MiwxMiBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZm
ZQogICAgICAgICBjcmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0
KTsKIAotI2lmICFMT0dfRElTQUJMRUQKLSAgICBkb3VibGUgc3RhcnQgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKTsKLSNlbmRpZgotCiAgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gW21f
YXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXTsKIAogICAgIGlmICghW21fdmlkZW9PdXRw
dXQuZ2V0KCkgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZV0pCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlciA9
IGFkb3B0Q0YoW21fdmlkZW9PdXRwdXQuZ2V0KCkgY29weVBpeGVsQnVmZmVyRm9ySXRlbVRpbWU6
Y3VycmVudFRpbWUgaXRlbVRpbWVGb3JEaXNwbGF5Om5pbF0pOwotICAgIGlmICghYnVmZmVyKQot
ICAgICAgICByZXR1cm4gMDsKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0gICAgLy8gQ3JlYXRl
IGEgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbiwgaWYgbmVjZXNzYXJ5LCBhcyB3ZSBjYW5ub3QgZ3Vh
cmFudGVlIHRpbWVseSBkZWxpdmVyeSBvZiBBUkdCIHBpeGVscy4KLSAgICBpZiAoIW1fcGl4ZWxU
cmFuc2ZlclNlc3Npb24pIHsKLSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiBzZXNz
aW9uID0gMDsKLSAgICAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAmc2Vzc2lvbik7Ci0gICAgICAgIG1fcGl4ZWxUcmFuc2ZlclNlc3Npb24gPSBh
ZG9wdENGKHNlc3Npb24pOwotICAgIH0KLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVm
ZmVyOwotICAgIENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKGJ1ZmZlci5nZXQoKSksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoYnVm
ZmVyLmdldCgpKSwga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSwgMCwgJm91dHB1dEJ1ZmZlcik7
Ci0gICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV9waXhlbFRyYW5zZmVy
U2Vzc2lvbi5nZXQoKSwgYnVmZmVyLmdldCgpLCBvdXRwdXRCdWZmZXIpOwotICAgIGJ1ZmZlciA9
IGFkb3B0Q0Yob3V0cHV0QnVmZmVyKTsKLSNlbmRpZgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAg
IGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7
Ci0gICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlUGl4ZWxCdWZmZXIoJXApIC0gY3JlYXRpbmcgYnVmZmVyIHRvb2sgJS40ZiIsIHRoaXMsIG5h
cnJvd1ByZWNpc2lvblRvRmxvYXQoZHVyYXRpb24pKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGJ1
ZmZlcjsKKyAgICByZXR1cm4gYWRvcHRDRihbbV92aWRlb091dHB1dC5nZXQoKSBjb3B5UGl4ZWxC
dWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9PdXRwdXRI
YXNBdmFpbGFibGVGcmFtZSgpCkBAIC0yMjY5LDQzICsyMjA0LDYgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkK
ICAgICByZXR1cm4gW21fdmlkZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpb
bV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdXTsKIH0KIAotc3RhdGljIGNvbnN0IHZvaWQqIENW
UGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KGluZm8pOwotICAgIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtD
VlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7Ci0gICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJS
ZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKikKLXsKLSAg
ICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZl
clJlZj4oaW5mbyk7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVm
ZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwotfQotCi1zdGF0aWMgdm9pZCBDVlBp
eGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayh2b2lkKiBpbmZvKQotewotICAgIENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZv
KTsKLSAgICBDRlJlbGVhc2UocGl4ZWxCdWZmZXIpOwotfQotCi1zdGF0aWMgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIpCi17Ci0gICAgLy8gcGl4ZWxCdWZmZXIgd2lsbCBiZSBvZiB0eXBlIGtDVlBpeGVs
Rm9ybWF0VHlwZV8zMkJHUkEuCi0gICAgQVNTRVJUKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1h
dFR5cGUocGl4ZWxCdWZmZXIpID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpOwotCi0gICAg
c2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKLSAgICBz
aXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7Ci0gICAg
c2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVsQnVm
ZmVyKTsKLSAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShw
aXhlbEJ1ZmZlcik7Ci0gICAgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8gPSBrQ0dCaXRtYXBCeXRl
T3JkZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFGaXJzdDsKLQotICAgIENGUmV0YWluKHBpeGVs
QnVmZmVyKTsgLy8gQmFsYW5jZWQgYnkgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sg
aW4gcHJvdmlkZXJDYWxsYmFja3MuCi0gICAgQ0dEYXRhUHJvdmlkZXJEaXJlY3RDYWxsYmFja3Mg
cHJvdmlkZXJDYWxsYmFja3MgPSB7IDAsIENWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxi
YWNrLCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2ssIDAsIENWUGl4ZWxC
dWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrIH07Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVy
UmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVEaXJlY3QocGl4ZWxC
dWZmZXIsIGJ5dGVMZW5ndGgsICZwcm92aWRlckNhbGxiYWNrcykpOwotCi0gICAgcmV0dXJuIGFk
b3B0Q0YoQ0dJbWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJSb3csIHNS
R0JDb2xvclNwYWNlUmVmKCksIGJpdG1hcEluZm8sIHByb3ZpZGVyLmdldCgpLCBOVUxMLCBmYWxz
ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZSgpCiB7CiAgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKQEAg
LTIzMTMsOCArMjIxMSwyOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnVwZGF0ZUxhc3RJbWFnZSgpCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVmZmVyRm9y
SXRlbVRpbWU6aXRlbVRpbWVGb3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUgcGl4ZWwg
YnVmZmVyCiAgICAgLy8gZm9yIHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBiZWVuIHJl
dHJpZXZlZC4gSW4gdGhpcyBjYXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55KQogICAg
IC8vIHNob3VsZCBiZSBkaXNwbGF5ZWQuCi0gICAgaWYgKHBpeGVsQnVmZmVyKQotICAgICAgICBt
X2xhc3RJbWFnZSA9IGNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgp
KTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1f
cGl4ZWxCdWZmZXJDb25mb3JtZXIpIHsKKyNpZiBVU0UoVklERU9UT09MQk9YKQorICAgICAgICBO
U0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBAeyAoTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleTogQChrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBKSB9OworI2Vsc2UK
KyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gbmlsOworI2VuZGlmCisgICAgICAg
IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1Y+KChDRkRpY3Rpb25hcnlSZWYpYXR0cmlidXRlcyk7CisgICAgfQorCisjaWYgIUxP
R19ESVNBQkxFRAorICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOworI2VuZGlmCisKKyAgICBtX2xhc3RJbWFnZSA9IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXIt
PmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKworI2lmICFM
T0dfRElTQUJMRUQKKyAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSAtIHN0YXJ0OworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZSglcCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAl
LjRmIiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9GbG9hdChkdXJhdGlvbikpOworI2VuZGlmCiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlk
ZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIG91dHB1
dFJlY3QpCkBAIC0yMzkyLDExMCArMjMxMCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdE9wZW5HTEltYWdlKCkKICAgICBtX2xhc3RPcGVuR0xJ
bWFnZSA9IGFkb3B0Q0YoW21fb3BlbkdMVmlkZW9PdXRwdXQgY29weVBpeGVsQnVmZmVyRm9ySXRl
bVRpbWU6Y3VycmVudFRpbWUgaXRlbVRpbWVGb3JEaXNwbGF5Om5pbF0pOwogfQogCi0jaWYgIUxP
R19ESVNBQkxFRAotCi0jZGVmaW5lIFNUUklOR0lGWV9QQUlSKGUpIGUsICNlCi1zdGF0aWMgc3Rk
OjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiYgZW51bVRvU3RyaW5nTWFwKCkKLXsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPj4gbWFw
OwotICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgewotICAgICAgICBzdGQ6Om1hcDx1aW50MzJf
dCwgY29uc3QgY2hhcio+IHN0cmluZ01hcDsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9SMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1IzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjhV
SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOEkpKTsK
LSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2VUkpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2SSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJVSSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJJKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHOCkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2RikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMyRikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRzhVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SRzhJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1JHMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SRzE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SRzMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkczMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9T
UkdCOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JB
OCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TUkdCOF9B
TFBIQTgpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdC
QTQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTBf
QTIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEhf
Q09NUE9ORU5UMTYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfREVQVEhfQ09NUE9ORU5UMjQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIMjRfU1RFTkNJTDgpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfREVQVEgzMkZfU1RFTkNJTDgpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9BTFBIQSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRUQpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdfSU5URUdFUikpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9TVEVOQ0lMKSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0JZVEUpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRf
NV82XzUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5T
SUdORURfU0hPUlRfNF80XzRfNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0JZVEUpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfSEFMRl9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9TSE9SVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlQpKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfSU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVikpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMjRf
OCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9GTE9BVF8z
Ml9VTlNJR05FRF9JTlRfMjRfOF9SRVYpKTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkVEX0lOVEVHRVIpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCX0lOVEVHRVIpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4X1NOT1JNKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjU2NSkpOwotICAg
ICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4X1NOT1JNKSk7Ci0g
ICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxMUZfRzExRl9CMTBG
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjlfRTUp
KTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZGKSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjMyRikpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4VUkpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOEkpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMTZVSSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkkpKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJVSSkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMkkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThfU05PUk0pKTsKLSAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2RikpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJGKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4VUkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQThJKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyVUkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2VUkpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTE2SSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMzJJKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMlVJKSk7Ci0gICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjVfQTEpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcpKTsKLSAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQV9JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVCkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfMTBGXzExRl8x
MUZfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VO
U0lHTkVEX0lOVF81XzlfOV85X1JFVikpOwotI2VuZGlmCi0gICAgfQotICAgIHJldHVybiBtYXAu
Z2V0KCk7Ci19Ci0KLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECi0KIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1
cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGZsaXBZKQogewogICAgIGlmIChmbGlwWSB8fCBwcmVtdWx0aXBseUFscGhh
KQpAQCAtMjUxMSw5NSArMjMyNSwyMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaAogICAgIGlm
ICghbV9sYXN0T3BlbkdMSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICgh
bV9vcGVuR0xUZXh0dXJlQ2FjaGUpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIENWT3Bl
bkdMRVNUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBudWxscHRyOwotICAgICAgICBDVlJldHVybiBl
cnJvciA9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAm
Y2FjaGUpOwotI2Vsc2UKLSAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWYgY2FjaGUgPSBu
dWxscHRyOwotICAgICAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQtPnBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC0+cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCgpKSwgbnVsbHB0ciwgJmNhY2hlKTsKLSNlbmRpZgotICAgICAgICBpZiAoZXJy
b3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgbV9vcGVuR0xUZXh0dXJlQ2FjaGUgPSBhZG9wdENGKGNhY2hlKTsKLSAgICB9Ci0KICAgICBz
aXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0
KCkpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KG1fbGFzdE9w
ZW5HTEltYWdlLmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDVk9wZW5HTEVTVGV4
dHVyZVJlZiBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3Vj
Y2VzcyAhPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBtX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSwgbV9sYXN0T3BlbkdM
SW1hZ2UuZ2V0KCksIG51bGxwdHIsIG91dHB1dFRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgbGV2ZWwsICZiYXJlVmlkZW9UZXh0dXJlKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIFJldGFpblB0cjxDVk9wZW5HTEVTVGV4dHVyZVJlZj4gdmlk
ZW9UZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2Jq
ZWN0IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUodmlkZW9UZXh0
dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTEVT
VGV4dHVyZUdldFRhcmdldCh2aWRlb1RleHR1cmUuZ2V0KCkpOwotI2Vsc2UKLSAgICBDVk9wZW5H
TFRleHR1cmVSZWYgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7Ci0gICAgaWYgKGtDVlJldHVy
blN1Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVu
R0xJbWFnZS5nZXQoKSwgbnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJl
ID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHZpZGVv
VGV4dHVyZU5hbWUgPSBDVk9wZW5HTFRleHR1cmVHZXROYW1lKHZpZGVvVGV4dHVyZS5nZXQoKSk7
Ci0gICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0dXJlR2V0VGFy
Z2V0KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0jZW5kaWYKLQotICAgIGF1dG8gd2Vha1RoaXMgPSBj
cmVhdGVXZWFrUHRyKCk7Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgW3dlYWtUaGlzXSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKGF1dG8gY2FjaGUgPSB3ZWFrVGhpcy0+bV9vcGVuR0xUZXh0
dXJlQ2FjaGUuZ2V0KCkpCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICAgICAgQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbHNlCi0gICAgICAgICAgICBDVk9wZW5H
TFRleHR1cmVDYWNoZUZsdXNoKGNhY2hlLCAwKTsKLSNlbmRpZgotICAgIH0pOwotCi0gICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCVwKSAtIGludGVybmFsRm9ybWF0OiAlcywgZm9ybWF0OiAl
cywgdHlwZTogJXMiLCB0aGlzLCBlbnVtVG9TdHJpbmdNYXAoKVtpbnRlcm5hbEZvcm1hdF0sIGVu
dW1Ub1N0cmluZ01hcCgpW2Zvcm1hdF0sIGVudW1Ub1N0cmluZ01hcCgpW3R5cGVdKTsKLQotICAg
IC8vIFNhdmUgdGhlIG9yaWdpYWwgYm91bmQgdGV4dHVyZSAmIGZyYW1lYnVmZmVyIG5hbWVzIHNv
IHdlIGNhbiByZS1iaW5kIHRoZW0gYWZ0ZXIgY29weWluZyB0aGUgdmlkZW8gdGV4dHVyZS4KLSAg
ICBHQzNEaW50IGJvdW5kVGV4dHVyZSA9IDA7Ci0gICAgR0MzRGludCBib3VuZFJlYWRGcmFtZWJ1
ZmZlciA9IDA7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfQklORElOR18yRCwgJmJvdW5kVGV4dHVyZSk7Ci0gICAgY29udGV4dC0+Z2V0SW50ZWdl
cnYoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5kUmVh
ZEZyYW1lYnVmZmVyKTsKLQotICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKHZpZGVvVGV4dHVyZVRh
cmdldCwgdmlkZW9UZXh0dXJlTmFtZSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlO
X0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgY29udGV4dC0+dGV4UGFy
YW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAg
Y29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBf
VE9fRURHRSk7Ci0KLSAgICAvLyBDcmVhdGUgYSBmcmFtZWJ1ZmZlciBvYmplY3QgdG8gcmVwcmVz
ZW50IHRoZSB2aWRlbyB0ZXh0dXJlJ3MgbWVtb3J5LgotICAgIFBsYXRmb3JtM0RPYmplY3QgcmVh
ZEZyYW1lYnVmZmVyID0gY29udGV4dC0+Y3JlYXRlRnJhbWVidWZmZXIoKTsKLQotICAgIC8vIE1h
a2UgdGhhdCBmcmFtZWJ1ZmZlciB0aGUgcmVhZCBzb3VyY2UgZnJvbSB3aGljaCBkcmF3aW5nIGNv
bW1hbmRzIHdpbGwgcmVhZCB2b3hlbHMuCi0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdy
YXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCByZWFkRnJhbWVidWZmZXIpOwotCi0g
ICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkgZm9yIHRoZSBvdXRwdXQgdGV4dHVy
ZS4KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRleHR1cmUp
OwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
MkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4
dDNEOjpMSU5FQVIpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmYo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
X1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQt
PnRleEltYWdlMkREaXJlY3Qob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdp
ZHRoLCBoZWlnaHQsIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7Ci0KLSAgICAvLyBBdHRhY2gg
dGhlIHZpZGVvIHRleHR1cmUgdG8gdGhlIGZyYW1lYnVmZmVyLgotICAgIGNvbnRleHQtPmZyYW1l
YnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFw
aGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlk
ZW9UZXh0dXJlTmFtZSwgbGV2ZWwpOwotCi0gICAgR0MzRGVudW0gc3RhdHVzID0gY29udGV4dC0+
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZF
Uik7Ci0gICAgaWYgKHN0YXR1cyAhPSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQ09N
UExFVEUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIENvcHkgdGV4dHVyZSBmcm9t
IHRoZSByZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1cyB0aGUgdmlkZW8gdGV4dHVyZSkgdG8gdGhl
IG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQtPmNvcHlUZXhJbWFnZTJEKG91dHB1dFRhcmdl
dCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKKyAgICBp
ZiAoIW1fdGV4dHVyZUNhY2hlKSB7CisgICAgICAgIG1fdGV4dHVyZUNhY2hlID0gVGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCi0gICAgLy8gUmVzdG9yZSB0aGUgcHJl
dmlvdXMgdGV4dHVyZSBhbmQgZnJhbWVidWZmZXIgYmluZGluZ3MuCi0gICAgY29udGV4dC0+Ymlu
ZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBib3VuZFRleHR1cmUpOwotICAgIGNvbnRleHQtPmJpbmRG
cmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRSZWFk
RnJhbWVidWZmZXIpOworICAgIFJldGFpblB0cjxDVk9wZW5HTFRleHR1cmVSZWY+IHZpZGVvVGV4
dHVyZSA9IG1fdGV4dHVyZUNhY2hlLT50ZXh0dXJlRnJvbUltYWdlKG1fbGFzdE9wZW5HTEltYWdl
LmdldCgpLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBl
KTsKIAotICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcy4KLSAgICBjb250ZXh0LT5kZWxl
dGVGcmFtZWJ1ZmZlcihyZWFkRnJhbWVidWZmZXIpOworICAgIGlmICghbV92aWRlb1RleHR1cmVD
b3BpZXIpCisgICAgICAgIG1fdmlkZW9UZXh0dXJlQ29waWVyID0gc3RkOjptYWtlX3VuaXF1ZTxW
aWRlb1RleHR1cmVDb3BpZXJDVj4oKmNvbnRleHQpOwogCi0gICAgcmV0dXJuICFjb250ZXh0LT5n
ZXRFcnJvcigpOworICAgIHJldHVybiBtX3ZpZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHZpZGVvVGV4dHVyZS5nZXQoKSwgd2lkdGgsIGhlaWdodCwg
b3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1h
dCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwogfQogCiBQYXNzTmF0aXZlSW1hZ2VQ
dHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMmJjYWIy
YTYzYmM1YTg4NmFhZmQzZWUyMGIxYjhkNDQ4N2YwYTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNw
cApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0Q0cuaCIKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgPENvcmVWaWRl
by9Db3JlVmlkZW8uaD4KKworI2lmIFVTRShWSURFT1RPT0xCT1gpCitTT0ZUX0xJTktfRlJBTUVX
T1JLX09QVElPTkFMKFZpZGVvVG9vbGJveCkKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4
ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVXaXRoQXR0cmlidXRlcywgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBWVFBpeGVsQnVm
ZmVyQ29uZm9ybWVyUmVmKiBjb25mb3JtZXJPdXQpLCAoYWxsb2NhdG9yLCBhdHRyaWJ1dGVzLCBj
b25mb3JtZXJPdXQpKTsKK1NPRlRfTElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25m
b3JtZXJJc0NvbmZvcm1hbnRQaXhlbEJ1ZmZlciwgQm9vbGVhbiwgKFZUUGl4ZWxCdWZmZXJDb25m
b3JtZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVsQnVmZmVyUmVmIHBpeEJ1ZiksIChjb25mb3JtZXIs
IHBpeEJ1ZikpCitTT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q29weUNvbmZvcm1lZFBpeGVsQnVmZmVyLCBPU1N0YXR1cywgKFZUUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJSZWYgY29uZm9ybWVyLCBDVlBpeGVsQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgQm9vbGVhbiBl
bnN1cmVNb2RpZmlhYmxlLCBDVlBpeGVsQnVmZmVyUmVmKiBjb25mb3JtZWRCdWZmZXJPdXQpLCAo
Y29uZm9ybWVyLCBzb3VyY2VCdWZmZXIsIGVuc3VyZU1vZGlmaWFibGUsIGNvbmZvcm1lZEJ1ZmZl
ck91dCkpCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVz
KQoreworI2lmIFVTRShWSURFT1RPT0xCT1gpCisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJl
ZiBjb25mb3JtZXIgPSBudWxscHRyOworICAgIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDcmVhdGVX
aXRoQXR0cmlidXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBhdHRyaWJ1dGVzLCAmY29uZm9ybWVy
KTsKKyAgICBBU1NFUlQoY29uZm9ybWVyKTsKKyAgICBtX3BpeGVsQ29uZm9ybWVyID0gYWRvcHRD
Rihjb25mb3JtZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYXR0cmlidXRlcyk7CisgICAg
QVNTRVJUKCFhdHRyaWJ1dGVzKTsKKyNlbmRpZgorfQorCitzdGF0aWMgY29uc3Qgdm9pZCogQ1ZQ
aXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbykKK3sKKyAgICBDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
aW5mbyk7CisgICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NW
UGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJh
c2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJl
bGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqKQoreworICAg
IENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVy
UmVmPihpbmZvKTsKKyAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZm
ZXIsIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7Cit9CisKK3N0YXRpYyB2b2lkIENWUGl4
ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxiYWNrKHZvaWQqIGluZm8pCit7CisgICAgQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8p
OworICAgIENGUmVsZWFzZShwaXhlbEJ1ZmZlcik7Cit9CisKK1JldGFpblB0cjxDR0ltYWdlUmVm
PiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihDVlBp
eGVsQnVmZmVyUmVmIHJhd0J1ZmZlcikKK3sKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gYnVmZmVyIHsgcmF3QnVmZmVyIH07CisgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZl
ckdldFdpZHRoKGJ1ZmZlci5nZXQoKSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZm
ZXJHZXRIZWlnaHQoYnVmZmVyLmdldCgpKTsKKworI2lmIFVTRShWSURFT1RPT0xCT1gpCisgICAg
aWYgKCFWVFBpeGVsQnVmZmVyQ29uZm9ybWVySXNDb25mb3JtYW50UGl4ZWxCdWZmZXIobV9waXhl
bENvbmZvcm1lci5nZXQoKSwgYnVmZmVyLmdldCgpKSkgeworICAgICAgICBDVlBpeGVsQnVmZmVy
UmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZU
UGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4ZWxCdWZmZXIobV9waXhlbENvbmZv
cm1lci5nZXQoKSwgYnVmZmVyLmdldCgpLCBmYWxzZSwgJm91dHB1dEJ1ZmZlcik7CisgICAgICAg
IGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIW91dHB1dEJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICBidWZmZXIgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAg
fQorI2VuZGlmCisKKyAgICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVP
cmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYUZpcnN0OworICAgIHNpemVfdCBieXRlc1BlclJv
dyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhidWZmZXIuZ2V0KCkpOworICAgIHNpemVf
dCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKGJ1ZmZlci5nZXQoKSk7CisK
KyAgICBDRlJldGFpbihidWZmZXIuZ2V0KCkpOyAvLyBCYWxhbmNlZCBieSBDVlBpeGVsQnVmZmVy
UmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNhbGxiYWNrcy4KKyAgICBDR0RhdGFQcm92
aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxiYWNrcyA9IHsgMCwgQ1ZQaXhlbEJ1ZmZl
ckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJD
YWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2sgfTsKKyAgICBSZXRh
aW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRl
ckNyZWF0ZURpcmVjdChidWZmZXIuZ2V0KCksIGJ5dGVMZW5ndGgsICZwcm92aWRlckNhbGxiYWNr
cykpOworCisgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4
LCAzMiwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCksIGJpdG1hcEluZm8sIHByb3Zp
ZGVyLmdldCgpLCBudWxscHRyLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9Q
aXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZlYTgxYjIwNzEwNzA4
MjJiZGE4YTg4ZGJjZjU2ZmM1MjJlZTljMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gK
KyNkZWZpbmUgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCisKKyNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVZUUGl4ZWxCdWZmZXJDb25mb3JtZXIqIFZU
UGl4ZWxCdWZmZXJDb25mb3JtZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlKiBDR0ltYWdl
UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHsKK3B1Ymxp
YzoKKyAgICBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVz
KTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIo
Q1ZQaXhlbEJ1ZmZlclJlZik7CisKK3ByaXZhdGU6CisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKyAg
ICBSZXRhaW5QdHI8VlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZj4gbV9waXhlbENvbmZvcm1lcjsK
KyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hl
Q1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNzk2ZGQ3NmU5M2I3NmQwMzQ2ZjczOWQyY2UzNDUyMTE3Mjc4NjRj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VGV4dHVyZUNhY2hlQ1YuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBU
ZXh0dXJlQ2FjaGVDVl9oCisjZGVmaW5lIFRleHR1cmVDYWNoZUNWX2gKKworI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgIF9f
Q1ZCdWZmZXIqIENWSW1hZ2VCdWZmZXJSZWY7Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZP
cGVuR0xUZXh0dXJlUmVmOwordHlwZWRlZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMRVNUZXh0
dXJlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX19DVk9wZW5HTFRleHR1cmVDYWNoZSAqQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBfX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGUg
KkNWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgR3JhcGhpY3NDb250ZXh0M0Q7CisKK2NsYXNzIFRleHR1cmVDYWNoZUNWIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0M0QmKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVSZWYgIFRleHR1cmVDYWNoZVR5cGU7CisgICAgdHlwZWRlZiBDVk9wZW5H
TEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiBDVk9wZW5HTFRl
eHR1cmVDYWNoZVJlZiAgVGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4
dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbmRpZgorCisgICAgVGV4dHVyZUNhY2hlQ1YoR3JhcGhp
Y3NDb250ZXh0M0QmLCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4mJik7CisKKyAgICBSZXRh
aW5QdHI8VGV4dHVyZVR5cGU+IHRleHR1cmVGcm9tSW1hZ2UoQ1ZJbWFnZUJ1ZmZlclJlZiwgR0Mz
RGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlKTsKKyAgICBHcmFwaGljc0NvbnRleHQz
RCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJldGFpblB0cjxUZXh0dXJl
Q2FjaGVUeXBlPiBtX2NhY2hlOworICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVDYWNoZUNWPiBt
X3dlYWtQdHJGYWN0b3J5OworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dHVyZUNhY2hlQ1ZfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NmNjMDNmZTk0NzQ4YjUxOTQxNmY5N2JjNjc1MjcyZmEzYTM5
N2NjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZUNhY2hlQ1YuaCIKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlQ2FjaGVDVj4g
VGV4dHVyZUNhY2hlQ1Y6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKK3sKKyAg
ICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgp
LCBudWxscHRyLCAmY2FjaGUpOworI2Vsc2UKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdM
VGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQu
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisjZW5kaWYKKyAg
ICBpZiAoZXJyb3IgIT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4gc3Ryb25nQ2FjaGUgPSBhZG9wdENG
KGNhY2hlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlQ2FjaGVDVj4oY29u
dGV4dCwgV1RGTW92ZShzdHJvbmdDYWNoZSkpOworfQorCitUZXh0dXJlQ2FjaGVDVjo6VGV4dHVy
ZUNhY2hlQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIFJldGFpblB0cjxUZXh0dXJlQ2Fj
aGVUeXBlPiYmIGNhY2hlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NhY2hl
KGNhY2hlKQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCitSZXRhaW5QdHI8
VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21J
bWFnZShDVkltYWdlQnVmZmVyUmVmIGltYWdlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUpCit7CisgICAgVGV4dHVyZVR5cGUgYmFyZVZpZGVvVGV4dHVyZSA9IG51bGxwdHI7
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRX
aWR0aChpbWFnZSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
aW1hZ2UpOworICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMRVNUZXh0dXJlQ2Fj
aGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0
KCksIGltYWdlLCBudWxscHRyLCBvdXRwdXRUYXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwg
aGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGxldmVsLCAmYmFyZVZpZGVvVGV4dHVyZSkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3V0cHV0VGFyZ2V0KTsK
KyAgICBVTlVTRURfUEFSQU0obGV2ZWwpOworICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZvcm1h
dCk7CisgICAgVU5VU0VEX1BBUkFNKGZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwor
ICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4
dHVyZUZyb21JbWFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2NhY2hlLmdldCgpLCBpbWFnZSwg
bnVsbHB0ciwgJmJhcmVWaWRlb1RleHR1cmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4gdmlkZW9UZXh0dXJlID0gYWRvcHRDRihi
YXJlVmlkZW9UZXh0dXJlKTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBbd2Vha1RoaXNdIHsKKyAgICAgICAgaWYgKGF1dG8gY2FjaGUgPSB3ZWFrVGhpcy0+
bV9jYWNoZS5nZXQoKSkKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgICAgICBDVk9wZW5HTEVT
VGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOworI2Vsc2UKKyAgICAgICAgICAgIENWT3BlbkdM
VGV4dHVyZUNhY2hlRmx1c2goY2FjaGUsIDApOworI2VuZGlmCisgICAgfSk7CisKKyAgICByZXR1
cm4gdmlkZW9UZXh0dXJlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQxZWEzOWM4MTA3MDhkNWJjNTk0NjQwMTBmYmNlZjQ3YmI1ZmNjNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNv
cGllckNWLmNwcApAQCAtMCwwICsxLDIxMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCIKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2lmIFBMQVRGT1JN
KElPUykKKyNpbmNsdWRlIDxPcGVuR0xFUy9FUzMvZ2xleHQuaD4KKyNlbmRpZgorCisjaW5jbHVk
ZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWaWRlb1Rl
eHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0dXJlQ29waWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNv
bnRleHQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fcmVhZEZyYW1lYnVmZmVy
KGNvbnRleHQuY3JlYXRlRnJhbWVidWZmZXIoKSkKK3sKK30KKworVmlkZW9UZXh0dXJlQ29waWVy
Q1Y6On5WaWRlb1RleHR1cmVDb3BpZXJDVigpCit7CisgICAgbV9jb250ZXh0LT5kZWxldGVGcmFt
ZWJ1ZmZlcihtX3JlYWRGcmFtZWJ1ZmZlcik7Cit9CisKKyNpZiAhTE9HX0RJU0FCTEVECisKKyNk
ZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkgZSwgI2UKK3N0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+JiBlbnVtVG9TdHJpbmdNYXAoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7CisgICAgaWYgKG1hcC5n
ZXQoKS5lbXB0eSgpKSB7CisgICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4g
c3RyaW5nTWFwOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOFVJKSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4SSkpOworICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1IzMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkc4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcx
NlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJ
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4KSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBNCkpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMikpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwor
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05F
TlQyNCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBU
SF9DT01QT05FTlQzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9ERVBUSDMyRl9TVEVOQ0lMOCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JFRCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR19JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX0RFUFRIX1NURU5DSUwpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfQllURSkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRf
NF80KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX1NIT1JUXzVfNV81XzEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfQllURSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9IQUxGX0ZMT0FUKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0ZMT0FUKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1VOU0lHTkVEX1NIT1JUKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NIT1JUKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1VOU0lHTkVEX0lOVCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9JTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yNF84KSk7CisgICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8y
NF84X1JFVikpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRURfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JfSU5URUdFUikpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNTY1KSk7CisgICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhfU05PUk0pKTsKKyAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjExRl9HMTFGX0IxMEYpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOV9FNSkpOworICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkYpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJGKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhVSSkpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCQThVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBOEkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBMTZVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQkEzMkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRykpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JBX0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85
XzlfUkVWKSk7CisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKworI2Vu
ZGlmCisKK2Jvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShUZXh0dXJlVHlwZSBpbnB1dFRleHR1cmUsIHNpemVfdCB3aWR0aCwgc2l6ZV90
IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRU
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBm
b3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkK
K3sKKyAgICBpZiAoZmxpcFkgfHwgcHJlbXVsdGlwbHlBbHBoYSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFpbnB1dFRleHR1cmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
I2lmIFBMQVRGT1JNKElPUykKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHZpZGVvVGV4dHVyZU5hbWUg
PSBDVk9wZW5HTEVTVGV4dHVyZUdldE5hbWUoaW5wdXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2
aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldChpbnB1dFRleHR1
cmUpOworI2Vsc2UKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHZpZGVvVGV4dHVyZU5hbWUgPSBDVk9w
ZW5HTFRleHR1cmVHZXROYW1lKGlucHV0VGV4dHVyZSk7CisgICAgR0MzRGVudW0gdmlkZW9UZXh0
dXJlVGFyZ2V0ID0gQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZW5k
aWYKKworICAgIExPRyhNZWRpYSwgIlZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoJXApIC0gaW50ZXJuYWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVz
LCB0eXBlOiAlcyIsIHRoaXMsIGVudW1Ub1N0cmluZ01hcCgpW2ludGVybmFsRm9ybWF0XSwgZW51
bVRvU3RyaW5nTWFwKClbZm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbdHlwZV0pOworCisgICAg
Ly8gU2F2ZSB0aGUgb3JpZ2lhbCBib3VuZCB0ZXh0dXJlICYgZnJhbWVidWZmZXIgbmFtZXMgc28g
d2UgY2FuIHJlLWJpbmQgdGhlbSBhZnRlciBjb3B5aW5nIHRoZSB2aWRlbyB0ZXh0dXJlLgorICAg
IEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKKyAgICBHQzNEaW50IGJvdW5kUmVhZEZyYW1lYnVm
ZmVyID0gMDsKKyAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFX0JJTkRJTkdfMkQsICZib3VuZFRleHR1cmUpOworICAgIG1fY29udGV4dC0+Z2V0SW50
ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5k
UmVhZEZyYW1lYnVmZmVyKTsKKworICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUodmlkZW9UZXh0
dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRl
cmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgIG1fY29udGV4
dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURH
RSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4
dDNEOjpDTEFNUF9UT19FREdFKTsKKworICAgIC8vIE1ha2UgdGhhdCBmcmFtZWJ1ZmZlciB0aGUg
cmVhZCBzb3VyY2UgZnJvbSB3aGljaCBkcmF3aW5nIGNvbW1hbmRzIHdpbGwgcmVhZCB2b3hlbHMu
CisgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURf
RlJBTUVCVUZGRVIsIG1fcmVhZEZyYW1lYnVmZmVyKTsKKworICAgIC8vIEFsbG9jYXRlIHVuaW5p
dGlhbGl6ZWQgbWVtb3J5IGZvciB0aGUgb3V0cHV0IHRleHR1cmUuCisgICAgbV9jb250ZXh0LT5i
aW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRleHR1cmUpOworICAgIG1fY29udGV4dC0+
dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Cisg
ICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpD
TEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIG1fY29udGV4dC0+dGV4SW1hZ2Uy
RERpcmVjdChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdo
dCwgMCwgZm9ybWF0LCB0eXBlLCBudWxscHRyKTsKKworICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8g
dGV4dHVyZSB0byB0aGUgZnJhbWVidWZmZXIuCisgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclRl
eHR1cmUyRChHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwLCB2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVvVGV4dHVy
ZU5hbWUsIGxldmVsKTsKKworICAgIEdDM0RlbnVtIHN0YXR1cyA9IG1fY29udGV4dC0+Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUik7Cisg
ICAgaWYgKHN0YXR1cyAhPSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQ09NUExFVEUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIENvcHkgdGV4dHVyZSBmcm9tIHRoZSBy
ZWFkIGZyYW1lYnVmZmVyIChhbmQgdGh1cyB0aGUgdmlkZW8gdGV4dHVyZSkgdG8gdGhlIG91dHB1
dCB0ZXh0dXJlLgorICAgIG1fY29udGV4dC0+Y29weVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApOworCisgICAgLy8g
UmVzdG9yZSB0aGUgcHJldmlvdXMgdGV4dHVyZSBhbmQgZnJhbWVidWZmZXIgYmluZGluZ3MuCisg
ICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4dHVyZSk7Cisg
ICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJB
TUVCVUZGRVIsIGJvdW5kUmVhZEZyYW1lYnVmZmVyKTsKKworICAgIHJldHVybiAhbV9jb250ZXh0
LT5nZXRFcnJvcigpOworfQorCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1
ZjUxMmY4OWFjYzQ1ZmE1Y2M0ZDZiN2JjM2UwZjhlY2UzMmQ5ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFZpZGVvVGV4dHVyZUNv
cGllckNWX2gKKyNkZWZpbmUgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorCisjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHQzRC5oIgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFnZUJ1
ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7Cit0
eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9UZXh0dXJlQ29waWVyQ1YgeworcHVibGljOgorICAg
IFZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNzQ29udGV4dDNEJik7CisgICAgflZpZGVvVGV4
dHVyZUNvcGllckNWKCk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgdHlwZWRlZiBDVk9wZW5H
TEVTVGV4dHVyZVJlZiBUZXh0dXJlVHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiBDVk9wZW5HTFRl
eHR1cmVSZWYgVGV4dHVyZVR5cGU7CisjZW5kaWYKKworICAgIGJvb2wgY29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVUeXBlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWln
aHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOworCisg
ICAgR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH0KKworcHJpdmF0ZToKKyAgICBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKKyAg
ICBQbGF0Zm9ybTNET2JqZWN0IG1fcmVhZEZyYW1lYnVmZmVyOworfTsKKworfQorCisjZW5kaWYg
Ly8gVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmlu
ZGV4IDA3NzgzNWQ1ZTIxMjllZTllZWZmOGQ0MGExZDQ1MDcxOTg0YWM1NjEuLjk3Njg0ZjI3ZDRk
NjE0NDA1ZWNmNmY3MGU5N2Q3MzU3NzBjMjE4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KQEAgLTUyLDcgKzUyLDYgQEAgdHlwZWRlZiBBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQg
QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlVmlkZW9QcmV2
aWV3TGF5ZXIgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXJUeXBlOwogCiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9O
QUwoQ29yZVZpZGVvKQogCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVD
b25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNl
KQpAQCAtODEsMTcgKzgwLDYgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNh
cHR1cmVTZXNzaW9uUHJlc2V0TG93LCBOU1N0cmluZyAqKQogI2RlZmluZSBBVkNhcHR1cmVTZXNz
aW9uUHJlc2V0MzUyeDI4OCBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MzUyeDI4OCgpCiAjZGVm
aW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3cgZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNldExv
dygpCiAKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRXaWR0aCwgc2l6ZV90
LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJ
TksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxC
dWZmZXJHZXRCeXRlc1BlclJvdywgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciksIChwaXhlbEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0
UGl4ZWxGb3JtYXRUeXBlLCBPU1R5cGUsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwg
KHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJMb2NrQmFz
ZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRp
b25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCi1TT0ZUX0xJTkso
Q29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4
ZWxCdWZmZXIsIGxvY2tGbGFncykpCi0KLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NW
UGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRU
eXBlS2V5KCkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWZQdHI8QVZNZWRpYUNhcHR1cmVT
b3VyY2U+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZSog
ZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+IGNvbnN0cmFpbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272527</attachid>
            <date>2016-02-29 16:09:40 -0800</date>
            <delta_ts>2016-02-29 16:09:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154544-20160229160924.patch</filename>
            <type>text/plain</type>
            <size>91410</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk5ZWY4ZDIyMmViODlm
ZWM0NGU3MzhiZDkwYThmYWRiYjk3NGE3MS4uNTc3NjM4YjU2MTcxYzFlZTYyM2FiNjI4NDQxY2I3
NzdjZGM4NjQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIENvcmVWaWRl
byBBUEkgYWNjZXNzIGludG8gdGhlaXIgb3duIGNsYXNzZXMgc28gY29kZSBjYW4gYmUgcmUtdXNl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBvcmRl
ciBmb3IgY29tbW9uIENvcmVWaWRlbyBjb2RlIHBhdGhzIHRvIGJlIHJlLXVzZWQgaW4gb3RoZXIg
Y2xhc3NlcywgcHVsbCB0aG9zZSBwYXRocworICAgICAgICBvdXQgb2YgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyBhbmQgaW50byByZS11c2FibGUgY2xhc2Vzcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvQ29yZU1l
ZGlhU29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGlu
ay5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVs
QnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVyQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZvQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZW51bVRvU3RyaW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZmZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJbWFn
ZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNo
ZUNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpWaWRlb1RleHR1cmVD
b3BpZXJDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVv
VGV4dHVyZUNvcGllckNWKToKKyAgICAgICAgKFdlYkNvcmU6OmVudW1Ub1N0cmluZ01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW06IE1vdmUgU09GVF9MSU5LIGRlY2xhcmF0aW9ucyBpbnRvIENv
cmVWaWRlb1NvZnRMaW5rLmgvY3BwLgorCiAyMDE2LTAyLTI1ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBBdWRpbyBiZWNvbWVzIGRpc3RvcnRlZCBhZnRl
ciBzYW1wbGUgcmF0ZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjZhNjE0ZTI5ZjYzOWRiMjExYjM4NDgyYTczZDcz
YmJmYjI3MWE5NS4uOGY4ZTFiMWQwODcxNTRkMDhjZjY2ODczMDNmZTNmNTUwNmFmZjA0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjA2Niw2ICs2MDY2LDEwIEBACiAJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAvKiBTb3Vy
Y2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5o
ICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICovOyB9
OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCRTE4
MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CisJCUNEN0Qz
MzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQxMUM3QTEyM0Yw
MDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsgfTsKKwkJQ0Q3RDMzNDQx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQyMUM3QTEyM0YwMDA0MTI5
MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CisJCUNEN0QzMzQ3MUM3QTE2QkYw
MDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZp
ZGVvU29mdExpbmsuY3BwICovOyB9OworCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyogQ29y
ZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEN0QzMzQ2MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5oICov
OyB9OwogCQlDRDdEQkIyODE4Q0ExOUE0MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0RC
QjI2MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwICovOyB9Owog
CQlDRDdEQkIyOTE4Q0ExOUM2MDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEQkIyNzE4Q0Ex
MUZGMDBDMTEwNjYgLyogQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmggKi87IH07CiAJCUNEN0UwNTIy
MTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdFMDUyMTE2NTFBODQxMDBD
MTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9OwpAQCAtNjA4Miw2ICs2
MDg2LDEwIEBACiAJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
OEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsK
IAkJQ0Q4QjVBNDkxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0ODE4MEUx
MzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Q4QjVBNEMx
ODBFMTdDMDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNEIxODBFMTdDMDAwOEI4RTY1
IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDlEODI3NTFDN0FFNTM1MDA2
RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hl
Q1YubW0gKi87IH07CisJCUNEOUQ4Mjc2MUM3QUU1MzUwMDZGRjA2NiAvKiBUZXh0dXJlQ2FjaGVD
Vi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5RDgy
NzQxQzdBRTUzNTAwNkZGMDY2IC8qIFRleHR1cmVDYWNoZUNWLmggKi87IH07CisJCUNEOUQ4Mjc5
MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlEODI3NzFDN0I4RUUxMDA2RkYw
NjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwICovOyB9OworCQlDRDlEODI3QTFDN0I4RUUx
MDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRl
b1RleHR1cmVDb3BpZXJDVi5oICovOyB9OwogCQlDRDlERTE3NDE3QUFDNzRDMDBFQTM4NkQgLyog
SlNNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgKi87
IH07CiAJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3MzE3QUFDNzRD
MDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDlERTE3QTE3QUFDNzVCMDBF
QTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVm
ZmVyLmNwcCAqLzsgfTsKQEAgLTE0MDE5LDYgKzE0MDI3LDEwIEBACiAJCUNENjQxRUJEMTgxOUIz
NTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEN0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuY3BwOyBwYXRoID0gLi4vY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEN0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuaDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3RDMzNDUxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvcmVWaWRlb1NvZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q3RDMzNDYxQzdBMTZCRjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVWaWRlb1NvZnRMaW5rLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0RCQjI2MThDQTExRkYwMEMxMTA2NiAvKiBDU1NHcmlk
TGluZU5hbWVzVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q3REJCMjcxOENBMTFGRjAwQzExMDY2IC8qIENTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NHcmlkTGluZU5hbWVzVmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3RTA1MjAxNjUxQTg0MTAwQzEyMDFGIC8qIFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDM5LDYgKzE0MDUx
LDEwIEBACiAJCUNEOEI1QTQ4MTgwRTEzOEIwMDhCOEU2NSAvKiBUZXh0VHJhY2tNZWRpYVNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tNZWRpYVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0QTE4MEUxN0EzMDA4QjhF
NjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1RyYWNrTWVkaWFTb3Vy
Y2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0QjE4MEUxN0MwMDA4
QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDlEODI3MzFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0dXJlQ2FjaGVDVi5tbTsg
cGF0aCA9IC4uL2N2L1RleHR1cmVDYWNoZUNWLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlEODI3NDFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dHVyZUNhY2hlQ1YuaDsgcGF0aCA9IC4uL2N2
L1RleHR1cmVDYWNoZUNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUQ4Mjc3
MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA7IHBhdGgg
PSAuLi9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEOUQ4Mjc4MUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb1RleHR1cmVDb3BpZXJDVi5o
OyBwYXRoID0gLi4vY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAv
KiBKU01lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5REUxNzYxN0FBQzc1
QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5OTgwLDYgKzE5OTk2LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJQTE0MDkwRkExQUE1MUUxRDAwOTExOTFBIC8qIENvbnRlbnRGaWx0ZXJVbmJs
b2NrSGFuZGxlckNvY29hLm1tICovLAorCQkJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0MTI5MyAvKiBD
b3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8sCisJCQkJQ0Q3RDMzNDYxQzdBMTZCRjAwMDQxMjkzIC8q
IENvcmVWaWRlb1NvZnRMaW5rLmggKi8sCiAJCQkJN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8q
IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi8sCiAJCQkJN0M3OTQxRTMxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCAqLywKIAkJCQk1RDhDNERCRDE0
MjgyMjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlzYWJsZXJDb2NvYS5jcHAgKi8sCkBAIC0y
MTg0Nyw2ICsyMTg2NSw3IEBACiAJCQkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8qIGF2Zm91
bmRhdGlvbiAqLywKIAkJCQk0OTlCM0VDMDEyOENDQzE4MDBFNzI2QzIgLyogY2EgKi8sCiAJCQkJ
QjI3NTM1MjkwQjA1MzgxNDAwMkNFNjRGIC8qIGNnICovLAorCQkJCUNEOUQ4MjdDMUM3QkIyRUQw
MDZGRjA2NiAvKiBjdiAqLywKIAkJCQlCNTMyMEQ2ODEyMkEyNEU5MDAyRDE0NDAgLyogY29jb2Eg
Ki8sCiAJCQkJOTMzMkFCM0IxNjUxNUQ3NzAwRDgyN0VDIC8qIGNwdSAqLywKIAkJCQkwRkU1RkJD
OTFDM0RENTA2MDAwN0EyQ0EgLyogZGlzcGxheWxpc3RzICovLApAQCAtMjMwNTUsNiArMjMwNzQs
MjAgQEAKIAkJCXBhdGggPSBtZWRpYWNvbnRyb2xzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJQ0Q5RDgyN0MxQzdCQjJFRDAwNkZGMDY2IC8qIGN2ICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEy
OTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8sCisJCQkJQ0Q3RDMzNDIxQzdBMTIz
RjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywKKwkJCQlDRDlEODI3NDFD
N0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YuaCAqLywKKwkJCQlDRDlEODI3MzFDN0FF
NTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YubW0gKi8sCisJCQkJQ0Q5RDgyNzcxQzdCOEVF
MTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAqLywKKwkJCQlDRDlEODI3ODFD
N0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCAqLywKKwkJCSk7CisJCQlu
YW1lID0gY3Y7CisJCQlwYXRoID0gY2c7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQlDREE5OERCRDE2MDE0RTA4MDBGRUEzQjEgLyogZW5jcnlwdGVkbWVkaWEgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjUxOTQsNiArMjUyMjcsNyBA
QAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUZFMTM3NTE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzkzRjM0QTFBQTZCQTVFMDBBOThCQUIgLyogQ29tcGls
ZWRDb250ZW50RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDlEODI3QTFDN0I4RUUx
MDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
QzIzNjExMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0QkE1MDkwMUJDRkJEOTUwMEUzNEVGNyAvKiBDb21wb3NlZFRyZWVBbmNl
c3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRGQTE4NTFCQ0E2QjVBMDA5MUI2
RUYgLyogQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NzcsNiAr
MjcwMTEsNyBAQAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQ
YXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkx
OEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q3RDMzNDQxQzdB
MTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNzYyQzc2MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE3NjJDNzgwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29s
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3QTBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY5Myw2ICsyNzcyOCw3IEBACiAJCQkJ
MDc4RTA5MkExN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVwb3J0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NDUxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5RDgyNzYxQzdBRTUzNTAwNkZGMDY2IC8qIFRl
eHR1cmVDYWNoZUNWLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyQzE3RDE0RDFDMDA0MjBB
QTEgLyogUlRDU3RhdHNSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NDYxN0Qx
NkUxQzAwNDIwQUExIC8qIFJUQ1N0YXRzUmVzcG9uc2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1RTJDNDM2ODFCQ0VFMzc3MDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODIxNyw2ICsyODI1Myw3IEBACiAJCQkJN0NDNTY0QjgxOEJBQkVBNjAwMUI5NjUy
IC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNjUwNDZB
OTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0
TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgxIC8qIFRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIwMDU2RTU4MSAvKiBUZXh0
QWZmaW5pdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREI1MTU4NkFCQUQwMDk4QjNGQSAv
KiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjkzNzksNiAr
Mjk0MTYsNyBAQAogCQkJCTk3Mzg4OUEwMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFBMzdBRTA5N0M3MTVGMDAxOUYzRDggLyogRE9N
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEMEZCRDAwREJENjI1RTAwQjJGNjMwIC8qIERPTUFi
c3RyYWN0Vmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5
MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTg0
ODA5MUExRTZDQkYwMEExMzMxOCAvKiBET01BbmltYXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFBOEY2QkMyMERCNTVDREMwMDFEQjc5NCAvKiBET01BcHBsaWNhdGlvbkNhY2hlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg1RDM4OUIzMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRy
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yOTU1MSw2ICsyOTU4OSw3IEBACiAJCQkJM0YyQjMzRUMx
NjVBRjE1NjAwRTM5ODdDIC8qIERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCThBMTk1OTMzMTQ3RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3cu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3RDMzNDcxQzdBMTZC
RjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
NDEyOTlCMUM2QzE2NzQwMDU5RTcxNCAvKiBKU0lEQkluZGV4Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODMxLDYgKzI5ODcwLDcgQEAKIAkJCQlBOEVBNzlGODBB
MTkxNkRGMDBBOEVGNUYgLyogSFRNTE1lbnVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJCRThFMkM5MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg3MURDMjcwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxNZXRhRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlEODI3NTFDN0FFNTM1MDA2RkYwNjYgLyog
VGV4dHVyZUNhY2hlQ1YubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNDU0NDI0QTExOUIzNjYxMDA5
QkU5MTIgLyogSFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjdB
OTBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTE1vZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThERjNGRDUwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTMxMjQ1LDYgKzMxMjg1LDcgQEAKIAkJCQlBODcxREZFNTBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5RDgyNzkx
QzdCOEVFMTAwNkZGMDY2IC8qIFZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4OUNDQzUyMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwOTA5OUU2NDkyMDA1NkU1ODEgLyog
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDQzBCNTMx
OEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKaW5k
ZXggMjhiOWE2YWZmOThmMTIxYzBlNGI1MTI3MGZlYTJlYWViNmQzOTFmYi4uMTIyNDE0Zjc4ZjI3
M2JmYTI0ODM5MTJkYmE0MjVlNDY1N2RmNzU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzUsMTAgKzM1LDEyIEBAIFNPRlRf
TElOS19GUkFNRVdPUktfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlU291cmNlQnVmZmVyLCBz
aXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9pZCogZGVzdGluYXRpb24p
LCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGRlc3RpbmF0aW9u
KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyKSwgKHRoZUJ1ZmZlcikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25h
cnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBDTUJs
b2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJD
b3JlLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJbmRleCwgQ01T
YW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUluZGV4LCB0aW1p
bmdJbmZvT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVN
ZWRpYSwgQ01UaW1lQ29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUy
KSwgKHRpbWUxLCB0aW1lMikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGlt
ZTIpLCAodGltZTEsIHRpbWUyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwg
KHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlh
LCBDTVRpbWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSks
ICh2YWx1ZSwgdGltZXNjYWxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9hdDY0IHNl
Y29uZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZlcnJlZFRp
bWVTY2FsZSkpCkBAIC0xMjIsNyArMTI0LDYgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3QKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNpZiBQTEFURk9STShXSU4pCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAo
Q01UaW1lIGFkZGVuZDEsIENNVGltZSBhZGRlbmQyKSwgKGFkZGVuZDEsIGFkZGVuZDIpKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVNYWtl
RnJvbURpY3Rpb25hcnksIENNVGltZSwgKENGRGljdGlvbmFyeVJlZiBkaWN0KSwgKGRpY3QpKQog
I2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXggODc5NWI1YjA2OGI2ZDYzMDJkYWQ3YTdiZjc4YWE3
NTFlOTExMjkxMC4uY2QyZDQwMmRmNjk5NTQ2OWRmOGVlY2FkODAxZmIwZDkzMGUyNjA3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC0z
OSwxMiArMzksMTYgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2kKICNkZWZpbmUgQ01CbG9ja0J1
ZmZlckdldERhdGFMZW5ndGggc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRh
TGVuZ3RoCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEs
IENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVzY3Jp
cHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9u
R2V0RXh0ZW5zaW9ucworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCisj
ZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlEIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckdldFR5cGVJRAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
ckdldERhdGFCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1
ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2Ft
cGxlVGltaW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5n
SW5mb091dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01U
aW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKKyNkZWZp
bmUgQ01UaW1lQWRkIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQ29tcGFyZSwgaW50MzJf
dCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5l
IENNVGltZUNvbXBhcmUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNvbXBhcmUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25k
cywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQpAQCAtMjA2LDggKzIxMCw2IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0CiAKICNpZiBQTEFURk9STShXSU4pCiAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUs
IChDTVRpbWUgYWRkZW5kMSwgQ01UaW1lIGFkZGVuZDIpLCAoYWRkZW5kMSwgYWRkZW5kMikpCi0j
ZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQWRkCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZU1ha2VGcm9tRGlj
dGlvbmFyeSwgQ01UaW1lLCAoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3QpLCAoZGljdCkpCiAjZGVmaW5l
IENNVGltZU1ha2VGcm9tRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWFrZUZy
b21EaWN0aW9uYXJ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L0NvcmVWaWRlb1NvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0Nv
cmVWaWRlb1NvZnRMaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjk2YjZlYjdhZTNmMDdiNzMyMmYxOTQ1
YzU1MGZiMzMyMmYxZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKyNp
bmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8pCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEhl
aWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZl
cikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcywgdm9pZCosIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3QsIChD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERh
dGFTaXplLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVm
ZmVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZSwgT1NUeXBlLCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENW
UmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2Nr
RmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxvY2tGbGFncykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdz
IGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1h
dFR5cGVLZXksIENGU3RyaW5nUmVmKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNh
Y2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9u
YXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ1ZFQUdMQ29udGV4dCBlYWdsQ29udGV4dCwgQ0ZEaWN0
aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmKiBj
YWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0cmlidXRlcywgZWFnbENvbnRleHQsIHRleHR1
cmVBdHRyaWJ1dGVzLCBjYWNoZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJv
bUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1Rl
eHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2Us
IENGRGljdGlvbmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQg
aW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9y
bWF0LCBHTGVudW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVm
KiB0ZXh0dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4
dHVyZUF0dHJpYnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZv
cm1hdCwgdHlwZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVz
aCwgdm9pZCwgKENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVk9wdGlv
bkZsYWdzIG9wdGlvbnMpLCAodGV4dHVyZUNhY2hlLCBvcHRpb25zKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRU
YXJnZXQsIEdMZW51bSwgKENWT3BlbkdMRVNUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xF
U1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChp
bWFnZSkpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8s
IGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0
cmluZ1JlZikKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlLCBDVlJldHVybiwgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNhY2hlQXR0cmlidXRlcywgQ0dMQ29u
dGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1hdE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZE
aWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiog
Y2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJpYnV0ZXMsIGNnbENvbnRleHQsIGNnbFBp
eGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2FjaGVPdXQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNy
ZWF0ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYg
c291cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVS
ZWYqIHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBh
dHRyaWJ1dGVzLCB0ZXh0dXJlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVzaCwgdm9pZCwgKENWT3Bl
bkdMVGV4dHVyZUNhY2hlUmVmIHRleHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwg
KHRleHR1cmVDYWNoZSwgb3B0aW9ucykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZP
cGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50
LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VP
cGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjYwZDQ3ZTkzNGE5NjAxMmEyYWY0OGM4ZjJmZWJhMDVmN2NhNTc4YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29yZVZpZGVvU29mdExpbmtf
aAorI2RlZmluZSBDb3JlVmlkZW9Tb2Z0TGlua19oCisKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5o
IgorI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKworU09GVF9MSU5LX0ZSQU1FV09S
S19GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVf
dCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorI2RlZmlu
ZSBDVlBpeGVsQnVmZmVyR2V0V2lkdGggc29mdExpbmtfQ29yZVZpZGVvX0NWUGl4ZWxCdWZmZXJH
ZXRXaWR0aAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVv
LCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKKyNkZWZpbmUgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCBz
b2Z0TGlua19Db3JlVmlkZW9fQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFk
ZHJlc3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZl
cikpCisjZGVmaW5lIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyBzb2Z0TGlua19Db3JlVmlk
ZW9fQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdywgc2l6
ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCisjZGVm
aW5lIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVzUGVyUm93CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZSwgc2l6ZV90LCAoQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCisjZGVmaW5lIENWUGl4ZWxC
dWZmZXJHZXREYXRhU2l6ZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZQaXhlbEJ1ZmZlckdldERhdGFT
aXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENW
UGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorI2RlZmluZSBDVlBpeGVsQnVmZmVyR2V0UGl4
ZWxGb3JtYXRUeXBlIHNvZnRMaW5rX0NvcmVWaWRlb19DVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3Jt
YXRUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8s
IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MsIENWUmV0dXJuLCAoQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciwgQ1ZPcHRpb25GbGFncyBsb2NrRmxhZ3MpLCAocGl4ZWxCdWZmZXIsIGxv
Y2tGbGFncykpCisjZGVmaW5lIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3Mgc29mdExpbmtf
Q29yZVZpZGVvX0NWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VB
ZGRyZXNzLCBDVlJldHVybiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIENWT3B0aW9u
RmxhZ3MgbG9ja0ZsYWdzKSwgKHBpeGVsQnVmZmVyLCBsb2NrRmxhZ3MpKQorI2RlZmluZSBDVlBp
eGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3Mgc29mdExpbmtfQ29yZVZpZGVvX0NWUGl4ZWxCdWZm
ZXJVbmxvY2tCYXNlQWRkcmVzcworCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0X0NvcmVW
aWRlb19rQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCisKKyNpZiBQTEFURk9STShJ
T1MpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENW
T3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0IGVh
Z2xDb250ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdMRVNU
ZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVzLCBl
YWdsQ29udGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKKyNkZWZpbmUgQ1ZPcGVu
R0xFU1RleHR1cmVDYWNoZUNyZWF0ZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUNyZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVyZUZyb21JbWFnZSwgQ1ZS
ZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVS
ZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUltYWdlLCBDRkRpY3Rpb25h
cnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIEdMZW51bSB0YXJnZXQsIEdMaW50IGludGVybmFsRm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIHNpemVfdCBwbGFuZUluZGV4LCBDVk9wZW5HTEVTVGV4dHVyZVJlZiogdGV4dHVyZU91
dCksIChhbGxvY2F0b3IsIHRleHR1cmVDYWNoZSwgc291cmNlSW1hZ2UsIHRleHR1cmVBdHRyaWJ1
dGVzLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBsYW5lSW5kZXgsIHRleHR1cmVPdXQpKQorI2RlZmluZSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hl
Q3JlYXRlVGV4dHVyZUZyb21JbWFnZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUZsdXNoLCB2b2lk
LCAoQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mg
b3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQorI2RlZmluZSBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlRmx1c2ggc29mdExpbmtfQ29yZVZpZGVvX0NWT3BlbkdMRVNUZXh0dXJlQ2FjaGVG
bHVzaAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBD
Vk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwgR0xlbnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYg
aW1hZ2UpLCAoaW1hZ2UpKQorI2RlZmluZSBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCBzb2Z0
TGlua19Db3JlVmlkZW9fQ1ZPcGVuR0xFU1RleHR1cmVHZXRUYXJnZXQKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXRO
YW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCisjZGVm
aW5lIENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZPcGVuR0xF
U1RleHR1cmVHZXROYW1lCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xFU0ZCT0NvbXBhdGliaWxp
dHlLZXksIENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5H
TEVTRkJPQ29tcGF0aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVySU9TdXJm
YWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5KCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVm
IGNhY2hlQXR0cmlidXRlcywgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0LCBDR0xQaXhlbEZvcm1h
dE9iaiBjZ2xQaXhlbEZvcm1hdCwgQ0ZEaWN0aW9uYXJ5UmVmIHRleHR1cmVBdHRyaWJ1dGVzLCBD
Vk9wZW5HTFRleHR1cmVDYWNoZVJlZiogY2FjaGVPdXQpLCAoYWxsb2NhdG9yLCBjYWNoZUF0dHJp
YnV0ZXMsIGNnbENvbnRleHQsIGNnbFBpeGVsRm9ybWF0LCB0ZXh0dXJlQXR0cmlidXRlcywgY2Fj
aGVPdXQpKQorI2RlZmluZSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZSBzb2Z0TGlua19Db3Jl
VmlkZW9fQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0
dXJlRnJvbUltYWdlLCBDVlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVu
R0xUZXh0dXJlQ2FjaGVSZWYgdGV4dHVyZUNhY2hlLCBDVkltYWdlQnVmZmVyUmVmIHNvdXJjZUlt
YWdlLCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ1ZPcGVuR0xUZXh0dXJlUmVmKiB0ZXh0
dXJlT3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgYXR0cmlidXRl
cywgdGV4dHVyZU91dCkpCisjZGVmaW5lIENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlVGV4dHVy
ZUZyb21JbWFnZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVU
ZXh0dXJlRnJvbUltYWdlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBD
b3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1
cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJl
Q2FjaGUsIG9wdGlvbnMpKQorI2RlZmluZSBDVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoIHNvZnRM
aW5rX0NvcmVWaWRlb19DVk9wZW5HTFRleHR1cmVDYWNoZUZsdXNoCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVyZUdldFRhcmdl
dCwgR0xlbnVtLCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGltYWdlKSkKKyNkZWZpbmUg
Q1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0IHNvZnRMaW5rX0NvcmVWaWRlb19DVk9wZW5HTFRleHR1
cmVHZXRUYXJnZXQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVW
aWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVm
IGltYWdlKSwgKGltYWdlKSkKKyNkZWZpbmUgQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZSBzb2Z0TGlu
a19Db3JlVmlkZW9fQ1ZPcGVuR0xUZXh0dXJlR2V0TmFtZQorCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3Bl
bkdMRkJPQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDVlBpeGVsQnVm
ZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSBnZXRfQ29yZVZpZGVvX2tDVlBp
eGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRkJPQ29tcGF0aWJpbGl0eUtleSgpCisjZW5kaWYKKwor
I2VuZGlmIC8vIENvcmVWaWRlb1NvZnRMaW5rX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAy
MGY2NTc5MjI5ZWI4OTNjZDAxNWJiZmZlOThiMjUyYjFiZmJlNzY0Li44NzgwODhjMzczYzM3ZWRh
YjZlZmZhYjUwYzliZGViNDgzYTdjNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC01Nyw3
ICs1Nyw2IEBAIE9CSkNfQ0xBU1MgQVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CiAKIHR5
cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNHSW1hZ2VSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVm
ZmVyICpDVlBpeGVsQnVmZmVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvbiogVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZjsKICNpZiBQTEFURk9STShJT1Mp
CiB0eXBlZGVmIHN0cnVjdCAgX19DVk9wZW5HTEVTVGV4dHVyZUNhY2hlICpDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlUmVmOwogI2Vsc2UKQEAgLTcxLDggKzcwLDExIEBAIGNsYXNzIEF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQzsKIGNsYXNzIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjsK
IGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDOwogY2xhc3MgTWVkaWFTZWxlY3Rp
b25Hcm91cEFWRk9iakM7CitjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3MgVmlk
ZW9UcmFja1ByaXZhdGVBVkZPYmpDOwogY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOwor
Y2xhc3MgVGV4dHVyZUNhY2hlQ1Y7CitjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDVjsKIAogI2lm
IFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKIGNsYXNzIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjsKQEAgLTM0NSwx
NyArMzQ3LDEyIEBAIHByaXZhdGU6CiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3QgbV92aWRlb091
dHB1dFNlbWFwaG9yZTsKIAogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1WaWRlb091dHB1dD4g
bV9vcGVuR0xWaWRlb091dHB1dDsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgUmV0YWluUHRyPENW
T3BlbkdMRVNUZXh0dXJlQ2FjaGVSZWY+IG1fb3BlbkdMVGV4dHVyZUNhY2hlOwotI2Vsc2UKLSAg
ICBSZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJlQ2FjaGVSZWY+IG1fb3BlbkdMVGV4dHVyZUNhY2hl
OwotI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBtX3RleHR1cmVD
YWNoZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9UZXh0dXJlQ29waWVyQ1Y+IG1fdmlkZW9U
ZXh0dXJlQ29waWVyOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2xhc3RPcGVu
R0xJbWFnZTsKICNlbmRpZgogCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLSAgICBSZXRhaW5QdHI8
VlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZj4gbV9waXhlbFRyYW5zZmVyU2Vzc2lvbjsKLSNlbmRp
ZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVm
ZmVyQ29uZm9ybWVyOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQog
ICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQppbmRleCA5MzNlYWMxZDk3Y2EzOGViZGU3NzAwOTQ0ZWI5MGFmZGYyN2FiNWQ3Li5i
Y2ViMWNiYzU1MmMyYzIwZTMxNzM2OWI3YWExMTUxNTgwNmYzOWU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgIk1lZGlhUGxheWJhY2tUYXJnZXRN
b2NrLmgiCiAjaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogI2ltcG9ydCAi
TWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgiCisjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlF1YXJ0ekNvcmVT
UEkuaCIKICNpbXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC02MCw3ICs2MSw5IEBACiAjaW1w
b3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiVGV4dEVuY29kaW5nLmgiCiAjaW1wb3J0ICJUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5oIgorI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1YuaCIKICNpbXBv
cnQgIlVVSUQuaCIKKyNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAjaW1wb3J0ICJW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlci5oIgogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKQEAgLTExMCw5ICsxMTMs
NyBAQAogI2luY2x1ZGUgIkNGTlNVUkxDb25uZWN0aW9uU1BJLmgiCiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKElPUykKLSNpbmNsdWRlIDxPcGVuR0xFUy9FUzMvZ2xleHQuaD4KLSNlbmRpZgorI2lt
cG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIHN0ZCB7CiB0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgaXRlcmF0b3JfdHJhaXRzPEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Vs
ZWN0aW9uT3B0aW9uQVZGT2JqQz4+OjppdGVyYXRvcj4gewpAQCAtMTQ5LDI1ICsxNTAsNiBAQCB0
eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGU7
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5L
X0ZSQU1FV09SS19PUFRJT05BTChDb3JlSW1hZ2UpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElP
TkFMKENvcmVWaWRlbykKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi1TT0ZUX0xJTktfRlJBTUVX
T1JLX09QVElPTkFMKFZpZGVvVG9vbGJveCkKLSNlbmRpZgotCi1TT0ZUX0xJTksoQ29yZVZpZGVv
LCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZl
ckdldEhlaWdodCwgc2l6ZV90LCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhl
bEJ1ZmZlcikpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJl
c3MsIHZvaWQqLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikp
Ci1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3csIHNpemVf
dCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplLCBzaXplX3QsIChDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlk
ZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9j
a0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRk
cmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZs
YWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQotI2lmIFVTRShWSURF
T1RPT0xCT1gpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9u
Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgVlRQaXhlbFRyYW5z
ZmVyU2Vzc2lvblJlZiAqcGl4ZWxUcmFuc2ZlclNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCBwaXhl
bFRyYW5zZmVyU2Vzc2lvbk91dCkpCi1TT0ZUX0xJTksoVmlkZW9Ub29sYm94LCBWVFBpeGVsVHJh
bnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSwgT1NTdGF0dXMsIChWVFBpeGVsVHJhbnNmZXJTZXNz
aW9uUmVmIHNlc3Npb24sIENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBDVlBpeGVsQnVm
ZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyKSwgKHNlc3Npb24sIHNvdXJjZUJ1ZmZlciwgZGVzdGlu
YXRpb25CdWZmZXIpKQotI2VuZGlmCiAKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFW
UGxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtKQpAQCAt
MTk1LDcgKzE3Nyw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3Nl
dFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tleSwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVS
KEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcg
KikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJl
c2l6ZUFzcGVjdEZpbGwsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRp
b24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9J
TlRFUihDb3JlVmlkZW8sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBOU1N0cmlu
ZyAqKQogCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmluZyAqKQogCkBAIC0yMjIsNyArMjAz
LDYgQEAgU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
Q2xpZW50QnVuZGxlSWRlbnRpZmllcktleSwgTlMKICNkZWZpbmUgQVZMYXllclZpZGVvR3Jhdml0
eVJlc2l6ZUFzcGVjdCBnZXRBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0KCkKICNkZWZp
bmUgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwgZ2V0QVZMYXllclZpZGVvR3Jh
dml0eVJlc2l6ZUFzcGVjdEZpbGwoKQogI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXpl
IGdldEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemUoKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSgpCiAK
ICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiB0eXBlZGVmIEFW
TWVkaWFTZWxlY3Rpb25Hcm91cCBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlOwpAQCAtMjkxLDI0
ICsyNzEsNiBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3Vu
ZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlVSTEFzc2V0Qm91
bmROZXR3b3JrSW50ZXJmYWNlTmFtZSBnZXRBVlVSTEFzc2V0Qm91bmROZXR3b3JrSW50ZXJmYWNl
TmFtZSgpCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLVNPRlRfTElOSyhDb3JlVmlkZW8s
IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgY2FjaGVBdHRyaWJ1dGVzLCBDVkVBR0xDb250ZXh0
IGVhZ2xDb250ZXh0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMsIENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVSZWYqIGNhY2hlT3V0KSwgKGFsbG9jYXRvciwgY2FjaGVBdHRyaWJ1dGVz
LCBlYWdsQ29udGV4dCwgdGV4dHVyZUF0dHJpYnV0ZXMsIGNhY2hlT3V0KSkKLVNPRlRfTElOSyhD
b3JlVmlkZW8sIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlLCBD
VlJldHVybiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291cmNlSW1hZ2UsIENGRGljdGlv
bmFyeVJlZiB0ZXh0dXJlQXR0cmlidXRlcywgR0xlbnVtIHRhcmdldCwgR0xpbnQgaW50ZXJuYWxG
b3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgc2l6ZV90IHBsYW5lSW5kZXgsIENWT3BlbkdMRVNUZXh0dXJlUmVmKiB0ZXh0dXJl
T3V0KSwgKGFsbG9jYXRvciwgdGV4dHVyZUNhY2hlLCBzb3VyY2VJbWFnZSwgdGV4dHVyZUF0dHJp
YnV0ZXMsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlw
ZSwgcGxhbmVJbmRleCwgdGV4dHVyZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5H
TEVTVGV4dHVyZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTEVTVGV4dHVyZUNhY2hlUmVmIHRl
eHR1cmVDYWNoZSwgQ1ZPcHRpb25GbGFncyBvcHRpb25zKSwgKHRleHR1cmVDYWNoZSwgb3B0aW9u
cykpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTEVTVGV4dHVyZUdldFRhcmdldCwgR0xl
bnVtLCAoQ1ZPcGVuR0xFU1RleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENv
cmVWaWRlbywgQ1ZPcGVuR0xFU1RleHR1cmVHZXROYW1lLCBHTHVpbnQsIChDVk9wZW5HTEVTVGV4
dHVyZVJlZiBpbWFnZSksIChpbWFnZSkpCi1TT0ZUX0xJTktfUE9JTlRFUihDb3JlVmlkZW8sIGtD
VlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmlu
ZyAqKQotI2RlZmluZSBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJp
bGl0eUtleSBnZXRrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEVTRkJPQ29tcGF0aWJpbGl0
eUtleSgpCi0jZWxzZQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVD
cmVhdGUsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlS
ZWYgY2FjaGVBdHRyaWJ1dGVzLCBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQsIENHTFBpeGVsRm9y
bWF0T2JqIGNnbFBpeGVsRm9ybWF0LCBDRkRpY3Rpb25hcnlSZWYgdGV4dHVyZUF0dHJpYnV0ZXMs
IENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmKiBjYWNoZU91dCksIChhbGxvY2F0b3IsIGNhY2hlQXR0
cmlidXRlcywgY2dsQ29udGV4dCwgY2dsUGl4ZWxGb3JtYXQsIHRleHR1cmVBdHRyaWJ1dGVzLCBj
YWNoZU91dCkpCi1TT0ZUX0xJTksoQ29yZVZpZGVvLCBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0
ZVRleHR1cmVGcm9tSW1hZ2UsIENWUmV0dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
Vk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUsIENWSW1hZ2VCdWZmZXJSZWYgc291
cmNlSW1hZ2UsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDVk9wZW5HTFRleHR1cmVSZWYq
IHRleHR1cmVPdXQpLCAoYWxsb2NhdG9yLCB0ZXh0dXJlQ2FjaGUsIHNvdXJjZUltYWdlLCBhdHRy
aWJ1dGVzLCB0ZXh0dXJlT3V0KSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWT3BlbkdMVGV4dHVy
ZUNhY2hlRmx1c2gsIHZvaWQsIChDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiB0ZXh0dXJlQ2FjaGUs
IENWT3B0aW9uRmxhZ3Mgb3B0aW9ucyksICh0ZXh0dXJlQ2FjaGUsIG9wdGlvbnMpKQotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZPcGVuR0xUZXh0dXJlR2V0VGFyZ2V0LCBHTGVudW0sIChDVk9wZW5H
TFRleHR1cmVSZWYgaW1hZ2UpLCAoaW1hZ2UpKQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZPcGVu
R0xUZXh0dXJlR2V0TmFtZSwgR0x1aW50LCAoQ1ZPcGVuR0xUZXh0dXJlUmVmIGltYWdlKSwgKGlt
YWdlKSkKLVNPRlRfTElOS19QT0lOVEVSKENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJJT1N1cmZh
Y2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5LCBOU1N0cmluZyAqKQotI2RlZmluZSBrQ1ZQaXhl
bEJ1ZmZlcklPU3VyZmFjZU9wZW5HTEZCT0NvbXBhdGliaWxpdHlLZXkgZ2V0a0NWUGl4ZWxCdWZm
ZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5KCkKLSNlbmRpZgotCiBTT0ZUX0xJ
TktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKIFNPRlRfTElOS19PUFRJT05BTChNZWRpYVRvb2xi
b3gsIE1URW5hYmxlQ2FwdGlvbjIwMTVCZWhhdmlvciwgQm9vbGVhbiwgKCksICgpKQogCkBAIC0y
MjIwLDM5ICsyMTgyLDEyIEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlCiAgICAgICAgIGNyZWF0
ZVZpZGVvT3V0cHV0KCk7CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwogCi0jaWYgIUxPR19E
SVNBQkxFRAotICAgIGRvdWJsZSBzdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OwotI2VuZGlmCi0KICAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBbbV9hdlBsYXllckl0ZW0uZ2V0
KCkgY3VycmVudFRpbWVdOwogCiAgICAgaWYgKCFbbV92aWRlb091dHB1dC5nZXQoKSBoYXNOZXdQ
aXhlbEJ1ZmZlckZvckl0ZW1UaW1lOmN1cnJlbnRUaW1lXSkKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVyID0gYWRvcHRDRihbbV92aWRl
b091dHB1dC5nZXQoKSBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGltZSBpdGVt
VGltZUZvckRpc3BsYXk6bmlsXSk7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiAw
OwotCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkKLSAgICAvLyBDcmVhdGUgYSBWVFBpeGVsVHJhbnNm
ZXJTZXNzaW9uLCBpZiBuZWNlc3NhcnksIGFzIHdlIGNhbm5vdCBndWFyYW50ZWUgdGltZWx5IGRl
bGl2ZXJ5IG9mIEFSR0IgcGl4ZWxzLgotICAgIGlmICghbV9waXhlbFRyYW5zZmVyU2Vzc2lvbikg
ewotICAgICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHNlc3Npb24gPSAwOwotICAgICAg
ICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZzZXNz
aW9uKTsKLSAgICAgICAgbV9waXhlbFRyYW5zZmVyU2Vzc2lvbiA9IGFkb3B0Q0Yoc2Vzc2lvbik7
Ci0gICAgfQotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXI7Ci0gICAgQ1ZQaXhl
bEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgo
YnVmZmVyLmdldCgpKSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZmZXIuZ2V0KCkpLCBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfMzJCR1JBLCAwLCAmb3V0cHV0QnVmZmVyKTsKLSAgICBWVFBpeGVsVHJh
bnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3BpeGVsVHJhbnNmZXJTZXNzaW9uLmdldCgpLCBi
dWZmZXIuZ2V0KCksIG91dHB1dEJ1ZmZlcik7Ci0gICAgYnVmZmVyID0gYWRvcHRDRihvdXRwdXRC
dWZmZXIpOwotI2VuZGlmCi0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIGR1cmF0aW9u
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKLSAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVQaXhlbEJ1ZmZlcigl
cCkgLSBjcmVhdGluZyBidWZmZXIgdG9vayAlLjRmIiwgdGhpcywgbmFycm93UHJlY2lzaW9uVG9G
bG9hdChkdXJhdGlvbikpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVy
biBhZG9wdENGKFttX3ZpZGVvT3V0cHV0LmdldCgpIGNvcHlQaXhlbEJ1ZmZlckZvckl0ZW1UaW1l
OmN1cnJlbnRUaW1lIGl0ZW1UaW1lRm9yRGlzcGxheTpuaWxdKTsKIH0KIAogYm9vbCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCkKQEAgLTIyNjksNDMgKzIyMDQsNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92
aWRlb091dHB1dCBoYXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBj
dXJyZW50VGltZV1dOwogfQogCi1zdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5
dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogaW5mbykKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7Ci0gICAgQ1ZQ
aXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZmZXJMb2Nr
X1JlYWRPbmx5KTsKLSAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzKHBpeGVs
QnVmZmVyKTsKLX0KLQotc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRl
ckNhbGxiYWNrKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqKQotewotICAgIENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKLSAg
ICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIGtDVlBpeGVsQnVm
ZmVyTG9ja19SZWFkT25seSk7Ci19Ci0KLXN0YXRpYyB2b2lkIENWUGl4ZWxCdWZmZXJSZWxlYXNl
SW5mb0NhbGxiYWNrKHZvaWQqIGluZm8pCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOwotICAgIENGUmVsZWFz
ZShwaXhlbEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRl
SW1hZ2VGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikKLXsKLSAg
ICAvLyBwaXhlbEJ1ZmZlciB3aWxsIGJlIG9mIHR5cGUga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdS
QS4KLSAgICBBU1NFUlQoQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZl
cikgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSk7Ci0KLSAgICBzaXplX3Qgd2lkdGggPSBD
VlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwotICAgIHNpemVfdCBoZWlnaHQgPSBD
VlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKLSAgICBzaXplX3QgYnl0ZXNQZXJS
b3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3cocGl4ZWxCdWZmZXIpOwotICAgIHNpemVf
dCBieXRlTGVuZ3RoID0gQ1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKHBpeGVsQnVmZmVyKTsKLSAg
ICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwg
a0NHSW1hZ2VBbHBoYUZpcnN0OwotCi0gICAgQ0ZSZXRhaW4ocGl4ZWxCdWZmZXIpOyAvLyBCYWxh
bmNlZCBieSBDVlBpeGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayBpbiBwcm92aWRlckNhbGxi
YWNrcy4KLSAgICBDR0RhdGFQcm92aWRlckRpcmVjdENhbGxiYWNrcyBwcm92aWRlckNhbGxiYWNr
cyA9IHsgMCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2ssIENWUGl4ZWxCdWZm
ZXJSZWxlYXNlQnl0ZVBvaW50ZXJDYWxsYmFjaywgMCwgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJbmZv
Q2FsbGJhY2sgfTsKLSAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0g
YWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZURpcmVjdChwaXhlbEJ1ZmZlciwgYnl0ZUxlbmd0
aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7Ci0KLSAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3Jl
YXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3BhY2VSZWYo
KSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIE5VTEwsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJ
bnRlbnREZWZhdWx0KSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIHsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcigpOwpAQCAtMjMxMyw4ICsyMjExLDI4
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdElt
YWdlKCkKICAgICAvLyBDYWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTppdGVtVGlt
ZUZvckRpc3BsYXk6IG1heSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZmZXIKICAgICAvLyBm
b3IgdGhlIHJlcXVlc3RlZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmlldmVkLiBJbiB0aGlz
IGNhc2UsIHRoZSBsYXN0IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8gc2hvdWxkIGJlIGRp
c3BsYXllZC4KLSAgICBpZiAocGl4ZWxCdWZmZXIpCi0gICAgICAgIG1fbGFzdEltYWdlID0gY3Jl
YXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOworICAgIGlmICghcGl4
ZWxCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9waXhlbEJ1ZmZlckNvbmZv
cm1lcikgeworI2lmIFVTRShWSURFT1RPT0xCT1gpCisgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0
cmlidXRlcyA9IEB7IChOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5
OiBAKGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpIH07CisjZWxzZQorICAgICAgICBOU0RpY3Rp
b25hcnkgKmF0dHJpYnV0ZXMgPSBuaWw7CisjZW5kaWYKKyAgICAgICAgbV9waXhlbEJ1ZmZlckNv
bmZvcm1lciA9IHN0ZDo6bWFrZV91bmlxdWU8UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4oKENGRGlj
dGlvbmFyeVJlZilhdHRyaWJ1dGVzKTsKKyAgICB9CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAg
ZG91YmxlIHN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisjZW5kaWYKKwor
ICAgIG1fbGFzdEltYWdlID0gbV9waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9t
UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOworCisjaWYgIUxPR19ESVNBQkxFRAorICAg
IGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnQ7
CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBk
YXRlTGFzdEltYWdlKCVwKSAtIGNyZWF0aW5nIGJ1ZmZlciB0b29rICUuNGYiLCB0aGlzLCBuYXJy
b3dQcmVjaXNpb25Ub0Zsb2F0KGR1cmF0aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkKQEAgLTIzOTIs
MTEwICsyMzEwLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1
cGRhdGVMYXN0T3BlbkdMSW1hZ2UoKQogICAgIG1fbGFzdE9wZW5HTEltYWdlID0gYWRvcHRDRihb
bV9vcGVuR0xWaWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpjdXJyZW50VGlt
ZSBpdGVtVGltZUZvckRpc3BsYXk6bmlsXSk7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi0KLSNk
ZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkgZSwgI2UKLXN0YXRpYyBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+JiBlbnVtVG9TdHJpbmdNYXAoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7Ci0gICAgaWYgKG1hcC5n
ZXQoKS5lbXB0eSgpKSB7Ci0gICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4g
c3RyaW5nTWFwOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0Vf
QUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVN
SU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0FM
UEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4KSk7
Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1IxNkYpKTsKLSAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjMyRikpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SOFVJKSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4SSkpOwotICAgICAgICBtYXAuZ2V0
KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1IzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkc4KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHOFVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHOEkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcx
NlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMTZJ
KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJVSSkp
OwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzMySSkpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4KSk7Ci0gICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4KSk7Ci0gICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE4KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1NSR0I4X0FMUEhBOCkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBNCkpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxMF9BMikpOwotICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05FTlQxNikpOwot
ICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSF9DT01QT05F
TlQyNCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBU
SF9DT01QT05FTlQzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfREVQVEgyNF9TVEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9ERVBUSDMyRl9TVEVOQ0lMOCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCQSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9MVU1JTkFOQ0VfQUxQSEEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX0FMUEhBKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JFRCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR19JTlRFR0VSKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX0RFUFRIX1NURU5DSUwpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF81XzZfNSkpOwotICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9TSE9SVF80XzRf
NF80KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lH
TkVEX1NIT1JUXzVfNV81XzEpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfQllURSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9IQUxGX0ZMT0FUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX0ZMT0FUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1VOU0lHTkVEX1NIT1JUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1NIT1JUKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1VOU0lHTkVEX0lOVCkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9JTlQpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8yNF84KSk7Ci0gICAgICAgIG1h
cC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8y
NF84X1JFVikpOwotCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SRURfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JfSU5URUdFUikpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCNTY1KSk7Ci0gICAgICAgIG1hcC5nZXQoKS5l
bXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhfU05PUk0pKTsKLSAgICAgICAgbWFwLmdldCgp
LmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjExRl9HMTFGX0IxMEYpKTsKLSAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCOV9FNSkpOwotICAgICAgICBtYXAu
Z2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNkYpKTsKLSAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCMzJGKSk7Ci0gICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjhVSSkpOwotICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0I4SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0IxNlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjE2SSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0IzMlVJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjMySSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBOF9TTk9STSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFj
ZShTVFJJTkdJRllfUEFJUihHTF9SR0JBMTZGKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQkEzMkYpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUkdCQThVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBOEkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCMTBfQTJVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBMTZVSSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0JBMTZJKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQkEzMkkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCQTMyVUkpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RS
SU5HSUZZX1BBSVIoR0xfUkdCNV9BMSkpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SRykpOwotICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllf
UEFJUihHTF9SR0JBX0lOVEVHRVIpKTsKLSAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfREVQVEhfQ09NUE9ORU5UKSk7Ci0gICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpKTsKLSAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfSU5UXzVfOV85
XzlfUkVWKSk7Ci0jZW5kaWYKLSAgICB9Ci0gICAgcmV0dXJuIG1hcC5nZXQoKTsKLX0KLQotI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQKLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0
cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxp
cFkpCiB7CiAgICAgaWYgKGZsaXBZIHx8IHByZW11bHRpcGx5QWxwaGEpCkBAIC0yNTExLDk1ICsy
MzI1LDIxIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y29weVZp
ZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoCiAgICAgaWYgKCFtX2xhc3RPcGVuR0xJ
bWFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX29wZW5HTFRleHR1cmVD
YWNoZSkgewotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgQ1ZPcGVuR0xFU1RleHR1cmVDYWNo
ZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNoZSk7Ci0jZWxzZQot
ICAgICAgICBDVk9wZW5HTFRleHR1cmVDYWNoZVJlZiBjYWNoZSA9IG51bGxwdHI7Ci0gICAgICAg
IENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBD
R0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBu
dWxscHRyLCAmY2FjaGUpOwotI2VuZGlmCi0gICAgICAgIGlmIChlcnJvciAhPSBrQ1ZSZXR1cm5T
dWNjZXNzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX29wZW5HTFRleHR1
cmVDYWNoZSA9IGFkb3B0Q0YoY2FjaGUpOwotICAgIH0KLQogICAgIHNpemVfdCB3aWR0aCA9IENW
UGl4ZWxCdWZmZXJHZXRXaWR0aChtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSk7CiAgICAgc2l6ZV90
IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCkp
OwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIENWT3BlbkdMRVNUZXh0dXJlUmVmIGJhcmVWaWRl
b1RleHR1cmUgPSBudWxscHRyOwotICAgIGlmIChrQ1ZSZXR1cm5TdWNjZXNzICE9IENWT3BlbkdM
RVNUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fb3BlbkdMVGV4dHVyZUNhY2hlLmdldCgpLCBtX2xhc3RPcGVuR0xJbWFnZS5nZXQoKSwgbnVs
bHB0ciwgb3V0cHV0VGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0
LCB0eXBlLCBsZXZlbCwgJmJhcmVWaWRlb1RleHR1cmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgUmV0YWluUHRyPENWT3BlbkdMRVNUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9w
dENGKGJhcmVWaWRlb1RleHR1cmUpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJl
TmFtZSA9IENWT3BlbkdMRVNUZXh0dXJlR2V0TmFtZSh2aWRlb1RleHR1cmUuZ2V0KCkpOwotICAg
IEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0
KHZpZGVvVGV4dHVyZS5nZXQoKSk7Ci0jZWxzZQotICAgIENWT3BlbkdMVGV4dHVyZVJlZiBiYXJl
VmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKLSAgICBpZiAoa0NWUmV0dXJuU3VjY2VzcyAhPSBDVk9w
ZW5HTFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9vcGVuR0xUZXh0dXJlQ2FjaGUuZ2V0KCksIG1fbGFzdE9wZW5HTEltYWdlLmdldCgpLCBu
dWxscHRyLCAmYmFyZVZpZGVvVGV4dHVyZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBS
ZXRhaW5QdHI8Q1ZPcGVuR0xUZXh0dXJlUmVmPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVW
aWRlb1RleHR1cmUpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENW
T3BlbkdMVGV4dHVyZUdldE5hbWUodmlkZW9UZXh0dXJlLmdldCgpKTsKLSAgICBHQzNEZW51bSB2
aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9wZW5HTFRleHR1cmVHZXRUYXJnZXQodmlkZW9UZXh0dXJl
LmdldCgpKTsKLSNlbmRpZgotCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsK
LSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBpZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX29wZW5HTFRleHR1cmVDYWNoZS5nZXQoKSkK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgICAgICBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlRmx1
c2goY2FjaGUsIDApOwotI2Vsc2UKLSAgICAgICAgICAgIENWT3BlbkdMVGV4dHVyZUNhY2hlRmx1
c2goY2FjaGUsIDApOwotI2VuZGlmCi0gICAgfSk7Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoJXApIC0gaW50ZXJuYWxGb3JtYXQ6ICVzLCBmb3JtYXQ6ICVzLCB0eXBlOiAlcyIsIHRo
aXMsIGVudW1Ub1N0cmluZ01hcCgpW2ludGVybmFsRm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClb
Zm9ybWF0XSwgZW51bVRvU3RyaW5nTWFwKClbdHlwZV0pOwotCi0gICAgLy8gU2F2ZSB0aGUgb3Jp
Z2lhbCBib3VuZCB0ZXh0dXJlICYgZnJhbWVidWZmZXIgbmFtZXMgc28gd2UgY2FuIHJlLWJpbmQg
dGhlbSBhZnRlciBjb3B5aW5nIHRoZSB2aWRlbyB0ZXh0dXJlLgotICAgIEdDM0RpbnQgYm91bmRU
ZXh0dXJlID0gMDsKLSAgICBHQzNEaW50IGJvdW5kUmVhZEZyYW1lYnVmZmVyID0gMDsKLSAgICBj
b250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJE
LCAmYm91bmRUZXh0dXJlKTsKLSAgICBjb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRl
eHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIpOwot
Ci0gICAgY29udGV4dC0+YmluZFRleHR1cmUodmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1
cmVOYW1lKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGlj
c0NvbnRleHQzRDo6TElORUFSKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Ms
IEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICBjb250ZXh0LT50ZXhQYXJh
bWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLQotICAg
IC8vIENyZWF0ZSBhIGZyYW1lYnVmZmVyIG9iamVjdCB0byByZXByZXNlbnQgdGhlIHZpZGVvIHRl
eHR1cmUncyBtZW1vcnkuCi0gICAgUGxhdGZvcm0zRE9iamVjdCByZWFkRnJhbWVidWZmZXIgPSBj
b250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotCi0gICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVm
ZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9tIHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFk
IHZveGVscy4KLSAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFQURfRlJBTUVCVUZGRVIsIHJlYWRGcmFtZWJ1ZmZlcik7Ci0KLSAgICAvLyBBbGxvY2F0ZSB1
bmluaXRpYWxpemVkIG1lbW9yeSBmb3IgdGhlIG91dHB1dCB0ZXh0dXJlLgotICAgIGNvbnRleHQt
PmJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7Ci0gICAgY29udGV4dC0+
dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0g
ICAgY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xB
TVBfVE9fRURHRSk7Ci0gICAgY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgY29udGV4dC0+dGV4SW1hZ2UyRERpcmVj
dChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwg
Zm9ybWF0LCB0eXBlLCBudWxscHRyKTsKLQotICAgIC8vIEF0dGFjaCB0aGUgdmlkZW8gdGV4dHVy
ZSB0byB0aGUgZnJhbWVidWZmZXIuCi0gICAgY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlJFQURfRlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpD
T0xPUl9BVFRBQ0hNRU5UMCwgdmlkZW9UZXh0dXJlVGFyZ2V0LCB2aWRlb1RleHR1cmVOYW1lLCBs
ZXZlbCk7Ci0KLSAgICBHQzNEZW51bSBzdGF0dXMgPSBjb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKLSAgICBpZiAoc3Rh
dHVzICE9IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVi
dWZmZXIgKGFuZCB0aHVzIHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUu
Ci0gICAgY29udGV4dC0+Y29weVRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApOworICAgIGlmICghbV90ZXh0dXJlQ2Fj
aGUpIHsKKyAgICAgICAgbV90ZXh0dXJlQ2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpj
b250ZXh0KTsKKyAgICAgICAgaWYgKCFtX3RleHR1cmVDYWNoZSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAKLSAgICAvLyBSZXN0b3JlIHRoZSBwcmV2aW91cyB0ZXh0dXJlIGFu
ZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShvdXRwdXRU
YXJnZXQsIGJvdW5kVGV4dHVyZSk7Ci0gICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBo
aWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBib3VuZFJlYWRGcmFtZWJ1ZmZlcik7Cisg
ICAgUmV0YWluUHRyPENWT3BlbkdMVGV4dHVyZVJlZj4gdmlkZW9UZXh0dXJlID0gbV90ZXh0dXJl
Q2FjaGUtPnRleHR1cmVGcm9tSW1hZ2UobV9sYXN0T3BlbkdMSW1hZ2UuZ2V0KCksIG91dHB1dFRh
cmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpOwogCi0gICAgLy8gQ2xl
YW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzLgotICAgIGNvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKHJl
YWRGcmFtZWJ1ZmZlcik7CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAg
bV92aWRlb1RleHR1cmVDb3BpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvVGV4dHVyZUNvcGll
ckNWPigqY29udGV4dCk7CiAKLSAgICByZXR1cm4gIWNvbnRleHQtPmdldEVycm9yKCk7CisgICAg
cmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUodmlkZW9UZXh0dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBv
dXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0
aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKIFBhc3NOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2NDdlZmY5ZDFkMzI1NWQ2YzBkNjA2
OGMzMDhmYjgxYmQzOTJmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0wLDAgKzEsMTAy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2lu
Y2x1ZGUgIlNvZnRMaW5raW5nLmgiCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgor
CisjaWYgVVNFKFZJREVPVE9PTEJPWCkKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoVmlk
ZW9Ub29sYm94KQorU09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNyZWF0ZVdpdGhBdHRyaWJ1dGVzLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJSZWYq
IGNvbmZvcm1lck91dCksIChhbGxvY2F0b3IsIGF0dHJpYnV0ZXMsIGNvbmZvcm1lck91dCkpOwor
U09GVF9MSU5LKFZpZGVvVG9vbGJveCwgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lcklzQ29uZm9ybWFu
dFBpeGVsQnVmZmVyLCBCb29sZWFuLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3Jt
ZXIsIENWUGl4ZWxCdWZmZXJSZWYgcGl4QnVmKSwgKGNvbmZvcm1lciwgcGl4QnVmKSkKK1NPRlRf
TElOSyhWaWRlb1Rvb2xib3gsIFZUUGl4ZWxCdWZmZXJDb25mb3JtZXJDb3B5Q29uZm9ybWVkUGl4
ZWxCdWZmZXIsIE9TU3RhdHVzLCAoVlRQaXhlbEJ1ZmZlckNvbmZvcm1lclJlZiBjb25mb3JtZXIs
IENWUGl4ZWxCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBCb29sZWFuIGVuc3VyZU1vZGlmaWFibGUs
IENWUGl4ZWxCdWZmZXJSZWYqIGNvbmZvcm1lZEJ1ZmZlck91dCksIChjb25mb3JtZXIsIHNvdXJj
ZUJ1ZmZlciwgZW5zdXJlTW9kaWZpYWJsZSwgY29uZm9ybWVkQnVmZmVyT3V0KSkKKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OlBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpCit7CisjaWYgVVNFKFZJ
REVPVE9PTEJPWCkKKyAgICBWVFBpeGVsQnVmZmVyQ29uZm9ybWVyUmVmIGNvbmZvcm1lciA9IG51
bGxwdHI7CisgICAgVlRQaXhlbEJ1ZmZlckNvbmZvcm1lckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGF0dHJpYnV0ZXMsICZjb25mb3JtZXIpOworICAgIEFTU0VSVChj
b25mb3JtZXIpOworICAgIG1fcGl4ZWxDb25mb3JtZXIgPSBhZG9wdENGKGNvbmZvcm1lcik7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBBU1NFUlQoIWF0dHJpYnV0
ZXMpOworI2VuZGlmCit9CisKK3N0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVsQnVmZmVyR2V0Qnl0
ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiBpbmZvKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihpbmZvKTsKKyAgICBDVlBp
eGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tf
UmVhZE9ubHkpOworICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxC
dWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBDVlBpeGVsQnVmZmVyUmVsZWFzZUJ5dGVQb2ludGVy
Q2FsbGJhY2sodm9pZCogaW5mbywgY29uc3Qgdm9pZCopCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KGluZm8pOworICAg
IENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwga0NWUGl4ZWxCdWZm
ZXJMb2NrX1JlYWRPbmx5KTsKK30KKworc3RhdGljIHZvaWQgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VJ
bmZvQ2FsbGJhY2sodm9pZCogaW5mbykKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oaW5mbyk7CisgICAgQ0ZSZWxlYXNl
KHBpeGVsQnVmZmVyKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcmF3
QnVmZmVyKQoreworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXIgeyByYXdC
dWZmZXIgfTsKKyAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoYnVmZmVy
LmdldCgpKTsKKyAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChidWZm
ZXIuZ2V0KCkpOworCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKKyAgICBpZiAoIVZUUGl4ZWxCdWZm
ZXJDb25mb3JtZXJJc0NvbmZvcm1hbnRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgp
LCBidWZmZXIuZ2V0KCkpKSB7CisgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYgb3V0cHV0QnVmZmVy
ID0gbnVsbHB0cjsKKyAgICAgICAgT1NTdGF0dXMgc3RhdHVzID0gVlRQaXhlbEJ1ZmZlckNvbmZv
cm1lckNvcHlDb25mb3JtZWRQaXhlbEJ1ZmZlcihtX3BpeGVsQ29uZm9ybWVyLmdldCgpLCBidWZm
ZXIuZ2V0KCksIGZhbHNlLCAmb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBu
b0VyciB8fCAhb3V0cHV0QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIGJ1ZmZlciA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyKTsKKyAgICB9CisjZW5kaWYKKworICAg
IENHQml0bWFwSW5mbyBiaXRtYXBJbmZvID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBr
Q0dJbWFnZUFscGhhRmlyc3Q7CisgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQaXhlbEJ1ZmZl
ckdldEJ5dGVzUGVyUm93KGJ1ZmZlci5nZXQoKSk7CisgICAgc2l6ZV90IGJ5dGVMZW5ndGggPSBD
VlBpeGVsQnVmZmVyR2V0RGF0YVNpemUoYnVmZmVyLmdldCgpKTsKKworICAgIENGUmV0YWluKGJ1
ZmZlci5nZXQoKSk7IC8vIEJhbGFuY2VkIGJ5IENWUGl4ZWxCdWZmZXJSZWxlYXNlSW5mb0NhbGxi
YWNrIGluIHByb3ZpZGVyQ2FsbGJhY2tzLgorICAgIENHRGF0YVByb3ZpZGVyRGlyZWN0Q2FsbGJh
Y2tzIHByb3ZpZGVyQ2FsbGJhY2tzID0geyAwLCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJD
YWxsYmFjaywgQ1ZQaXhlbEJ1ZmZlclJlbGVhc2VCeXRlUG9pbnRlckNhbGxiYWNrLCAwLCBDVlBp
eGVsQnVmZmVyUmVsZWFzZUluZm9DYWxsYmFjayB9OworICAgIFJldGFpblB0cjxDR0RhdGFQcm92
aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlRGlyZWN0KGJ1
ZmZlci5nZXQoKSwgYnl0ZUxlbmd0aCwgJnByb3ZpZGVyQ2FsbGJhY2tzKSk7CisKKyAgICByZXR1
cm4gYWRvcHRDRihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJv
dywgc1JHQkNvbG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbywgcHJvdmlkZXIuZ2V0KCksIG51bGxw
dHIsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmVhODFiMjA3MTA3MDgyMmJkYThhODhkYmNmNTZm
YzUyMmVlOWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1ZfaAorI2RlZmluZSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWX2gKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRl
ZiBzdHJ1Y3QgT3BhcXVlVlRQaXhlbEJ1ZmZlckNvbmZvcm1lciogVlRQaXhlbEJ1ZmZlckNvbmZv
cm1lclJlZjsKK3R5cGVkZWYgc3RydWN0IENHSW1hZ2UqIENHSW1hZ2VSZWY7Cit0eXBlZGVmIHN0
cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgeworcHVibGljOgorICAgIFBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YoQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpOworICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVm
KTsKKworcHJpdmF0ZToKKyNpZiBVU0UoVklERU9UT09MQk9YKQorICAgIFJldGFpblB0cjxWVFBp
eGVsQnVmZmVyQ29uZm9ybWVyUmVmPiBtX3BpeGVsQ29uZm9ybWVyOworI2VuZGlmCit9OworCit9
CisKKyNlbmRpZiAvLyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ3OTZkZDc2ZTkzYjc2ZDAzNDZmNzM5ZDJjZTM0NTIxMTcyNzg2NGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRleHR1cmVDYWNoZUNWX2gK
KyNkZWZpbmUgVGV4dHVyZUNhY2hlQ1ZfaAorCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCit0eXBlZGVmIHN0cnVjdCAgX19DVkJ1ZmZlciogQ1ZJbWFn
ZUJ1ZmZlclJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1ZmZlclJlZiBDVk9wZW5HTFRleHR1cmVSZWY7
Cit0eXBlZGVmIENWSW1hZ2VCdWZmZXJSZWYgQ1ZPcGVuR0xFU1RleHR1cmVSZWY7Cit0eXBlZGVm
IHN0cnVjdCBfX0NWT3BlbkdMVGV4dHVyZUNhY2hlICpDVk9wZW5HTFRleHR1cmVDYWNoZVJlZjsK
K3R5cGVkZWYgc3RydWN0IF9fQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZSAqQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRl
eHQzRDsKKworY2xhc3MgVGV4dHVyZUNhY2hlQ1YgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOwor
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHR5cGVkZWYgQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZVJl
ZiAgVGV4dHVyZUNhY2hlVHlwZTsKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRl
eHR1cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZUNhY2hlUmVmICBU
ZXh0dXJlQ2FjaGVUeXBlOworICAgIHR5cGVkZWYgQ1ZPcGVuR0xUZXh0dXJlUmVmIFRleHR1cmVU
eXBlOworI2VuZGlmCisKKyAgICBUZXh0dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYsIFJl
dGFpblB0cjxUZXh0dXJlQ2FjaGVUeXBlPiYmKTsKKworICAgIFJldGFpblB0cjxUZXh0dXJlVHlw
ZT4gdGV4dHVyZUZyb21JbWFnZShDVkltYWdlQnVmZmVyUmVmLCBHQzNEZW51bSBvdXRwdXRUYXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3Jt
YXQsIEdDM0RlbnVtIHR5cGUpOworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KCkgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmPEdyYXBoaWNzQ29u
dGV4dDNEPiBtX2NvbnRleHQ7CisgICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IG1fY2Fj
aGU7CisgICAgV2Vha1B0ckZhY3Rvcnk8VGV4dHVyZUNhY2hlQ1Y+IG1fd2Vha1B0ckZhY3Rvcnk7
Cit9OworCit9CisKKyNlbmRpZiAvLyBUZXh0dXJlQ2FjaGVDVl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc2Y2MwM2ZlOTQ3NDhiNTE5NDE2Zjk3YmM2NzUyNzJmYTNhMzk3Y2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVD
Vi5tbQpAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJUZXh0dXJlQ2FjaGVDVi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKKworI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KQoreworICAgIFRleHR1cmVDYWNoZVR5
cGUgY2FjaGUgPSBudWxscHRyOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBDVlJldHVybiBlcnJv
ciA9IENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIG51bGxwdHIsICZjYWNo
ZSk7CisjZWxzZQorICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEKCksIENHTEdldFBpeGVsRm9ybWF0KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKSwgbnVsbHB0ciwgJmNhY2hlKTsKKyNlbmRpZgorICAgIGlmIChlcnJvciAhPSBr
Q1ZSZXR1cm5TdWNjZXNzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJldGFpblB0
cjxUZXh0dXJlQ2FjaGVUeXBlPiBzdHJvbmdDYWNoZSA9IGFkb3B0Q0YoY2FjaGUpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVDYWNoZUNWPihjb250ZXh0LCBXVEZNb3ZlKHN0
cm9uZ0NhY2hlKSk7Cit9CisKK1RleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVihHcmFwaGlj
c0NvbnRleHQzRCYgY29udGV4dCwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYgY2FjaGUp
CisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY2FjaGUoY2FjaGUpCisgICAgLCBt
X3dlYWtQdHJGYWN0b3J5KHRoaXMpCit7Cit9CisKK1JldGFpblB0cjxUZXh0dXJlQ2FjaGVDVjo6
VGV4dHVyZVR5cGU+IFRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKENWSW1hZ2VCdWZm
ZXJSZWYgaW1hZ2UsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSkKK3sKKyAg
ICBUZXh0dXJlVHlwZSBiYXJlVmlkZW9UZXh0dXJlID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAg
ICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisgICAgaWYg
KGtDVlJldHVyblN1Y2Nlc3MgIT0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVG
cm9tSW1hZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jYWNoZS5nZXQoKSwgaW1hZ2UsIG51bGxw
dHIsIG91dHB1dFRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwg
dHlwZSwgbGV2ZWwsICZiYXJlVmlkZW9UZXh0dXJlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvdXRwdXRUYXJnZXQpOworICAgIFVOVVNFRF9QQVJB
TShsZXZlbCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVybmFsRm9ybWF0KTsKKyAgICBVTlVTRURf
UEFSQU0oZm9ybWF0KTsKKyAgICBVTlVTRURfUEFSQU0odHlwZSk7CisgICAgaWYgKGtDVlJldHVy
blN1Y2Nlc3MgIT0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGVUZXh0dXJlRnJvbUltYWdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fY2FjaGUuZ2V0KCksIGltYWdlLCBudWxscHRyLCAmYmFyZVZp
ZGVvVGV4dHVyZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgUmV0YWlu
UHRyPFRleHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUp
OworCisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhp
c10geworICAgICAgICBpZiAoYXV0byBjYWNoZSA9IHdlYWtUaGlzLT5tX2NhY2hlLmdldCgpKQor
I2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIENWT3BlbkdMRVNUZXh0dXJlQ2FjaGVGbHVz
aChjYWNoZSwgMCk7CisjZWxzZQorICAgICAgICAgICAgQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVGbHVz
aChjYWNoZSwgMCk7CisjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiB2aWRlb1RleHR1cmU7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDFlYTM5YzgxMDcw
OGQ1YmM1OTQ2NDAxMGZiY2VmNDdiYjVmY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC0w
LDAgKzEsMjEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUg
PE9wZW5HTEVTL0VTMy9nbGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0
TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZGVvVGV4dHVyZUNvcGllckNWOjpW
aWRlb1RleHR1cmVDb3BpZXJDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCkKKyAgICA6IG1f
Y29udGV4dChjb250ZXh0KQorICAgICwgbV9yZWFkRnJhbWVidWZmZXIoY29udGV4dC5jcmVhdGVG
cmFtZWJ1ZmZlcigpKQoreworfQorCitWaWRlb1RleHR1cmVDb3BpZXJDVjo6flZpZGVvVGV4dHVy
ZUNvcGllckNWKCkKK3sKKyAgICBtX2NvbnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fcmVhZEZy
YW1lYnVmZmVyKTsKK30KKworI2lmICFMT0dfRElTQUJMRUQKKworI2RlZmluZSBTVFJJTkdJRllf
UEFJUihlKSBlLCAjZQorc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4mIGVu
dW1Ub1N0cmluZ01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bWFwPHVp
bnQzMl90LCBjb25zdCBjaGFyKj4+IG1hcDsKKyAgICBpZiAobWFwLmdldCgpLmVtcHR5KCkpIHsK
KyAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPiBzdHJpbmdNYXA7CisgICAg
ICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQikpOworICAgICAgICBt
YXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SR0JBKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xVTUlOQU5DRV9BTFBIQSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9MVU1JTkFOQ0UpKTsKKyAgICAg
ICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfQUxQSEEpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjgpKTsKKyAgICAgICAgbWFwLmdl
dCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUjE2RikpOworICAgICAgICBtYXAuZ2V0KCku
ZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SMzJGKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1I4VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfUjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklO
R0lGWV9QQUlSKEdMX1IxNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1IxNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUjMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
RzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkYp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMkYpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4VUkpKTsKKyAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkc4SSkpOworICAgICAg
ICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9SRzE2VUkpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkcxNkkpKTsKKyAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkczMlVJKSk7CisgICAgICAgIG1hcC5n
ZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHMzJJKSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVt
cGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU1JHQjgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCQTgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfU1JHQjhfQUxQSEE4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkE0KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX1JHQjEwX0EyKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNl
KFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDE2KSk7CisgICAgICAgIG1hcC5nZXQo
KS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDI0KSk7CisgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RFUFRIX0NPTVBPTkVOVDMyRikp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBUSDI0X1NU
RU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0RF
UFRIMzJGX1NURU5DSUw4KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0xV
TUlOQU5DRV9BTFBIQSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9MVU1JTkFOQ0UpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfQUxQSEEpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkVEKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
X0lOVEVHRVIpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
REVQVEhfU1RFTkNJTCkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJ
UihHTF9VTlNJR05FRF9CWVRFKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzVfNl81KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBs
YWNlKFNUUklOR0lGWV9QQUlSKEdMX1VOU0lHTkVEX1NIT1JUXzRfNF80XzQpKTsKKyAgICAgICAg
bWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hPUlRfNV81XzVf
MSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9CWVRFKSk7
CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0hBTEZfRkxPQVQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfRkxPQVQpKTsK
KyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURfU0hP
UlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfU0hPUlQp
KTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfVU5TSUdORURf
SU5UKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX0lOVCkp
OworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9J
TlRfMl8xMF8xMF8xMF9SRVYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfVU5TSUdORURfSU5UXzI0XzgpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2Uo
U1RSSU5HSUZZX1BBSVIoR0xfRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWKSk7CisKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JFRF9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQl9JTlRFR0VSKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SR0I1NjUpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZ
X1BBSVIoR0xfUkdCOF9TTk9STSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJ
RllfUEFJUihHTF9SMTFGX0cxMUZfQjEwRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShT
VFJJTkdJRllfUEFJUihHTF9SR0I5X0U1KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQjE2RikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJ
TkdJRllfUEFJUihHTF9SR0IzMkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfUkdCOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lG
WV9QQUlSKEdMX1JHQjhJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9Q
QUlSKEdMX1JHQjE2VUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BB
SVIoR0xfUkdCMTZJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQjMyVUkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCMzJJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkE4X1NOT1JNKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlS
KEdMX1JHQkExNkYpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfUkdCQTMyRikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihH
TF9SR0JBOFVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkE4SSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0IxMF9BMlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkExNlVJKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdM
X1JHQkExNkkpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xf
UkdCQTMySSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0JBMzJVSSkpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9S
R0I1X0ExKSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JH
KSk7CisgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkFfSU5U
RUdFUikpOworICAgICAgICBtYXAuZ2V0KCkuZW1wbGFjZShTVFJJTkdJRllfUEFJUihHTF9ERVBU
SF9DT01QT05FTlQpKTsKKyAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIo
R0xfVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVikpOworICAgICAgICBtYXAuZ2V0KCkuZW1w
bGFjZShTVFJJTkdJRllfUEFJUihHTF9VTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpKTsKKyNlbmRp
ZgorICAgIH0KKyAgICByZXR1cm4gbWFwLmdldCgpOworfQorCisjZW5kaWYKKworYm9vbCBWaWRl
b1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1
cmVUeXBlIGlucHV0VGV4dHVyZSwgc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBQbGF0Zm9y
bTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdDM0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBs
ZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0g
dHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQoreworICAgIGlmIChmbGlw
WSB8fCBwcmVtdWx0aXBseUFscGhhKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWlucHV0VGV4dHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0oSU9T
KQorICAgIFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMRVNUZXh0
dXJlR2V0TmFtZShpbnB1dFRleHR1cmUpOworICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdl
dCA9IENWT3BlbkdMRVNUZXh0dXJlR2V0VGFyZ2V0KGlucHV0VGV4dHVyZSk7CisjZWxzZQorICAg
IFBsYXRmb3JtM0RPYmplY3QgdmlkZW9UZXh0dXJlTmFtZSA9IENWT3BlbkdMVGV4dHVyZUdldE5h
bWUoaW5wdXRUZXh0dXJlKTsKKyAgICBHQzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBDVk9w
ZW5HTFRleHR1cmVHZXRUYXJnZXQoaW5wdXRUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgTE9HKE1l
ZGlhLCAiVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4
dHVyZSglcCkgLSBpbnRlcm5hbEZvcm1hdDogJXMsIGZvcm1hdDogJXMsIHR5cGU6ICVzIiwgdGhp
cywgZW51bVRvU3RyaW5nTWFwKClbaW50ZXJuYWxGb3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVtm
b3JtYXRdLCBlbnVtVG9TdHJpbmdNYXAoKVt0eXBlXSk7CisKKyAgICAvLyBTYXZlIHRoZSBvcmln
aWFsIGJvdW5kIHRleHR1cmUgJiBmcmFtZWJ1ZmZlciBuYW1lcyBzbyB3ZSBjYW4gcmUtYmluZCB0
aGVtIGFmdGVyIGNvcHlpbmcgdGhlIHZpZGVvIHRleHR1cmUuCisgICAgR0MzRGludCBib3VuZFRl
eHR1cmUgPSAwOworICAgIEdDM0RpbnQgYm91bmRSZWFkRnJhbWVidWZmZXIgPSAwOworICAgIG1f
Y29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR18y
RCwgJmJvdW5kVGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0Nv
bnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRSZWFkRnJhbWVidWZmZXIp
OworCisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZSh2aWRlb1RleHR1cmVUYXJnZXQsIHZpZGVv
VGV4dHVyZU5hbWUpOworICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwg
R3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJm
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKKyAgICBtX2NvbnRl
eHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VE
R0UpOworCisgICAgLy8gTWFrZSB0aGF0IGZyYW1lYnVmZmVyIHRoZSByZWFkIHNvdXJjZSBmcm9t
IHdoaWNoIGRyYXdpbmcgY29tbWFuZHMgd2lsbCByZWFkIHZveGVscy4KKyAgICBtX2NvbnRleHQt
PmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgbV9y
ZWFkRnJhbWVidWZmZXIpOworCisgICAgLy8gQWxsb2NhdGUgdW5pbml0aWFsaXplZCBtZW1vcnkg
Zm9yIHRoZSBvdXRwdXQgdGV4dHVyZS4KKyAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKG91dHB1
dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CisgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9N
SU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICBtX2NvbnRleHQtPnRl
eFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwor
ICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6
Q0xBTVBfVE9fRURHRSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KG91dHB1dFRh
cmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5
cGUsIG51bGxwdHIpOworCisgICAgLy8gQXR0YWNoIHRoZSB2aWRlbyB0ZXh0dXJlIHRvIHRoZSBm
cmFtZWJ1ZmZlci4KKyAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNz
Q29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRU
QUNITUVOVDAsIHZpZGVvVGV4dHVyZVRhcmdldCwgdmlkZW9UZXh0dXJlTmFtZSwgbGV2ZWwpOwor
CisgICAgR0MzRGVudW0gc3RhdHVzID0gbV9jb250ZXh0LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KEdyYXBoaWNzQ29udGV4dDNEOjpSRUFEX0ZSQU1FQlVGRkVSKTsKKyAgICBpZiAoc3RhdHVzICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgLy8gQ29weSB0ZXh0dXJlIGZyb20gdGhlIHJlYWQgZnJhbWVidWZmZXIg
KGFuZCB0aHVzIHRoZSB2aWRlbyB0ZXh0dXJlKSB0byB0aGUgb3V0cHV0IHRleHR1cmUuCisgICAg
bV9jb250ZXh0LT5jb3B5VGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisKKyAgICAvLyBSZXN0b3JlIHRoZSBwcmV2
aW91cyB0ZXh0dXJlIGFuZCBmcmFtZWJ1ZmZlciBiaW5kaW5ncy4KKyAgICBtX2NvbnRleHQtPmJp
bmRUZXh0dXJlKG91dHB1dFRhcmdldCwgYm91bmRUZXh0dXJlKTsKKyAgICBtX2NvbnRleHQtPmJp
bmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVBRF9GUkFNRUJVRkZFUiwgYm91bmRS
ZWFkRnJhbWVidWZmZXIpOworCisgICAgcmV0dXJuICFtX2NvbnRleHQtPmdldEVycm9yKCk7Cit9
CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmNTEyZjg5YWNjNDVmYTVj
YzRkNmI3YmMzZTBmOGVjZTMyZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVmlkZW9UZXh0dXJlQ29waWVyQ1ZfaAorI2RlZmlu
ZSBWaWRlb1RleHR1cmVDb3BpZXJDVl9oCisKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dDNELmgi
CisKK3R5cGVkZWYgc3RydWN0ICBfX0NWQnVmZmVyKiBDVkltYWdlQnVmZmVyUmVmOwordHlwZWRl
ZiBDVkltYWdlQnVmZmVyUmVmIENWT3BlbkdMVGV4dHVyZVJlZjsKK3R5cGVkZWYgQ1ZJbWFnZUJ1
ZmZlclJlZiBDVk9wZW5HTEVTVGV4dHVyZVJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDViB7CitwdWJsaWM6CisgICAgVmlkZW9UZXh0dXJlQ29w
aWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmKTsKKyAgICB+VmlkZW9UZXh0dXJlQ29waWVyQ1YoKTsK
KworI2lmIFBMQVRGT1JNKElPUykKKyAgICB0eXBlZGVmIENWT3BlbkdMRVNUZXh0dXJlUmVmIFRl
eHR1cmVUeXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIENWT3BlbkdMVGV4dHVyZVJlZiBUZXh0dXJl
VHlwZTsKKyNlbmRpZgorCisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoVGV4dHVyZVR5cGUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9i
amVjdCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWws
IEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUs
IGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CisKKyAgICBHcmFwaGljc0NvbnRl
eHQzRCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCitwcml2YXRlOgor
ICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFBsYXRmb3JtM0RPYmpl
Y3QgbV9yZWFkRnJhbWVidWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBWaWRlb1RleHR1cmVD
b3BpZXJDVl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggMDc3ODM1ZDVlMjEy
OWVlOWVlZmY4ZDQwYTFkNDUwNzE5ODRhYzU2MS4uOWY0YzQzNWZiZGJkZWJlNmE0NTA4ZWQ2NTAz
NjEzNDRiN2VkZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNDMsNiAr
NDMsNyBAQAogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAKICNpbXBvcnQgIkNvcmVNZWRpYVNv
ZnRMaW5rLmgiCisjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiB0eXBlZGVmIEFWQ2Fw
dHVyZUNvbm5lY3Rpb24gQVZDYXB0dXJlQ29ubmVjdGlvblR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVy
ZURldmljZSBBVkNhcHR1cmVEZXZpY2VUeXBlOwpAQCAtNTIsNyArNTMsNiBAQCB0eXBlZGVmIEFW
Q2FwdHVyZVZpZGVvRGF0YU91dHB1dCBBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXRUeXBlOwogdHlw
ZWRlZiBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXll
clR5cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQotU09G
VF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChDb3JlVmlkZW8pCiAKIFNPRlRfTElOS19DTEFTUyhB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3Vu
ZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC04MSwxNyArODEsNiBAQCBTT0ZUX0xJTktfUE9J
TlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3csIE5TU3RyaW5nICop
CiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQzNTJ4Mjg4IGdldEFWQ2FwdHVyZVNlc3Np
b25QcmVzZXQzNTJ4Mjg4KCkKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblByZXNldExvdyBnZXRB
VkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93KCkKIAotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoLCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwg
KHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRIZWln
aHQsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIp
KQotU09GVF9MSU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzLCB2b2lk
KiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9M
SU5LKENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93LCBzaXplX3QsIChDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKLVNPRlRfTElOSyhDb3Jl
VmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUsIE9TVHlwZSwgKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQotU09GVF9MSU5LKENvcmVWaWRl
bywgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlvbkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwg
bG9ja0ZsYWdzKSkKLVNPRlRfTElOSyhDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNl
QWRkcmVzcywgQ1ZSZXR1cm4sIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBDVk9wdGlv
bkZsYWdzIGxvY2tGbGFncyksIChwaXhlbEJ1ZmZlciwgbG9ja0ZsYWdzKSkKLQotU09GVF9MSU5L
X1BPSU5URVIoQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgTlNT
dHJpbmcgKikKLSNkZWZpbmUga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgZ2V0a0NW
UGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>